about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--doc/languages-frameworks/node.section.md9
-rw-r--r--doc/languages-frameworks/vim.section.md2
-rw-r--r--doc/stdenv/multiple-output.xml74
-rw-r--r--lib/licenses.nix6
-rw-r--r--lib/modules.nix1
-rw-r--r--lib/strings.nix17
-rw-r--r--lib/systems/architectures.nix77
-rw-r--r--lib/systems/default.nix3
-rw-r--r--lib/types.nix117
-rw-r--r--maintainers/maintainer-list.nix34
-rw-r--r--nixos/doc/manual/administration/boot-problems.xml4
-rw-r--r--nixos/doc/manual/administration/imperative-containers.xml2
-rw-r--r--nixos/doc/manual/configuration/file-systems.xml8
-rw-r--r--nixos/doc/manual/configuration/ipv4-config.xml2
-rw-r--r--nixos/doc/manual/configuration/ipv6-config.xml2
-rw-r--r--nixos/doc/manual/configuration/luks-file-systems.xml6
-rw-r--r--nixos/doc/manual/configuration/network-manager.xml2
-rw-r--r--nixos/doc/manual/configuration/ssh.xml2
-rw-r--r--nixos/doc/manual/configuration/user-mgmt.xml12
-rw-r--r--nixos/doc/manual/development/option-types.xml11
-rwxr-xr-xnixos/doc/manual/development/releases.xml265
-rw-r--r--nixos/doc/manual/installation/changing-config.xml2
-rw-r--r--nixos/doc/manual/installation/installing-from-other-distro.xml2
-rw-r--r--nixos/doc/manual/installation/installing.xml2
-rw-r--r--nixos/doc/manual/man-nixos-install.xml16
-rw-r--r--nixos/doc/manual/man-nixos-rebuild.xml2
-rw-r--r--nixos/doc/manual/release-notes/rl-2003.xml2
-rw-r--r--nixos/doc/manual/release-notes/rl-2009.xml68
-rw-r--r--nixos/lib/make-options-doc/options-to-docbook.xsl2
-rw-r--r--nixos/lib/testing-python.nix9
-rw-r--r--nixos/modules/config/krb5/default.nix34
-rw-r--r--nixos/modules/config/users-groups.nix4
-rw-r--r--nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix2
-rw-r--r--nixos/modules/installer/tools/nixos-install.sh73
-rw-r--r--nixos/modules/installer/tools/nixos-option/nixos-option.cc2
-rw-r--r--nixos/modules/installer/tools/nixos-rebuild.sh10
-rw-r--r--nixos/modules/installer/tools/tools.nix2
-rw-r--r--nixos/modules/module-list.nix3
-rw-r--r--nixos/modules/programs/environment.nix1
-rw-r--r--nixos/modules/programs/gpaste.nix2
-rw-r--r--nixos/modules/programs/ssh.nix2
-rw-r--r--nixos/modules/programs/tsm-client.nix4
-rw-r--r--nixos/modules/programs/zsh/oh-my-zsh.xml2
-rw-r--r--nixos/modules/rename.nix1
-rw-r--r--nixos/modules/security/pam.nix2
-rw-r--r--nixos/modules/services/backup/znapzend.nix4
-rw-r--r--nixos/modules/services/desktops/deepin/deepin.nix123
-rw-r--r--nixos/modules/services/desktops/geoclue2.nix2
-rw-r--r--nixos/modules/services/games/terraria.nix18
-rw-r--r--nixos/modules/services/hardware/sane_extra_backends/brscan4.nix2
-rw-r--r--nixos/modules/services/mail/opendkim.nix30
-rw-r--r--nixos/modules/services/misc/beanstalkd.nix10
-rw-r--r--nixos/modules/services/misc/gitlab.nix17
-rw-r--r--nixos/modules/services/misc/gitlab.xml6
-rw-r--r--nixos/modules/services/misc/nix-daemon.nix14
-rw-r--r--nixos/modules/services/network-filesystems/cachefilesd.nix18
-rw-r--r--nixos/modules/services/networking/biboumi.nix269
-rw-r--r--nixos/modules/services/networking/hylafax/options.nix4
-rw-r--r--nixos/modules/services/networking/nylon.nix2
-rw-r--r--nixos/modules/services/networking/prosody.nix2
-rw-r--r--nixos/modules/services/networking/prosody.xml8
-rw-r--r--nixos/modules/services/networking/robustirc-bridge.nix47
-rw-r--r--nixos/modules/services/networking/ssh/sshd.nix2
-rw-r--r--nixos/modules/services/networking/syncthing.nix13
-rw-r--r--nixos/modules/services/security/tor.nix2
-rw-r--r--nixos/modules/system/boot/luksroot.nix2
-rw-r--r--nixos/modules/system/boot/stage-1.nix2
-rw-r--r--nixos/modules/system/boot/systemd-unit-options.nix1
-rw-r--r--nixos/modules/system/boot/systemd.nix10
-rw-r--r--nixos/modules/system/etc/etc.nix2
-rw-r--r--nixos/modules/tasks/encrypted-devices.nix2
-rw-r--r--nixos/modules/tasks/filesystems.nix4
-rw-r--r--nixos/modules/tasks/network-interfaces.nix4
-rw-r--r--nixos/modules/testing/test-instrumentation.nix9
-rw-r--r--nixos/modules/virtualisation/containers.nix12
-rw-r--r--nixos/modules/virtualisation/cri-o.nix1
-rw-r--r--nixos/modules/virtualisation/nixos-containers.nix2
-rw-r--r--nixos/modules/virtualisation/railcar.nix4
-rw-r--r--nixos/tests/all-tests.nix1
-rw-r--r--nixos/tests/common/acme/server/mkcerts.nix3
-rw-r--r--nixos/tests/common/acme/server/snakeoil-certs.nix305
-rw-r--r--nixos/tests/krb5/example-config.nix8
-rw-r--r--nixos/tests/robustirc-bridge.nix29
-rw-r--r--pkgs/applications/audio/audacity/default.nix2
-rw-r--r--pkgs/applications/audio/bambootracker/default.nix29
-rw-r--r--pkgs/applications/audio/bchoppr/default.nix4
-rw-r--r--pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix4
-rw-r--r--pkgs/applications/audio/bjumblr/default.nix4
-rw-r--r--pkgs/applications/audio/bschaffl/default.nix4
-rw-r--r--pkgs/applications/audio/csound/default.nix4
-rw-r--r--pkgs/applications/audio/dragonfly-reverb/default.nix4
-rw-r--r--pkgs/applications/audio/fmit/default.nix4
-rw-r--r--pkgs/applications/audio/geonkick/default.nix7
-rw-r--r--pkgs/applications/audio/hydrogen/0.nix26
-rw-r--r--pkgs/applications/audio/hydrogen/default.nix26
-rw-r--r--pkgs/applications/audio/hydrogen/unstable.nix34
-rw-r--r--pkgs/applications/audio/lingot/default.nix8
-rw-r--r--pkgs/applications/audio/ncspot/default.nix6
-rw-r--r--pkgs/applications/audio/netease-cloud-music/default.nix81
-rw-r--r--pkgs/applications/audio/puddletag/default.nix31
-rw-r--r--pkgs/applications/audio/qjackctl/default.nix4
-rw-r--r--pkgs/applications/audio/qsynth/default.nix4
-rw-r--r--pkgs/applications/audio/renoise/default.nix4
-rw-r--r--pkgs/applications/audio/surge/default.nix48
-rw-r--r--pkgs/applications/audio/synthv1/default.nix4
-rw-r--r--pkgs/applications/audio/tunefish/default.nix43
-rw-r--r--pkgs/applications/backup/vorta/default.nix4
-rw-r--r--pkgs/applications/blockchains/dcrd.nix4
-rw-r--r--pkgs/applications/blockchains/lnd.nix6
-rw-r--r--pkgs/applications/blockchains/wasabibackend/default.nix4
-rw-r--r--pkgs/applications/blockchains/wasabibackend/deps.nix839
-rw-r--r--pkgs/applications/blockchains/wasabiwallet/default.nix6
-rw-r--r--pkgs/applications/editors/android-studio/common.nix2
-rw-r--r--pkgs/applications/editors/android-studio/default.nix6
-rw-r--r--pkgs/applications/editors/emacs/generic.nix2
-rw-r--r--pkgs/applications/editors/kakoune/default.nix4
-rw-r--r--pkgs/applications/editors/neovim/qt.nix1
-rw-r--r--pkgs/applications/editors/texstudio/default.nix4
-rw-r--r--pkgs/applications/editors/vim/qvim.nix113
-rw-r--r--pkgs/applications/gis/gmt/default.nix4
-rw-r--r--pkgs/applications/graphics/lightburn/default.nix4
-rw-r--r--pkgs/applications/graphics/meshlab/default.nix32
-rw-r--r--pkgs/applications/graphics/meshlab/fix-version.patch5
-rw-r--r--pkgs/applications/graphics/meshlab/meshlab.desktop3
-rw-r--r--pkgs/applications/graphics/meshlab/no-build-date.patch10
-rw-r--r--pkgs/applications/graphics/shotwell/default.nix4
-rw-r--r--pkgs/applications/graphics/xfractint/default.nix4
-rw-r--r--pkgs/applications/kde/akonadi/default.nix2
-rw-r--r--pkgs/applications/kde/fetch.sh2
-rw-r--r--pkgs/applications/kde/grantleetheme/default.nix2
-rw-r--r--pkgs/applications/kde/kdepim-apps-libs/default.nix2
-rw-r--r--pkgs/applications/kde/kdepim-runtime/default.nix2
-rw-r--r--pkgs/applications/kde/srcs.nix1728
-rw-r--r--pkgs/applications/misc/adobe-reader/default.nix4
-rw-r--r--pkgs/applications/misc/ausweisapp2/default.nix4
-rw-r--r--pkgs/applications/misc/dbeaver/default.nix4
-rw-r--r--pkgs/applications/misc/electrum/default.nix8
-rw-r--r--pkgs/applications/misc/etesync-dav/default.nix4
-rw-r--r--pkgs/applications/misc/googleearth/default.nix5
-rw-r--r--pkgs/applications/misc/k2pdfopt/0001-Fix-CMakeLists.patch49
-rw-r--r--pkgs/applications/misc/k2pdfopt/default.nix148
-rw-r--r--pkgs/applications/misc/k2pdfopt/k2pdfopt-mupdf-1.16.1.patch151
-rw-r--r--pkgs/applications/misc/k2pdfopt/k2pdfopt.patch99
-rw-r--r--pkgs/applications/misc/k2pdfopt/leptonica.patch254
-rw-r--r--pkgs/applications/misc/k2pdfopt/mupdf.patch1060
-rw-r--r--pkgs/applications/misc/k2pdfopt/tesseract.patch675
-rw-r--r--pkgs/applications/misc/minder/default.nix4
-rw-r--r--pkgs/applications/misc/octoprint/plugins.nix38
-rw-r--r--pkgs/applications/misc/openambit/default.nix48
-rw-r--r--pkgs/applications/misc/qcad/application-dir.patch13
-rw-r--r--pkgs/applications/misc/qcad/default.nix16
-rw-r--r--pkgs/applications/misc/qdirstat/default.nix12
-rw-r--r--pkgs/applications/misc/sdcv/default.nix4
-rw-r--r--pkgs/applications/misc/timewarrior/default.nix4
-rw-r--r--pkgs/applications/misc/worker/default.nix4
-rw-r--r--pkgs/applications/misc/zettlr/default.nix38
-rw-r--r--pkgs/applications/misc/zola/default.nix12
-rw-r--r--pkgs/applications/networking/browsers/amfora/default.nix6
-rw-r--r--pkgs/applications/networking/browsers/chromium/common.nix20
-rw-r--r--pkgs/applications/networking/browsers/chromium/default.nix35
-rw-r--r--pkgs/applications/networking/browsers/chromium/update.nix271
-rwxr-xr-xpkgs/applications/networking/browsers/chromium/update.py63
-rwxr-xr-xpkgs/applications/networking/browsers/chromium/update.sh4
-rw-r--r--pkgs/applications/networking/browsers/chromium/upstream-info.json17
-rw-r--r--pkgs/applications/networking/browsers/chromium/upstream-info.nix18
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix770
-rw-r--r--pkgs/applications/networking/browsers/firefox/packages.nix4
-rw-r--r--pkgs/applications/networking/browsers/google-chrome/default.nix2
-rw-r--r--pkgs/applications/networking/cloudflared/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/argo/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/helmfile/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/jx/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kops/default.nix17
-rw-r--r--pkgs/applications/networking/cluster/minikube/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/terraform/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/tilt/default.nix4
-rw-r--r--pkgs/applications/networking/feedreaders/rss2email/default.nix4
-rw-r--r--pkgs/applications/networking/feedreaders/rssguard/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/cordless/default.nix25
-rw-r--r--pkgs/applications/networking/instant-messengers/element/element-desktop-package.json2
-rw-r--r--pkgs/applications/networking/instant-messengers/element/element-desktop.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/element/element-web.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/pantalaimon/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/mutt/default.nix4
-rw-r--r--pkgs/applications/networking/mumble/default.nix9
-rw-r--r--pkgs/applications/networking/owncloud-client/default.nix4
-rw-r--r--pkgs/applications/networking/p2p/tixati/default.nix4
-rw-r--r--pkgs/applications/networking/remote/teamviewer/default.nix4
-rw-r--r--pkgs/applications/networking/scaleft/default.nix4
-rw-r--r--pkgs/applications/networking/seafile-client/default.nix4
-rw-r--r--pkgs/applications/networking/sync/rclone/default.nix26
-rw-r--r--pkgs/applications/office/espanso/default.nix6
-rw-r--r--pkgs/applications/office/gnumeric/default.nix8
-rw-r--r--pkgs/applications/office/gtg/default.nix7
-rw-r--r--pkgs/applications/office/libreoffice/default.nix9
-rw-r--r--pkgs/applications/office/libreoffice/src-fresh/download.nix178
-rw-r--r--pkgs/applications/office/libreoffice/src-fresh/primary.nix14
-rw-r--r--pkgs/applications/office/libreoffice/src-still/override.nix9
-rw-r--r--pkgs/applications/office/portfolio/default.nix4
-rw-r--r--pkgs/applications/office/skrooge/default.nix4
-rw-r--r--pkgs/applications/office/todo.txt-cli/default.nix4
-rw-r--r--pkgs/applications/office/wpsoffice/default.nix4
-rw-r--r--pkgs/applications/office/zotero/default.nix11
-rw-r--r--pkgs/applications/radio/chirp/default.nix4
-rw-r--r--pkgs/applications/radio/fldigi/default.nix4
-rw-r--r--pkgs/applications/radio/welle-io/default.nix4
-rw-r--r--pkgs/applications/science/biology/star/default.nix4
-rw-r--r--pkgs/applications/science/electronics/openhantek6022/default.nix4
-rw-r--r--pkgs/applications/science/math/R/default.nix4
-rw-r--r--pkgs/applications/science/math/geogebra/geogebra6.nix6
-rw-r--r--pkgs/applications/science/math/nasc/default.nix61
-rw-r--r--pkgs/applications/science/math/nauty/default.nix10
-rw-r--r--pkgs/applications/science/math/wxmaxima/default.nix4
-rw-r--r--pkgs/applications/science/misc/rink/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/delta/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/gita/default.nix5
-rw-r--r--pkgs/applications/version-management/git-lfs/default.nix5
-rw-r--r--pkgs/applications/version-management/gitea/default.nix4
-rw-r--r--pkgs/applications/version-management/gitea/static-root-path.patch14
-rw-r--r--pkgs/applications/version-management/gitkraken/default.nix8
-rw-r--r--pkgs/applications/version-management/sparkleshare/default.nix87
-rw-r--r--pkgs/applications/version-management/sublime-merge/default.nix8
-rw-r--r--pkgs/applications/version-management/yadm/default.nix4
-rw-r--r--pkgs/applications/video/catt/default.nix23
-rw-r--r--pkgs/applications/video/pitivi/default.nix140
-rw-r--r--pkgs/applications/video/vokoscreen-ng/default.nix71
-rw-r--r--pkgs/applications/video/webcamoid/default.nix4
-rw-r--r--pkgs/applications/virtualization/podman/default.nix4
-rw-r--r--pkgs/applications/window-managers/sxhkd/default.nix4
-rw-r--r--pkgs/applications/window-managers/weston/default.nix26
-rw-r--r--pkgs/build-support/appimage/default.nix1
-rw-r--r--pkgs/build-support/build-bazel-package/default.nix34
-rw-r--r--pkgs/build-support/cc-wrapper/default.nix12
-rw-r--r--pkgs/build-support/release/default.nix4
-rw-r--r--pkgs/build-support/release/gcov-report.nix49
-rw-r--r--pkgs/data/fonts/ibm-plex/default.nix4
-rw-r--r--pkgs/data/fonts/recursive/default.nix4
-rw-r--r--pkgs/data/icons/iconpack-obsidian/default.nix10
-rw-r--r--pkgs/data/icons/iso-flags/default.nix47
-rw-r--r--pkgs/data/misc/cldr-emoji-annotation/default.nix4
-rw-r--r--pkgs/data/themes/marwaita-manjaro/default.nix46
-rw-r--r--pkgs/data/themes/yaru/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-common/default.nix156
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-common/libcroco.nix33
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix111
-rw-r--r--pkgs/desktops/cinnamon/default.nix13
-rw-r--r--pkgs/desktops/deepin/dde-api/default.nix127
-rw-r--r--pkgs/desktops/deepin/dde-api/deps.nix102
-rw-r--r--pkgs/desktops/deepin/dde-calendar/default.nix57
-rw-r--r--pkgs/desktops/deepin/dde-control-center/default.nix150
-rw-r--r--pkgs/desktops/deepin/dde-control-center/fix-paths.patch65
-rw-r--r--pkgs/desktops/deepin/dde-daemon/default.nix158
-rw-r--r--pkgs/desktops/deepin/dde-daemon/deps.nix111
-rw-r--r--pkgs/desktops/deepin/dde-dock/dde-dock.plugins-dir.patch39
-rw-r--r--pkgs/desktops/deepin/dde-dock/default.nix116
-rw-r--r--pkgs/desktops/deepin/dde-dock/wrapper.nix25
-rw-r--r--pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-mime-cache-paths.patch323
-rw-r--r--pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-paths.patch89
-rw-r--r--pkgs/desktops/deepin/dde-file-manager/dde-file-manager.pixmaps-paths.patch38
-rw-r--r--pkgs/desktops/deepin/dde-file-manager/default.nix298
-rw-r--r--pkgs/desktops/deepin/dde-kwin/0001-dde-kwin.pc-make-paths-relative.patch56
-rw-r--r--pkgs/desktops/deepin/dde-kwin/default.nix142
-rw-r--r--pkgs/desktops/deepin/dde-kwin/fix-paths.patch16
-rw-r--r--pkgs/desktops/deepin/dde-launcher/default.nix101
-rw-r--r--pkgs/desktops/deepin/dde-network-utils/default.nix63
-rw-r--r--pkgs/desktops/deepin/dde-network-utils/fix-paths.patch23
-rw-r--r--pkgs/desktops/deepin/dde-polkit-agent/dde-polkit-agent.plugins-dir.patch42
-rw-r--r--pkgs/desktops/deepin/dde-polkit-agent/default.nix60
-rw-r--r--pkgs/desktops/deepin/dde-qt-dbus-factory/default.nix43
-rw-r--r--pkgs/desktops/deepin/dde-session-ui/default.nix157
-rw-r--r--pkgs/desktops/deepin/deepin-anything/default.nix82
-rw-r--r--pkgs/desktops/deepin/deepin-calculator/default.nix57
-rw-r--r--pkgs/desktops/deepin/deepin-desktop-base/default.nix68
-rw-r--r--pkgs/desktops/deepin/deepin-desktop-schemas/default.nix79
-rw-r--r--pkgs/desktops/deepin/deepin-editor/default.nix72
-rw-r--r--pkgs/desktops/deepin/deepin-gettext-tools/default.nix55
-rw-r--r--pkgs/desktops/deepin/deepin-gtk-theme/default.nix35
-rw-r--r--pkgs/desktops/deepin/deepin-icon-theme/default.nix67
-rw-r--r--pkgs/desktops/deepin/deepin-image-viewer/default.nix66
-rw-r--r--pkgs/desktops/deepin/deepin-menu/default.nix54
-rw-r--r--pkgs/desktops/deepin/deepin-movie-reborn/default.nix85
-rw-r--r--pkgs/desktops/deepin/deepin-shortcut-viewer/default.nix45
-rw-r--r--pkgs/desktops/deepin/deepin-sound-theme/default.nix30
-rw-r--r--pkgs/desktops/deepin/deepin-terminal/default.nix117
-rw-r--r--pkgs/desktops/deepin/deepin-turbo/default.nix50
-rw-r--r--pkgs/desktops/deepin/deepin-wallpapers/default.nix52
-rw-r--r--pkgs/desktops/deepin/default.nix62
-rw-r--r--pkgs/desktops/deepin/disomaster/default.nix50
-rw-r--r--pkgs/desktops/deepin/dpa-ext-gnomekeyring/default.nix49
-rw-r--r--pkgs/desktops/deepin/dtkcore/default.nix63
-rw-r--r--pkgs/desktops/deepin/dtkwidget/default.nix65
-rw-r--r--pkgs/desktops/deepin/dtkwm/default.nix58
-rw-r--r--pkgs/desktops/deepin/go-dbus-factory/default.nix34
-rw-r--r--pkgs/desktops/deepin/go-gir-generator/default.nix59
-rw-r--r--pkgs/desktops/deepin/go-lib/default.nix46
-rw-r--r--pkgs/desktops/deepin/qcef/default.nix127
-rw-r--r--pkgs/desktops/deepin/qt5integration/default.nix65
-rw-r--r--pkgs/desktops/deepin/qt5platform-plugins/default.nix63
-rwxr-xr-xpkgs/desktops/deepin/setup-hook.sh64
-rw-r--r--pkgs/desktops/deepin/startdde/default.nix160
-rw-r--r--pkgs/desktops/deepin/startdde/deps.nix30
-rw-r--r--pkgs/desktops/deepin/udisks2-qt5/default.nix50
-rw-r--r--pkgs/desktops/enlightenment/efl/default.nix4
-rw-r--r--pkgs/desktops/enlightenment/terminology/default.nix4
-rw-r--r--pkgs/desktops/gnome-2/desktop/mail-notification/default.nix4
-rw-r--r--pkgs/desktops/gnome-2/platform/libgnomeui/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/appcenter/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-calculator/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-calendar/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-camera/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-code/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-dock/default.nix9
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-feedback/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-files/0001-filechooser-module-hardcode-gsettings-for-nixos.patch35
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-files/default.nix10
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-files/hardcode-gsettings.patch22
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-music/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-photos/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-terminal/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-videos/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/sideload/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/0001-Remove-Install-Unlisted-Engines-function.patch700
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix10
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix10
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard/default.nix2
-rw-r--r--pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix2
-rw-r--r--pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix2
-rw-r--r--pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix2
-rw-r--r--pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix2
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix2
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix2
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix6
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix2
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix2
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix2
-rw-r--r--pkgs/desktops/pantheon/desktop/gala/default.nix8
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix6
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix2
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix2
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix2
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix2
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix4
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix2
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix4
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix2
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix4
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel/default.nix2
-rw-r--r--pkgs/desktops/pantheon/granite/default.nix2
-rw-r--r--pkgs/desktops/pantheon/services/contractor/default.nix2
-rw-r--r--pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix2
-rw-r--r--pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix2
-rw-r--r--pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix2
-rw-r--r--pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix2
-rw-r--r--pkgs/desktops/plasma-5/breeze-plymouth/default.nix11
-rw-r--r--pkgs/desktops/plasma-5/breeze-plymouth/series1
-rw-r--r--pkgs/desktops/plasma-5/fetch.sh2
-rw-r--r--pkgs/desktops/plasma-5/kde-gtk-config/0001-gsettings-schemas-path.patch21
-rw-r--r--pkgs/desktops/plasma-5/kde-gtk-config/default.nix8
-rw-r--r--pkgs/desktops/plasma-5/kde-gtk-config/patches/follow-symlinks.patch49
-rw-r--r--pkgs/desktops/plasma-5/kde-gtk-config/patches/gsettings.patch21
-rw-r--r--pkgs/desktops/plasma-5/kde-gtk-config/patches/series2
-rw-r--r--pkgs/desktops/plasma-5/kdeplasma-addons.nix13
-rw-r--r--pkgs/desktops/plasma-5/kinfocenter.nix9
-rw-r--r--pkgs/desktops/plasma-5/kscreen-417316.patch76
-rw-r--r--pkgs/desktops/plasma-5/kscreen.nix5
-rw-r--r--pkgs/desktops/plasma-5/ksysguard.nix4
-rw-r--r--pkgs/desktops/plasma-5/kwin/default.nix10
-rw-r--r--pkgs/desktops/plasma-5/kwin/scripts/dynamic-workspaces.nix39
-rw-r--r--pkgs/desktops/plasma-5/kwin/scripts/krohnkite.nix2
-rw-r--r--pkgs/desktops/plasma-5/kwin/scripts/tiling.nix2
-rw-r--r--pkgs/desktops/plasma-5/libkscreen/default.nix6
-rw-r--r--pkgs/desktops/plasma-5/libkscreen/series1
-rw-r--r--pkgs/desktops/plasma-5/plasma-desktop/default.nix11
-rw-r--r--pkgs/desktops/plasma-5/plasma-desktop/hwclock-path.patch2
-rw-r--r--pkgs/desktops/plasma-5/plasma-desktop/series2
-rw-r--r--pkgs/desktops/plasma-5/plasma-pa.nix13
-rw-r--r--pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch39
-rw-r--r--pkgs/desktops/plasma-5/plasma-workspace/0002-absolute-wallpaper-install-dir.patch13
-rw-r--r--pkgs/desktops/plasma-5/plasma-workspace/default.nix6
-rw-r--r--pkgs/desktops/plasma-5/powerdevil.nix12
-rw-r--r--pkgs/desktops/plasma-5/srcs.nix386
-rw-r--r--pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix9
-rw-r--r--pkgs/development/compilers/fpc/binary.nix20
-rw-r--r--pkgs/development/compilers/fpc/default.nix19
-rw-r--r--pkgs/development/compilers/fpc/mark-paths.patch109
-rw-r--r--pkgs/development/compilers/gleam/default.nix6
-rw-r--r--pkgs/development/compilers/go/1.14.nix4
-rw-r--r--pkgs/development/compilers/go/1.15.nix4
-rw-r--r--pkgs/development/compilers/ocaml/4.11.nix4
-rw-r--r--pkgs/development/coq-modules/dpdgraph/default.nix4
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix104
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix16
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix19
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix.yaml83
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix1742
-rw-r--r--pkgs/development/haskell-modules/non-hackage-packages.nix9
-rw-r--r--pkgs/development/haskell-modules/patches/hasura-884-compat.patch26
-rw-r--r--pkgs/development/interpreters/j/default.nix6
-rw-r--r--pkgs/development/interpreters/luajit/2.0.nix6
-rw-r--r--pkgs/development/interpreters/luajit/2.1.nix6
-rw-r--r--pkgs/development/interpreters/python/default.nix4
-rw-r--r--pkgs/development/interpreters/rakudo/default.nix4
-rw-r--r--pkgs/development/interpreters/rakudo/nqp.nix6
-rw-r--r--pkgs/development/libraries/alembic/default.nix4
-rw-r--r--pkgs/development/libraries/appindicator-sharp/default.nix43
-rw-r--r--pkgs/development/libraries/appstream/default.nix12
-rw-r--r--pkgs/development/libraries/aspell/dictionaries.nix8
-rw-r--r--pkgs/development/libraries/ayatana-ido/default.nix4
-rw-r--r--pkgs/development/libraries/dlib/default.nix4
-rw-r--r--pkgs/development/libraries/ethash/default.nix4
-rw-r--r--pkgs/development/libraries/exiv2/default.nix22
-rw-r--r--pkgs/development/libraries/fflas-ffpack/default.nix24
-rw-r--r--pkgs/development/libraries/g2o/default.nix17
-rw-r--r--pkgs/development/libraries/gensio/default.nix4
-rw-r--r--pkgs/development/libraries/givaro/default.nix20
-rw-r--r--pkgs/development/libraries/glib/default.nix3
-rw-r--r--pkgs/development/libraries/goffice/default.nix4
-rw-r--r--pkgs/development/libraries/grantlee/5/default.nix7
-rw-r--r--pkgs/development/libraries/grantlee/5/series2
-rw-r--r--pkgs/development/libraries/gstreamer/default.nix2
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix23
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gst-plugins-bad/default.nix36
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/default.nix62
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/gcc-4.9.patch38
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/default.nix52
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/linux-headers-3.9.patch27
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/v4l.patch11
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gst-plugins-ugly/default.nix30
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gst-python/default.nix37
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gst-python/disable-testFake.patch56
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gstreamer/darwin.patch14
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix89
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gstreamer/setup-hook.sh8
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gstreamermm/default.nix31
-rw-r--r--pkgs/development/libraries/gstreamer/rtsp-server/default.nix9
-rw-r--r--pkgs/development/libraries/gstreamer/rtsp-server/fix_pkgconfig_includedir.patch15
-rw-r--r--pkgs/development/libraries/hpx/default.nix4
-rw-r--r--pkgs/development/libraries/itk/default.nix4
-rw-r--r--pkgs/development/libraries/java/hsqldb/default.nix4
-rw-r--r--pkgs/development/libraries/java/lombok/default.nix4
-rw-r--r--pkgs/development/libraries/jxrlib/default.nix8
-rw-r--r--pkgs/development/libraries/kde-frameworks/default.nix1
-rw-r--r--pkgs/development/libraries/kde-frameworks/extra-cmake-modules/default.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/extra-cmake-modules/series1
-rw-r--r--pkgs/development/libraries/kde-frameworks/kauth/default.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/kauth/series1
-rw-r--r--pkgs/development/libraries/kde-frameworks/kcmutils/default.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdelibs4support/series1
-rw-r--r--pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/kfilemetadata/series1
-rw-r--r--pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/kiconthemes/series1
-rw-r--r--pkgs/development/libraries/kde-frameworks/kinit/default.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kinit/series3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kio/default.nix7
-rw-r--r--pkgs/development/libraries/kde-frameworks/kio/series2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kpackage/default.nix7
-rw-r--r--pkgs/development/libraries/kde-frameworks/kpackage/series2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kquickcharts.nix15
-rw-r--r--pkgs/development/libraries/kde-frameworks/kservice/default.nix7
-rw-r--r--pkgs/development/libraries/kde-frameworks/kservice/series2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/kwindowsystem/series1
-rw-r--r--pkgs/development/libraries/libaacs/default.nix4
-rw-r--r--pkgs/development/libraries/libcint/default.nix4
-rw-r--r--pkgs/development/libraries/libfilezilla/default.nix4
-rw-r--r--pkgs/development/libraries/liblouis/default.nix4
-rw-r--r--pkgs/development/libraries/libpqxx/default.nix2
-rw-r--r--pkgs/development/libraries/libpwquality/default.nix19
-rw-r--r--pkgs/development/libraries/libraw/default.nix4
-rw-r--r--pkgs/development/libraries/libusb-compat/fix-headers.patch (renamed from pkgs/development/libraries/libusb/fix-headers.patch)0
-rw-r--r--pkgs/development/libraries/linbox/default.nix21
-rw-r--r--pkgs/development/libraries/lyra/default.nix4
-rw-r--r--pkgs/development/libraries/notify-sharp/default.nix7
-rw-r--r--pkgs/development/libraries/openmpi/default.nix4
-rw-r--r--pkgs/development/libraries/pcl/default.nix4
-rw-r--r--pkgs/development/libraries/qt-4.x/4.8/default.nix10
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtbase.nix24
-rw-r--r--pkgs/development/libraries/rdkafka/default.nix4
-rw-r--r--pkgs/development/libraries/readosm/default.nix4
-rw-r--r--pkgs/development/libraries/redkite/default.nix4
-rw-r--r--pkgs/development/libraries/science/math/cudnn/generic.nix17
-rw-r--r--pkgs/development/libraries/science/math/libtorch/bin.nix111
-rw-r--r--pkgs/development/libraries/science/math/libtorch/binary-hashes.nix14
-rw-r--r--pkgs/development/libraries/science/math/libtorch/test/CMakeLists.txt4
-rw-r--r--pkgs/development/libraries/science/math/libtorch/test/default.nix26
-rw-r--r--pkgs/development/libraries/science/math/libtorch/test/test.cpp7
-rw-r--r--pkgs/development/libraries/science/math/openlibm/default.nix4
-rw-r--r--pkgs/development/libraries/science/math/suitesparse-graphblas/default.nix4
-rw-r--r--pkgs/development/libraries/sparsehash/default.nix4
-rw-r--r--pkgs/development/libraries/spdlog/default.nix4
-rw-r--r--pkgs/development/libraries/speechd/default.nix4
-rw-r--r--pkgs/development/libraries/strigi/default.nix43
-rw-r--r--pkgs/development/libraries/strigi/export_bufferedstream.patch12
-rw-r--r--pkgs/development/libraries/strigi/gcc6.patch45
-rw-r--r--pkgs/development/libraries/tiledb/default.nix19
-rw-r--r--pkgs/development/libraries/wcslib/default.nix4
-rw-r--r--pkgs/development/libraries/webkit2-sharp/default.nix49
-rw-r--r--pkgs/development/libraries/wolfssl/default.nix4
-rw-r--r--pkgs/development/libraries/wxwidgets/2.8/default.nix4
-rw-r--r--pkgs/development/libraries/wxwidgets/2.9/default.nix7
-rw-r--r--pkgs/development/libraries/wxwidgets/3.0/default.nix4
-rw-r--r--pkgs/development/libraries/wxwidgets/3.1/default.nix4
-rw-r--r--pkgs/development/libraries/xapian/default.nix2
-rw-r--r--pkgs/development/misc/haskell/hasura/ci-info/default.nix (renamed from pkgs/servers/hasura/ci-info.nix)0
-rw-r--r--pkgs/development/misc/haskell/hasura/graphql-engine/default.nix (renamed from pkgs/servers/hasura/graphql-engine.nix)10
-rw-r--r--pkgs/development/misc/haskell/hasura/graphql-parser/default.nix (renamed from pkgs/servers/hasura/graphql-parser.nix)7
-rw-r--r--pkgs/development/misc/haskell/hasura/pg-client/default.nix (renamed from pkgs/servers/hasura/pg-client.nix)0
-rw-r--r--pkgs/development/node-packages/node-packages.json1
-rw-r--r--pkgs/development/node-packages/node-packages.nix2874
-rw-r--r--pkgs/development/ocaml-modules/csexp/default.nix26
-rw-r--r--pkgs/development/ocaml-modules/dune-action-plugin/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/dune-build-info/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/dune-configurator/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/dune-glob/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/dune-private-libs/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/fdkaac/default.nix27
-rw-r--r--pkgs/development/ocaml-modules/mirage-crypto/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/mirage-stack/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/piqi-ocaml/default.nix20
-rw-r--r--pkgs/development/ocaml-modules/re/default.nix10
-rw-r--r--pkgs/development/ocaml-modules/srt/default.nix30
-rw-r--r--pkgs/development/python-modules/apsw/default.nix4
-rw-r--r--pkgs/development/python-modules/asgi-csrf/default.nix31
-rw-r--r--pkgs/development/python-modules/azure-mgmt-appconfiguration/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-containerservice/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-keyvault/default.nix2
-rw-r--r--pkgs/development/python-modules/azure-mgmt-reservations/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-storage/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-synapse/default.nix32
-rw-r--r--pkgs/development/python-modules/azure-multiapi-storage/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-synapse-accesscontrol/default.nix31
-rw-r--r--pkgs/development/python-modules/azure-synapse-spark/default.nix31
-rw-r--r--pkgs/development/python-modules/black-macchiato/default.nix35
-rw-r--r--pkgs/development/python-modules/catalogue/default.nix10
-rw-r--r--pkgs/development/python-modules/certbot/default.nix4
-rw-r--r--pkgs/development/python-modules/cirq/default.nix22
-rw-r--r--pkgs/development/python-modules/credstash/default.nix10
-rw-r--r--pkgs/development/python-modules/databricks-connect/default.nix32
-rw-r--r--pkgs/development/python-modules/datasette/default.nix24
-rw-r--r--pkgs/development/python-modules/django-maintenance-mode/default.nix24
-rw-r--r--pkgs/development/python-modules/dlib/default.nix4
-rw-r--r--pkgs/development/python-modules/dnspython/1.nix22
-rw-r--r--pkgs/development/python-modules/dominate/default.nix4
-rw-r--r--pkgs/development/python-modules/elasticsearch/default.nix4
-rw-r--r--pkgs/development/python-modules/ftputil/default.nix5
-rw-r--r--pkgs/development/python-modules/howdoi/default.nix18
-rw-r--r--pkgs/development/python-modules/httpcore/default.nix34
-rw-r--r--pkgs/development/python-modules/httpx/default.nix24
-rw-r--r--pkgs/development/python-modules/josepy/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyterhub-ldapauthenticator/default.nix4
-rw-r--r--pkgs/development/python-modules/keep/default.nix36
-rw-r--r--pkgs/development/python-modules/maildir-deduplicate/default.nix27
-rw-r--r--pkgs/development/python-modules/matrix-nio/default.nix4
-rw-r--r--pkgs/development/python-modules/mergedeep/default.nix26
-rw-r--r--pkgs/development/python-modules/pdfminer_six/default.nix4
-rw-r--r--pkgs/development/python-modules/phonopy/default.nix18
-rw-r--r--pkgs/development/python-modules/pip2nix/default.nix40
-rw-r--r--pkgs/development/python-modules/pre-commit/default.nix4
-rw-r--r--pkgs/development/python-modules/pysqueezebox/default.nix27
-rw-r--r--pkgs/development/python-modules/python-libarchive/default.nix27
-rw-r--r--pkgs/development/python-modules/qutip/default.nix45
-rw-r--r--pkgs/development/python-modules/solo-python/default.nix4
-rw-r--r--pkgs/development/python-modules/sqlalchemy-citext/default.nix7
-rw-r--r--pkgs/development/python-modules/starlette/default.nix10
-rw-r--r--pkgs/development/python-modules/tensorflow/1/default.nix6
-rw-r--r--pkgs/development/python-modules/tensorflow/2/default.nix6
-rw-r--r--pkgs/development/python-modules/tiledb/default.nix16
-rw-r--r--pkgs/development/python-modules/transformers/default.nix15
-rw-r--r--pkgs/development/python-modules/ufonormalizer/default.nix4
-rw-r--r--pkgs/development/python-modules/unicodedata2/default.nix2
-rw-r--r--pkgs/development/python-modules/yeelight/default.nix20
-rw-r--r--pkgs/development/python-modules/zope_i18n/default.nix27
-rw-r--r--pkgs/development/tools/ameba/default.nix4
-rw-r--r--pkgs/development/tools/analysis/cargo-tarpaulin/default.nix6
-rw-r--r--pkgs/development/tools/analysis/codeql/default.nix4
-rw-r--r--pkgs/development/tools/analysis/flow/default.nix5
-rw-r--r--pkgs/development/tools/analysis/hotspot/default.nix4
-rw-r--r--pkgs/development/tools/analysis/radare2/default.nix24
-rwxr-xr-xpkgs/development/tools/analysis/radare2/update.py20
-rw-r--r--pkgs/development/tools/analysis/svlint/default.nix25
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_0_26/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_1/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_3/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/bloop/default.nix8
-rw-r--r--pkgs/development/tools/buildah/default.nix4
-rw-r--r--pkgs/development/tools/continuous-integration/fly/default.nix4
-rw-r--r--pkgs/development/tools/dapper/default.nix4
-rw-r--r--pkgs/development/tools/dep2nix/deps.nix272
-rw-r--r--pkgs/development/tools/ginkgo/default.nix4
-rw-r--r--pkgs/development/tools/go-migrate/default.nix6
-rw-r--r--pkgs/development/tools/gotestsum/default.nix6
-rw-r--r--pkgs/development/tools/haskell/haskell-language-server/default.nix6
-rw-r--r--pkgs/development/tools/haskell/haskell-language-server/hls-ghcide.nix6
-rwxr-xr-xpkgs/development/tools/haskell/haskell-language-server/update.sh2
-rw-r--r--pkgs/development/tools/hcloud/default.nix6
-rw-r--r--pkgs/development/tools/java/visualvm/default.nix4
-rw-r--r--pkgs/development/tools/knightos/kcc/default.nix (renamed from pkgs/development/compilers/kcc/default.nix)0
-rw-r--r--pkgs/development/tools/knightos/kimg/default.nix (renamed from pkgs/development/tools/misc/kimg/default.nix)0
-rw-r--r--pkgs/development/tools/knightos/kpack/default.nix (renamed from pkgs/development/tools/misc/kpack/default.nix)0
-rw-r--r--pkgs/development/tools/knightos/mkrom/default.nix (renamed from pkgs/development/tools/misc/mkrom/default.nix)0
-rw-r--r--pkgs/development/tools/knightos/scas/default.nix (renamed from pkgs/development/compilers/scas/default.nix)10
-rw-r--r--pkgs/development/tools/lazygit/default.nix4
-rw-r--r--pkgs/development/tools/leaps/deps.nix350
-rw-r--r--pkgs/development/tools/misc/act/default.nix6
-rw-r--r--pkgs/development/tools/misc/asls/default.nix4
-rw-r--r--pkgs/development/tools/misc/clojure-lsp/default.nix4
-rw-r--r--pkgs/development/tools/misc/hydra/default.nix6
-rw-r--r--pkgs/development/tools/misc/svls/default.nix25
-rw-r--r--pkgs/development/tools/misc/swig/4.nix4
-rw-r--r--pkgs/development/tools/ocaml/dune/2.nix14
-rw-r--r--pkgs/development/tools/ocaml/merlin/default.nix4
-rw-r--r--pkgs/development/tools/ocaml/ocp-index/default.nix12
-rw-r--r--pkgs/development/tools/packer/default.nix2
-rw-r--r--pkgs/development/tools/profiling/heaptrack/default.nix4
-rw-r--r--pkgs/development/tools/rust/cbindgen/default.nix6
-rw-r--r--pkgs/development/tools/rust/rustup/default.nix30
-rw-r--r--pkgs/development/tools/selenium/chromedriver/default.nix10
-rw-r--r--pkgs/development/tools/skaffold/default.nix4
-rw-r--r--pkgs/development/tools/spring-boot-cli/default.nix4
-rw-r--r--pkgs/development/tools/tracy/default.nix14
-rw-r--r--pkgs/development/tools/vcstool/default.nix4
-rw-r--r--pkgs/development/tools/vultr/default.nix4
-rw-r--r--pkgs/development/tools/yarn/default.nix4
-rw-r--r--pkgs/development/tools/ydiff/default.nix4
-rw-r--r--pkgs/development/web/deno/default.nix6
-rw-r--r--pkgs/development/web/postman/default.nix4
-rw-r--r--pkgs/games/cockatrice/default.nix4
-rw-r--r--pkgs/games/hedgewars/default.nix9
-rw-r--r--pkgs/games/left4gore/default.nix48
-rw-r--r--pkgs/games/osu-lazer/default.nix4
-rw-r--r--pkgs/games/osu-lazer/deps.nix20
-rw-r--r--pkgs/games/shattered-pixel-dungeon/default.nix4
-rw-r--r--pkgs/games/steam/fhsenv.nix3
-rw-r--r--pkgs/games/ultrastardx/default.nix41
-rw-r--r--pkgs/games/vassal/default.nix4
-rw-r--r--pkgs/misc/drivers/epson-escpr2/default.nix8
-rw-r--r--pkgs/misc/emulators/wine/sources.nix8
-rw-r--r--pkgs/misc/screensavers/xlockmore/default.nix4
-rw-r--r--pkgs/misc/seafile-shared/default.nix4
-rw-r--r--pkgs/misc/sndio/default.nix16
-rw-r--r--pkgs/misc/uboot/default.nix7
-rw-r--r--pkgs/misc/vim-plugins/deprecated.json4
-rw-r--r--pkgs/misc/vim-plugins/generated.nix747
-rw-r--r--pkgs/misc/vim-plugins/overrides.nix241
-rw-r--r--pkgs/misc/vim-plugins/vim-plugin-names41
-rw-r--r--pkgs/os-specific/darwin/yabai/default.nix4
-rw-r--r--pkgs/os-specific/linux/bcc/default.nix9
-rw-r--r--pkgs/os-specific/linux/bpftrace/default.nix10
-rw-r--r--pkgs/os-specific/linux/deepin-anything/default.nix22
-rw-r--r--pkgs/os-specific/linux/kernel/hardened/patches.json24
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.14.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.19.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.9.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.7.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.8.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rt-5.4.nix41
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rt-5.6.nix41
-rw-r--r--pkgs/os-specific/linux/kernel/linux-testing.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-zen.nix4
-rwxr-xr-xpkgs/os-specific/linux/kernel/update-rt.sh77
-rwxr-xr-xpkgs/os-specific/linux/kernel/update.sh3
-rw-r--r--pkgs/os-specific/linux/libbpf/default.nix10
-rw-r--r--pkgs/os-specific/linux/microcode/amd.nix2
-rw-r--r--pkgs/os-specific/linux/numworks-udev-rules/50-numworks-calculator.rules2
-rw-r--r--pkgs/os-specific/linux/numworks-udev-rules/default.nix21
-rwxr-xr-xpkgs/os-specific/linux/numworks-udev-rules/update.sh3
-rw-r--r--pkgs/os-specific/linux/oci-seccomp-bpf-hook/default.nix (renamed from pkgs/applications/virtualization/oci-seccomp-bpf-hook/default.nix)6
-rw-r--r--pkgs/os-specific/linux/tiscamera/default.nix42
-rw-r--r--pkgs/os-specific/linux/zenmonitor/default.nix4
-rw-r--r--pkgs/servers/bazarr/default.nix4
-rw-r--r--pkgs/servers/dgraph/default.nix6
-rw-r--r--pkgs/servers/dns/knot-dns/default.nix5
-rw-r--r--pkgs/servers/etcd/default.nix9
-rw-r--r--pkgs/servers/hasura/cli.nix2
-rw-r--r--pkgs/servers/hasura/default.nix63
-rw-r--r--pkgs/servers/hasura/dependent-map.nix13
-rw-r--r--pkgs/servers/hasura/dependent-sum.nix10
-rw-r--r--pkgs/servers/hasura/ghc-heap-view.nix18
-rw-r--r--pkgs/servers/hasura/immortal.nix17
-rw-r--r--pkgs/servers/hasura/network-uri.nix18
-rw-r--r--pkgs/servers/hasura/these.nix25
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix4
-rw-r--r--pkgs/servers/irc/robustirc-bridge/default.nix29
-rw-r--r--pkgs/servers/jackett/default.nix4
-rw-r--r--pkgs/servers/jellyfin/default.nix6
-rw-r--r--pkgs/servers/limesurvey/default.nix10
-rw-r--r--pkgs/servers/mautrix-whatsapp/default.nix6
-rw-r--r--pkgs/servers/metabase/default.nix4
-rw-r--r--pkgs/servers/monitoring/loki/default.nix4
-rw-r--r--pkgs/servers/monitoring/sensu-go/default.nix4
-rw-r--r--pkgs/servers/monitoring/zabbix/versions.nix8
-rw-r--r--pkgs/servers/nosql/arangodb/default.nix12
-rw-r--r--pkgs/servers/nosql/influxdb/default.nix4
-rw-r--r--pkgs/servers/nosql/victoriametrics/default.nix4
-rw-r--r--pkgs/servers/pinnwand/default.nix4
-rw-r--r--pkgs/servers/plex/raw.nix4
-rw-r--r--pkgs/servers/pounce/default.nix4
-rw-r--r--pkgs/servers/radicale/3.x.nix4
-rw-r--r--pkgs/servers/search/solr/default.nix4
-rw-r--r--pkgs/servers/ser2net/default.nix4
-rw-r--r--pkgs/servers/sickbeard/sickgear.nix4
-rw-r--r--pkgs/servers/sql/cockroachdb/default.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/age.nix65
-rw-r--r--pkgs/servers/sql/postgresql/packages.nix2
-rw-r--r--pkgs/servers/squid/default.nix4
-rw-r--r--pkgs/servers/sslh/default.nix4
-rw-r--r--pkgs/servers/tailscale/default.nix4
-rw-r--r--pkgs/servers/xmpp/biboumi/default.nix7
-rw-r--r--pkgs/servers/zigbee2mqtt/default.nix4
-rw-r--r--pkgs/servers/zigbee2mqtt/node-packages.nix1472
-rw-r--r--pkgs/shells/dash/default.nix7
-rw-r--r--pkgs/shells/nushell/default.nix8
-rw-r--r--pkgs/shells/xonsh/default.nix13
-rw-r--r--pkgs/shells/zsh/antibody/default.nix4
-rw-r--r--pkgs/shells/zsh/oh-my-zsh/default.nix90
-rwxr-xr-xpkgs/shells/zsh/oh-my-zsh/update.sh1
-rw-r--r--pkgs/stdenv/generic/make-derivation.nix34
-rw-r--r--pkgs/tools/X11/ckbcomp/default.nix4
-rw-r--r--pkgs/tools/admin/aws-vault/default.nix6
-rw-r--r--pkgs/tools/admin/azure-cli/default.nix7
-rw-r--r--pkgs/tools/admin/azure-cli/python-packages.nix46
-rw-r--r--pkgs/tools/admin/lego/default.nix4
-rw-r--r--pkgs/tools/audio/beets/mutagen-1.43.patch17
-rw-r--r--pkgs/tools/audio/qastools/default.nix4
-rw-r--r--pkgs/tools/filesystems/gocryptfs/default.nix4
-rw-r--r--pkgs/tools/filesystems/idsk/default.nix4
-rw-r--r--pkgs/tools/filesystems/reiser4progs/default.nix4
-rw-r--r--pkgs/tools/filesystems/securefs/default.nix5
-rw-r--r--pkgs/tools/graphics/netpbm/default.nix20
-rw-r--r--pkgs/tools/graphics/yafaray-core/default.nix6
-rw-r--r--pkgs/tools/misc/antimicroX/default.nix4
-rw-r--r--pkgs/tools/misc/broot/default.nix20
-rw-r--r--pkgs/tools/misc/cpuminer-multi/default.nix4
-rw-r--r--pkgs/tools/misc/direnv/default.nix4
-rw-r--r--pkgs/tools/misc/dust/default.nix6
-rw-r--r--pkgs/tools/misc/git-town/default.nix13
-rw-r--r--pkgs/tools/misc/godu/default.nix24
-rw-r--r--pkgs/tools/misc/godu/go-mod.patch33
-rw-r--r--pkgs/tools/misc/kdecoration-viewer/default.nix28
-rw-r--r--pkgs/tools/misc/mbuffer/default.nix8
-rw-r--r--pkgs/tools/misc/oppai-ng/default.nix4
-rw-r--r--pkgs/tools/misc/pspg/default.nix4
-rw-r--r--pkgs/tools/misc/rpm-ostree/default.nix4
-rw-r--r--pkgs/tools/misc/tealdeer/default.nix6
-rw-r--r--pkgs/tools/misc/thin-provisioning-tools/default.nix22
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix4
-rw-r--r--pkgs/tools/misc/yubikey-manager-qt/default.nix4
-rw-r--r--pkgs/tools/networking/amass/default.nix6
-rw-r--r--pkgs/tools/networking/bandwhich/default.nix6
-rw-r--r--pkgs/tools/networking/croc/default.nix6
-rw-r--r--pkgs/tools/networking/dnsproxy/default.nix4
-rw-r--r--pkgs/tools/networking/goreplay/default.nix26
-rw-r--r--pkgs/tools/networking/i2p/default.nix10
-rw-r--r--pkgs/tools/networking/i2p/i2p.patch2
-rw-r--r--pkgs/tools/networking/i2pd/default.nix4
-rw-r--r--pkgs/tools/networking/siege/default.nix4
-rw-r--r--pkgs/tools/networking/toss/default.nix20
-rw-r--r--pkgs/tools/networking/unbound/default.nix2
-rw-r--r--pkgs/tools/networking/zssh/default.nix4
-rw-r--r--pkgs/tools/security/1password-gui/default.nix4
-rw-r--r--pkgs/tools/security/doppler/default.nix4
-rw-r--r--pkgs/tools/security/fail2ban/default.nix2
-rw-r--r--pkgs/tools/security/honggfuzz/default.nix10
-rw-r--r--pkgs/tools/security/saml2aws/default.nix6
-rw-r--r--pkgs/tools/security/sshguard/default.nix4
-rw-r--r--pkgs/tools/security/vault/default.nix4
-rw-r--r--pkgs/tools/security/vault/vault-bin.nix12
-rw-r--r--pkgs/tools/system/ddrescueview/default.nix23
-rw-r--r--pkgs/tools/system/htop/default.nix14
-rw-r--r--pkgs/tools/system/netdata/default.nix14
-rw-r--r--pkgs/tools/system/pciutils/default.nix6
-rw-r--r--pkgs/tools/system/stress-ng/default.nix4
-rw-r--r--pkgs/tools/text/mdcat/default.nix6
-rw-r--r--pkgs/tools/text/ocrmypdf/default.nix6
-rw-r--r--pkgs/tools/text/snippetpixie/default.nix8
-rw-r--r--pkgs/tools/text/wgetpaste/default.nix4
-rw-r--r--pkgs/tools/typesetting/lowdown/default.nix4
-rw-r--r--pkgs/tools/typesetting/satysfi/default.nix32
-rw-r--r--pkgs/tools/typesetting/tikzit/default.nix6
-rw-r--r--pkgs/tools/video/vcsi/default.nix28
-rw-r--r--pkgs/top-level/aliases.nix21
-rw-r--r--pkgs/top-level/all-packages.nix212
-rw-r--r--pkgs/top-level/ocaml-packages.nix8
-rw-r--r--pkgs/top-level/python-packages.nix8243
-rw-r--r--pkgs/top-level/stage.nix1
807 files changed, 16847 insertions, 20863 deletions
diff --git a/doc/languages-frameworks/node.section.md b/doc/languages-frameworks/node.section.md
index c1f4294711a1d..2120adfc0b499 100644
--- a/doc/languages-frameworks/node.section.md
+++ b/doc/languages-frameworks/node.section.md
@@ -25,12 +25,13 @@ build system it uses. Here are some examples:
 
 After you have identified the correct system, you need to override your package
 expression while adding in build system as a build input. For example, `dat`
-requires `node-gyp-build`, so we override its expression in `default.nix`:
+requires `node-gyp-build`, so [we override](https://github.com/NixOS/nixpkgs/blob/32f5e5da4a1b3f0595527f5195ac3a91451e9b56/pkgs/development/node-packages/default.nix#L37-L40) its expression in [`default.nix`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/node-packages/default.nix):
 
 ```nix
-dat = nodePackages.dat.override (oldAttrs: {
-  buildInputs = oldAttrs.buildInputs ++ [ nodePackages.node-gyp-build ];
-});
+    dat = super.dat.override {
+      buildInputs = [ self.node-gyp-build pkgs.libtool pkgs.autoconf pkgs.automake ];
+      meta.broken = since "12";
+    };
 ```
 
 To add a package from NPM to nixpkgs:
diff --git a/doc/languages-frameworks/vim.section.md b/doc/languages-frameworks/vim.section.md
index 4911509212e63..8e4826232e1ab 100644
--- a/doc/languages-frameworks/vim.section.md
+++ b/doc/languages-frameworks/vim.section.md
@@ -263,6 +263,8 @@ Sometimes plugins require an override that must be changed when the plugin is up
 
 To add a new plugin, run `./update.py --add "[owner]/[name]"`. **NOTE**: This script automatically commits to your git repository. Be sure to check out a fresh branch before running.
 
+Finally, there are some plugins that are also packaged in nodePackages because they have Javascript-related build steps, such as running webpack. Those plugins are not listed in `vim-plugin-names` or managed by `update.py` at all, and are included separately in `overrides.nix`. Currently, all these plugins are related to the `coc.nvim` ecosystem of Language Server Protocol integration with vim/neovim.
+
 ## Important repositories
 
 - [vim-pi](https://bitbucket.org/vimcommunity/vim-pi) is a plugin repository
diff --git a/doc/stdenv/multiple-output.xml b/doc/stdenv/multiple-output.xml
index 51e1cc2e024a2..0f177ec719f9e 100644
--- a/doc/stdenv/multiple-output.xml
+++ b/doc/stdenv/multiple-output.xml
@@ -22,39 +22,69 @@
     The reduction effects could be instead achieved by building the parts in completely separate derivations. That would often additionally reduce build-time closures, but it tends to be much harder to write such derivations, as build systems typically assume all parts are being built at once. This compromise approach of single source package producing multiple binary packages is also utilized often by rpm and deb.
    </para>
   </note>
+
+  <para>
+   A number of attributes can be used to work with a derivation with multiple outputs. The attribute <varname>outputs</varname> is a list of strings, which are the names of the outputs. For each of these names, an identically named attribute is created, corresponding to that output. The attribute <varname>meta.outputsToInstall</varname> is used to determine the default set of outputs to install when using the derivation name unqualified.
+  </para>
+
  </section>
  <section xml:id="sec-multiple-outputs-installing">
   <title>Installing a split package</title>
 
   <para>
-   When installing a package via <varname>systemPackages</varname> or <command>nix-env</command> you have several options:
+   When installing a package with multiple outputs, the package's <varname>meta.outputsToInstall</varname> attribute determines which outputs are actually installed. <varname>meta.outputsToInstall</varname> is a list whose <link xlink:href="https://github.com/NixOS/nixpkgs/blob/f1680774340d5443a1409c3421ced84ac1163ba9/pkgs/stdenv/generic/make-derivation.nix#L310-L320">default installs binaries and the associated man pages</link>. The following sections describe ways to install different outputs.
   </para>
 
-  <itemizedlist>
-   <listitem>
-    <para>
-     You can install particular outputs explicitly, as each is available in the Nix language as an attribute of the package. The <varname>outputs</varname> attribute contains a list of output names.
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     You can let it use the default outputs. These are handled by <varname>meta.outputsToInstall</varname> attribute that contains a list of output names.
-    </para>
+  <section xml:id="sec-multiple-outputs-installing-nixos">
+   <title>Selecting outputs to install via NixOS</title>
+
+   <para>
+    NixOS provides two ways to select the outputs to install for packages listed in <varname>environment.systemPackages</varname>:
+   </para>
+
+   <itemizedlist>
+    <listitem>
+     <para>
+      The configuration option <varname>environment.extraOutputsToInstall</varname> is appended to each package's <varname>meta.outputsToInstall</varname> attribute to determine the outputs to install. It can for example be used to install <literal>info</literal> documentation or debug symbols for all packages.
+     </para>
+    </listitem>
+    <listitem>
+     <para>
+      The outputs can be listed as packages in <varname>environment.systemPackages</varname>. For example, the <literal>"out"</literal> and <literal>"info"</literal> outputs for the <varname>coreutils</varname> package can be installed by including <varname>coreutils</varname> and <varname>coreutils.info</varname> in <varname>environment.systemPackages</varname>.
+     </para>
+    </listitem>
+   </itemizedlist>
+  </section>
+
+  <section xml:id="sec-multiple-outputs-installing-nix-env">
+   <title>Selecting outputs to install via <command>nix-env</command></title>
+
+   <para>
+    <command>nix-env</command> lacks an easy way to select the outputs to install. When installing a package, <command>nix-env</command> always installs the outputs listed in <varname>meta.outputsToInstall</varname>, even when the user explicitly selects an output.
+   </para>
+
+   <warning>
     <para>
-     TODO: more about tweaking the attribute, etc.
+     <command>nix-env</command> silenty disregards the outputs selected by the user, and instead installs the outputs from <varname>meta.outputsToInstall</varname>. For example,
     </para>
-   </listitem>
-   <listitem>
+<programlisting>$ nix-env -iA nixpkgs.coreutils.info</programlisting>
     <para>
-     NixOS provides configuration option <varname>environment.extraOutputsToInstall</varname> that allows adding extra outputs of <varname>environment.systemPackages</varname> atop the default ones. It's mainly meant for documentation and debug symbols, and it's also modified by specific options.
+     installs the <literal>"out"</literal> output (<varname>coreutils.meta.outputsToInstall</varname> is <literal>[ "out" ]</literal>) instead of the requested <literal>"info"</literal>.
     </para>
-    <note>
-     <para>
-      At this moment there is no similar configurability for packages installed by <command>nix-env</command>. You can still use approach from <xref linkend="sec-modify-via-packageOverrides" /> to override <varname>meta.outputsToInstall</varname> attributes, but that's a rather inconvenient way.
-     </para>
-    </note>
-   </listitem>
-  </itemizedlist>
+   </warning>
+
+   <para>
+    The only recourse to select an output with <command>nix-env</command> is to override the package's <varname>meta.outputsToInstall</varname>, using the functions described in <xref linkend="chap-overrides" />. For example, the following overlay adds the <literal>"info"</literal> output for the <varname>coreutils</varname> package:
+   </para>
+
+<programlisting>self: super:
+{
+  coreutils = super.coreutils.overrideAttrs (oldAttrs: {
+    meta = oldAttrs.meta // { outputsToInstall = oldAttrs.meta.outputsToInstall or [ "out" ] ++ [ "info" ]; };
+  });
+}
+</programlisting>
+  </section>
  </section>
  <section xml:id="sec-multiple-outputs-using-split-packages">
   <title>Using a split package</title>
diff --git a/lib/licenses.nix b/lib/licenses.nix
index 5cdb43ded6d9e..ee11966b0d533 100644
--- a/lib/licenses.nix
+++ b/lib/licenses.nix
@@ -436,6 +436,12 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
   };
 
   # Proprietary binaries; free to redistribute without modification.
+  databricks = {
+    fullName = "Databricks Proprietary License";
+    url = "https://pypi.org/project/databricks-connect";
+    free = false;
+  };
+
   issl = {
     fullName = "Intel Simplified Software License";
     url = "https://software.intel.com/en-us/license/intel-simplified-software-license";
diff --git a/lib/modules.nix b/lib/modules.nix
index 2ec3469980958..decb96ffe1117 100644
--- a/lib/modules.nix
+++ b/lib/modules.nix
@@ -613,7 +613,6 @@ rec {
         if tp.name == "option set" || tp.name == "submodule" then
           throw "The option ${showOption loc} uses submodules without a wrapping type, in ${showFiles opt.declarations}."
         else if optionSetIn "attrsOf" then types.attrsOf (types.submodule options)
-        else if optionSetIn "loaOf"   then types.loaOf   (types.submodule options)
         else if optionSetIn "listOf"  then types.listOf  (types.submodule options)
         else if optionSetIn "nullOr"  then types.nullOr  (types.submodule options)
         else tp;
diff --git a/lib/strings.nix b/lib/strings.nix
index 0baa942355c0e..9fa9f023561e1 100644
--- a/lib/strings.nix
+++ b/lib/strings.nix
@@ -689,14 +689,15 @@ rec {
             "/prefix/nix-profiles-library-paths.patch"
             "/prefix/compose-search-path.patch" ]
   */
-  readPathsFromFile = rootPath: file:
-    let
-      lines = lib.splitString "\n" (builtins.readFile file);
-      removeComments = lib.filter (line: line != "" && !(lib.hasPrefix "#" line));
-      relativePaths = removeComments lines;
-      absolutePaths = builtins.map (path: rootPath + "/${path}") relativePaths;
-    in
-      absolutePaths;
+  readPathsFromFile = lib.warn "lib.readPathsFromFile is deprecated, use a list instead"
+    (rootPath: file:
+      let
+        lines = lib.splitString "\n" (builtins.readFile file);
+        removeComments = lib.filter (line: line != "" && !(lib.hasPrefix "#" line));
+        relativePaths = removeComments lines;
+        absolutePaths = builtins.map (path: rootPath + "/${path}") relativePaths;
+      in
+        absolutePaths);
 
   /* Read the contents of a file removing the trailing \n
 
diff --git a/lib/systems/architectures.nix b/lib/systems/architectures.nix
new file mode 100644
index 0000000000000..9d1c29fd9f0bd
--- /dev/null
+++ b/lib/systems/architectures.nix
@@ -0,0 +1,77 @@
+{ lib }:
+
+rec {
+  # platform.gcc.arch to its features (as in /proc/cpuinfo)
+  features = {
+    default        = [ ];
+    # x86_64 Intel
+    westmere       = [ "sse3" "ssse3" "sse4_1" "sse4_2"         "aes"                                    ];
+    sandybridge    = [ "sse3" "ssse3" "sse4_1" "sse4_2"         "aes" "avx"                              ];
+    ivybridge      = [ "sse3" "ssse3" "sse4_1" "sse4_2"         "aes" "avx"                              ];
+    haswell        = [ "sse3" "ssse3" "sse4_1" "sse4_2"         "aes" "avx" "avx2"          "fma"        ];
+    broadwell      = [ "sse3" "ssse3" "sse4_1" "sse4_2"         "aes" "avx" "avx2"          "fma"        ];
+    skylake        = [ "sse3" "ssse3" "sse4_1" "sse4_2"         "aes" "avx" "avx2"          "fma"        ];
+    skylake-avx512 = [ "sse3" "ssse3" "sse4_1" "sse4_2"         "aes" "avx" "avx2" "avx512" "fma"        ];
+    # x86_64 AMD
+    btver1         = [ "sse3" "ssse3" "sse4_1" "sse4_2"                                                  ];
+    btver2         = [ "sse3" "ssse3" "sse4_1" "sse4_2"         "aes" "avx"                              ];
+    bdver1         = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx"                 "fma" "fma4" ];
+    bdver2         = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx"                 "fma" "fma4" ];
+    bdver3         = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx"                 "fma" "fma4" ];
+    bdver4         = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx" "avx2"          "fma" "fma4" ];
+    znver1         = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx" "avx2"          "fma"        ];
+    znver2         = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx" "avx2"          "fma"        ];
+    # other
+    armv5te        = [ ];
+    armv6          = [ ];
+    armv7-a        = [ ];
+    armv8-a        = [ ];
+    mips32         = [ ];
+    loongson2f     = [ ];
+  };
+
+  # a superior CPU has all the features of an inferior and is able to build and test code for it
+  inferiors = {
+    # x86_64 Intel
+    default        = [ ];
+    westmere       = [ ];
+    sandybridge    = [ "westmere"    ] ++ inferiors.westmere;
+    ivybridge      = [ "sandybridge" ] ++ inferiors.sandybridge;
+    haswell        = [ "ivybridge"   ] ++ inferiors.ivybridge;
+    broadwell      = [ "haswell"     ] ++ inferiors.haswell;
+    skylake        = [ "broadwell"   ] ++ inferiors.broadwell;
+    skylake-avx512 = [ "skylake"     ] ++ inferiors.skylake;
+    # x86_64 AMD
+    btver1         = [ ];
+    btver2         = [ ]; # TODO: fill this (need testing)
+    bdver1         = [ ]; # TODO: fill this (need testing)
+    bdver2         = [ ]; # TODO: fill this (need testing)
+    bdver3         = [ ]; # TODO: fill this (need testing)
+    bdver4         = [ ]; # TODO: fill this (need testing)
+    znver1         = [ ]; # TODO: fill this (need testing)
+    znver2         = [ ]; # TODO: fill this (need testing)
+    # other
+    armv5te        = [ ];
+    armv6          = [ ];
+    armv7-a        = [ ];
+    armv8-a        = [ ];
+    mips32         = [ ];
+    loongson2f     = [ ];
+  };
+
+  predicates = let
+    featureSupport = feature: x: builtins.elem feature features.${x};
+  in {
+    sse3Support    = featureSupport "sse3";
+    ssse3Support   = featureSupport "ssse3";
+    sse4_1Support  = featureSupport "sse4_1";
+    sse4_2Support  = featureSupport "sse4_2";
+    sse4_aSupport  = featureSupport "sse4a";
+    avxSupport     = featureSupport "avx";
+    avx2Support    = featureSupport "avx2";
+    avx512Support  = featureSupport "avx512";
+    aesSupport     = featureSupport "aes";
+    fmaSupport     = featureSupport "fma";
+    fma4Support    = featureSupport "fma4";
+  };
+}
diff --git a/lib/systems/default.nix b/lib/systems/default.nix
index c929781dd8ff9..9939743157e78 100644
--- a/lib/systems/default.nix
+++ b/lib/systems/default.nix
@@ -7,6 +7,7 @@ rec {
   inspect = import ./inspect.nix { inherit lib; };
   platforms = import ./platforms.nix { inherit lib; };
   examples = import ./examples.nix { inherit lib; };
+  architectures = import ./architectures.nix { inherit lib; };
 
   # Elaborate a `localSystem` or `crossSystem` so that it contains everything
   # necessary.
@@ -76,6 +77,7 @@ rec {
          # uname -r
          release = null;
       };
+      isStatic = final.isWasm || final.isRedox;
 
       kernelArch =
         if final.isAarch32 then "arm"
@@ -125,6 +127,7 @@ rec {
         else throw "Don't know how to run ${final.config} executables.";
 
     } // mapAttrs (n: v: v final.parsed) inspect.predicates
+      // mapAttrs (n: v: v final.platform.gcc.arch or "default") architectures.predicates
       // args;
   in assert final.useAndroidPrebuilt -> final.isAndroid;
      assert lib.foldl
diff --git a/lib/types.nix b/lib/types.nix
index 1845b6ae339e8..17e7a939fe3d3 100644
--- a/lib/types.nix
+++ b/lib/types.nix
@@ -252,8 +252,8 @@ rec {
       merge = mergeEqualOption;
     };
 
-    # drop this in the future:
-    list = builtins.trace "`types.list` is deprecated; use `types.listOf` instead" types.listOf;
+    # TODO: drop this in the future:
+    list = builtins.trace "`types.list` has been removed; please use `types.listOf` instead" types.listOf;
 
     listOf = elemType: mkOptionType rec {
       name = "listOf";
@@ -326,110 +326,15 @@ rec {
       functor = (defaultFunctor name) // { wrapped = elemType; };
     };
 
-    # List or attribute set of ...
-    loaOf = elemType:
-      let
-        convertAllLists = loc: defs:
-          let
-            padWidth = stringLength (toString (length defs));
-            unnamedPrefix = i: "unnamed-" + fixedWidthNumber padWidth i + ".";
-          in
-            imap1 (i: convertIfList loc (unnamedPrefix i)) defs;
-        convertIfList = loc: unnamedPrefix: def:
-          if isList def.value then
-            let
-              padWidth = stringLength (toString (length def.value));
-              unnamed = i: unnamedPrefix + fixedWidthNumber padWidth i;
-              anyString = placeholder "name";
-              nameAttrs = [
-                { path = [ "environment" "etc" ];
-                  name = "target";
-                }
-                { path = [ "containers" anyString "bindMounts" ];
-                  name = "mountPoint";
-                }
-                { path = [ "programs" "ssh" "knownHosts" ];
-                  # hostNames is actually a list so we would need to handle it only when singleton
-                  name = "hostNames";
-                }
-                { path = [ "fileSystems" ];
-                  name = "mountPoint";
-                }
-                { path = [ "boot" "specialFileSystems" ];
-                  name = "mountPoint";
-                }
-                { path = [ "services" "znapzend" "zetup" ];
-                  name = "dataset";
-                }
-                { path = [ "services" "znapzend" "zetup" anyString "destinations" ];
-                  name = "label";
-                }
-                { path = [ "services" "geoclue2" "appConfig" ];
-                  name = "desktopID";
-                }
-              ];
-              matched = let
-                equals = a: b: b == anyString || a == b;
-                fallback = { name = "name"; };
-              in findFirst ({ path, ... }: all (v: v == true) (zipListsWith equals loc path)) fallback nameAttrs;
-              nameAttr = matched.name;
-              nameValueOld = value:
-                if isList value then
-                  if length value > 0 then
-                    "[ " + concatMapStringsSep " " escapeNixString value + " ]"
-                  else
-                    "[ ]"
-                else
-                  escapeNixString value;
-              nameValueNew = value: unnamed:
-                if isList value then
-                  if length value > 0 then
-                    head value
-                  else
-                    unnamed
-                else
-                  value;
-              res =
-                { inherit (def) file;
-                  value = listToAttrs (
-                    imap1 (elemIdx: elem:
-                      { name  = nameValueNew (elem.${nameAttr} or (unnamed elemIdx)) (unnamed elemIdx);
-                        value = elem;
-                      }) def.value);
-                };
-              option = concatStringsSep "." loc;
-              sample = take 3 def.value;
-              more = lib.optionalString (length def.value > 3) "... ";
-              list = concatMapStrings (x: ''{ ${nameAttr} = ${nameValueOld (x.${nameAttr} or "unnamed")}; ...} '') sample;
-              set = concatMapStrings (x: ''${nameValueNew (x.${nameAttr} or "unnamed") "unnamed"} = {...}; '') sample;
-              msg = ''
-                In file ${def.file}
-                a list is being assigned to the option config.${option}.
-                This will soon be an error as type loaOf is deprecated.
-                See https://github.com/NixOS/nixpkgs/pull/63103 for more information.
-                Do
-                  ${option} =
-                    { ${set}${more}}
-                instead of
-                  ${option} =
-                    [ ${list}${more}]
-              '';
-            in
-              lib.warn msg res
-          else
-            def;
-        attrOnly = attrsOf elemType;
-      in mkOptionType rec {
-        name = "loaOf";
-        description = "list or attribute set of ${elemType.description}s";
-        check = x: isList x || isAttrs x;
-        merge = loc: defs: attrOnly.merge loc (convertAllLists loc defs);
-        emptyValue = { value = {}; };
-        getSubOptions = prefix: elemType.getSubOptions (prefix ++ ["<name?>"]);
-        getSubModules = elemType.getSubModules;
-        substSubModules = m: loaOf (elemType.substSubModules m);
-        functor = (defaultFunctor name) // { wrapped = elemType; };
-      };
+    # TODO: drop this in the future:
+    loaOf =
+      let msg =
+        ''
+          `types.loaOf` has been removed and mixing lists with attribute values
+          is no longer possible; please use `types.attrsOf` instead.
+          See https://github.com/NixOS/nixpkgs/issues/1800 for the motivation.
+        '';
+      in builtins.trace msg types.attrsOf;
 
     # Value of given type but with no merging (i.e. `uniq list`s are not concatenated).
     uniq = elemType: mkOptionType rec {
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 002d8c435e289..c17c91551aaba 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -1873,6 +1873,12 @@
     githubId = 1918;
     name = "David Anderson";
   };
+  dandellion = {
+    email = "daniel@dodsorf.as";
+    github = "dali99";
+    githubId = 990767;
+    name = "Daniel Olsen";
+  };
   danharaj = {
     email = "dan@obsidian.systems";
     github = "danharaj";
@@ -3633,6 +3639,12 @@
     githubId = 26877687;
     name = "Yurii Izorkin";
   };
+  j0hax = {
+    name = "Johannes Arnold";
+    email = "johannes.arnold@stud.uni-hannover.de";
+    github = "j0hax";
+    githubId = 3802620;
+  };
   jacg = {
     name = "Jacek Generowicz";
     email = "jacg@my-post-office.net";
@@ -4098,6 +4110,12 @@
     githubId = 1918771;
     name = "Joe Doyle";
   };
+  jperras = {
+    email = "joel@nerderati.com";
+    github = "jperras";
+    githubId = 20675;
+    name = "Joël Perras";
+  };
   jpierre03 = {
     email = "nix@prunetwork.fr";
     github = "jpierre03";
@@ -4310,6 +4328,12 @@
     githubId = 494012;
     name = "Kevin Cox";
   };
+  kfollesdal = {
+    email = "kfollesdal@gmail.com";
+    github = "kfollesdal";
+    githubId = 546087;
+    name = "Kristoffer K. Føllesdal";
+  };
   khumba = {
     email = "bog@khumba.net";
     github = "khumba";
@@ -7175,6 +7199,16 @@
     githubId = 3621083;
     name = "Roosembert (Roosemberth) Palacios";
   };
+  rople380 = {
+    name = "rople380";
+    email = "55679162+rople380@users.noreply.github.com";
+    github = "rople380";
+    githubId = 55679162;
+    keys = [{
+      longkeyid = "rsa2048/0x8526B7574A536236";
+      fingerprint = "1401 1B63 393D 16C1 AA9C  C521 8526 B757 4A53 6236";
+    }];
+  };
   royneary = {
     email = "christian@ulrich.earth";
     github = "royneary";
diff --git a/nixos/doc/manual/administration/boot-problems.xml b/nixos/doc/manual/administration/boot-problems.xml
index badc374ebcfd9..e0f662840101d 100644
--- a/nixos/doc/manual/administration/boot-problems.xml
+++ b/nixos/doc/manual/administration/boot-problems.xml
@@ -58,9 +58,9 @@
       Like <literal>boot.debug1</literal> or
       <literal>boot.debug1devices</literal>, but runs stage1 until all
       filesystems that are mounted during initrd are mounted (see
-      <option><link linkend="opt-fileSystems._name__.neededForBoot">neededForBoot</link></option>
+      <option><link linkend="opt-fileSystems._name_.neededForBoot">neededForBoot</link></option>
       ). As a motivating example, this could be useful if you've forgotten to set
-      <option><link linkend="opt-fileSystems._name__.neededForBoot">neededForBoot</link></option>
+      <option><link linkend="opt-fileSystems._name_.neededForBoot">neededForBoot</link></option>
       on a file system.
      </para>
     </listitem>
diff --git a/nixos/doc/manual/administration/imperative-containers.xml b/nixos/doc/manual/administration/imperative-containers.xml
index 7ded0c11786e1..435ed230f5133 100644
--- a/nixos/doc/manual/administration/imperative-containers.xml
+++ b/nixos/doc/manual/administration/imperative-containers.xml
@@ -27,7 +27,7 @@
 <screen>
 # nixos-container create foo --config '
   <xref linkend="opt-services.openssh.enable"/> = true;
-  <link linkend="opt-users.users._name__.openssh.authorizedKeys.keys">users.users.root.openssh.authorizedKeys.keys</link> = ["ssh-dss AAAAB3N…"];
+  <link linkend="opt-users.users._name_.openssh.authorizedKeys.keys">users.users.root.openssh.authorizedKeys.keys</link> = ["ssh-dss AAAAB3N…"];
 '
 </screen>
   By default the next free address in the <literal>10.233.0.0/16</literal> subnet will be chosen
diff --git a/nixos/doc/manual/configuration/file-systems.xml b/nixos/doc/manual/configuration/file-systems.xml
index 3ac02a975ebf6..9747433375fc5 100644
--- a/nixos/doc/manual/configuration/file-systems.xml
+++ b/nixos/doc/manual/configuration/file-systems.xml
@@ -23,12 +23,12 @@
   <link xlink:href="https://www.freedesktop.org/software/systemd/man/systemd-fstab-generator.html">systemd-fstab-generator</link>.
   The filesystem will be mounted automatically unless
   <literal>"noauto"</literal> is present in <link
-  linkend="opt-fileSystems._name__.options">options</link>.
+  linkend="opt-fileSystems._name_.options">options</link>.
   <literal>"noauto"</literal> filesystems can be mounted explicitly using
   <command>systemctl</command> e.g. <command>systemctl start
   data.mount</command>.
   Mount points are created automatically if they don’t already exist. For
-  <option><link linkend="opt-fileSystems._name__.device">device</link></option>,
+  <option><link linkend="opt-fileSystems._name_.device">device</link></option>,
   it’s best to use the topology-independent device aliases in
   <filename>/dev/disk/by-label</filename> and
   <filename>/dev/disk/by-uuid</filename>, as these don’t change if the
@@ -36,7 +36,7 @@
  </para>
  <para>
   You can usually omit the file system type
-  (<option><link linkend="opt-fileSystems._name__.fsType">fsType</link></option>),
+  (<option><link linkend="opt-fileSystems._name_.fsType">fsType</link></option>),
   since <command>mount</command> can usually detect the type and load the
   necessary kernel module automatically. However, if the file system is needed
   at early boot (in the initial ramdisk) and is not <literal>ext2</literal>,
@@ -49,7 +49,7 @@
    System startup will fail if any of the filesystems fails to mount, dropping
    you to the emergency shell. You can make a mount asynchronous and
    non-critical by adding
-   <literal><link linkend="opt-fileSystems._name__.options">options</link> = [
+   <literal><link linkend="opt-fileSystems._name_.options">options</link> = [
    "nofail" ];</literal>.
   </para>
  </note>
diff --git a/nixos/doc/manual/configuration/ipv4-config.xml b/nixos/doc/manual/configuration/ipv4-config.xml
index 71ddf41491baf..884becf0979a0 100644
--- a/nixos/doc/manual/configuration/ipv4-config.xml
+++ b/nixos/doc/manual/configuration/ipv4-config.xml
@@ -10,7 +10,7 @@
   automatically configure network interfaces. However, you can configure an
   interface manually as follows:
 <programlisting>
-<link linkend="opt-networking.interfaces._name__.ipv4.addresses">networking.interfaces.eth0.ipv4.addresses</link> = [ {
+<link linkend="opt-networking.interfaces._name_.ipv4.addresses">networking.interfaces.eth0.ipv4.addresses</link> = [ {
   address = "192.168.1.2";
   prefixLength = 24;
 } ];
diff --git a/nixos/doc/manual/configuration/ipv6-config.xml b/nixos/doc/manual/configuration/ipv6-config.xml
index 675a5d9a260dc..7b89b4092be7d 100644
--- a/nixos/doc/manual/configuration/ipv6-config.xml
+++ b/nixos/doc/manual/configuration/ipv6-config.xml
@@ -26,7 +26,7 @@
   As with IPv4 networking interfaces are automatically configured via DHCPv6.
   You can configure an interface manually:
 <programlisting>
-<link linkend="opt-networking.interfaces._name__.ipv6.addresses">networking.interfaces.eth0.ipv6.addresses</link> = [ {
+<link linkend="opt-networking.interfaces._name_.ipv6.addresses">networking.interfaces.eth0.ipv6.addresses</link> = [ {
   address = "fe00:aa:bb:cc::2";
   prefixLength = 64;
 } ];
diff --git a/nixos/doc/manual/configuration/luks-file-systems.xml b/nixos/doc/manual/configuration/luks-file-systems.xml
index d3007843d68bd..8a8168c095f08 100644
--- a/nixos/doc/manual/configuration/luks-file-systems.xml
+++ b/nixos/doc/manual/configuration/luks-file-systems.xml
@@ -30,7 +30,7 @@ Enter passphrase for /dev/disk/by-uuid/3f6b0024-3a44-4fde-a43a-767b872abe5d: ***
   <filename>/</filename>, add the following to
   <filename>configuration.nix</filename>:
 <programlisting>
-<link linkend="opt-boot.initrd.luks.devices._name__.device">boot.initrd.luks.devices.crypted.device</link> = "/dev/disk/by-uuid/3f6b0024-3a44-4fde-a43a-767b872abe5d";
+<link linkend="opt-boot.initrd.luks.devices._name_.device">boot.initrd.luks.devices.crypted.device</link> = "/dev/disk/by-uuid/3f6b0024-3a44-4fde-a43a-767b872abe5d";
 <xref linkend="opt-fileSystems"/>."/".device = "/dev/mapper/crypted";
 </programlisting>
   Should grub be used as bootloader, and <filename>/boot</filename> is located
@@ -60,13 +60,13 @@ Added to key to device /dev/sda2, slot: 2
   To ensure that this file system is decrypted using the FIDO2 compatible key, add the following to <filename>configuration.nix</filename>:
 <programlisting>
 <link linkend="opt-boot.initrd.luks.fido2Support">boot.initrd.luks.fido2Support</link> = true;
-<link linkend="opt-boot.initrd.luks.devices._name__.fido2.credential">boot.initrd.luks.devices."/dev/sda2".fido2.credential</link> = "f1d00200108b9d6e849a8b388da457688e3dd653b4e53770012d8f28e5d3b269865038c346802f36f3da7278b13ad6a3bb6a1452e24ebeeaa24ba40eef559b1b287d2a2f80b7";
+<link linkend="opt-boot.initrd.luks.devices._name_.fido2.credential">boot.initrd.luks.devices."/dev/sda2".fido2.credential</link> = "f1d00200108b9d6e849a8b388da457688e3dd653b4e53770012d8f28e5d3b269865038c346802f36f3da7278b13ad6a3bb6a1452e24ebeeaa24ba40eef559b1b287d2a2f80b7";
 </programlisting>
 
   You can also use the FIDO2 passwordless setup, but for security reasons, you might want to enable it only when your device is PIN protected, such as <link xlink:href="https://trezor.io/">Trezor</link>.
 
 <programlisting>
-<link linkend="opt-boot.initrd.luks.devices._name__.fido2.passwordLess">boot.initrd.luks.devices."/dev/sda2".fido2.passwordLess</link> = true;
+<link linkend="opt-boot.initrd.luks.devices._name_.fido2.passwordLess">boot.initrd.luks.devices."/dev/sda2".fido2.passwordLess</link> = true;
 </programlisting>
   </para>
  </section>
diff --git a/nixos/doc/manual/configuration/network-manager.xml b/nixos/doc/manual/configuration/network-manager.xml
index 3953e0ffe851a..94d229fd803f5 100644
--- a/nixos/doc/manual/configuration/network-manager.xml
+++ b/nixos/doc/manual/configuration/network-manager.xml
@@ -19,7 +19,7 @@
   All users that should have permission to change network settings must belong
   to the <code>networkmanager</code> group:
 <programlisting>
-<link linkend="opt-users.users._name__.extraGroups">users.users.alice.extraGroups</link> = [ "networkmanager" ];
+<link linkend="opt-users.users._name_.extraGroups">users.users.alice.extraGroups</link> = [ "networkmanager" ];
 </programlisting>
  </para>
 
diff --git a/nixos/doc/manual/configuration/ssh.xml b/nixos/doc/manual/configuration/ssh.xml
index a4af1b96583d8..95ad3edff9352 100644
--- a/nixos/doc/manual/configuration/ssh.xml
+++ b/nixos/doc/manual/configuration/ssh.xml
@@ -20,7 +20,7 @@
   follows:
 <!-- FIXME: this might not work if the user is unmanaged. -->
 <programlisting>
-<link linkend="opt-users.users._name__.openssh.authorizedKeys.keys">users.users.alice.openssh.authorizedKeys.keys</link> =
+<link linkend="opt-users.users._name_.openssh.authorizedKeys.keys">users.users.alice.openssh.authorizedKeys.keys</link> =
   [ "ssh-dss AAAAB3NzaC1kc3MAAACBAPIkGWVEt4..." ];
 </programlisting>
  </para>
diff --git a/nixos/doc/manual/configuration/user-mgmt.xml b/nixos/doc/manual/configuration/user-mgmt.xml
index 4b1710f3a2b11..68324cc85b547 100644
--- a/nixos/doc/manual/configuration/user-mgmt.xml
+++ b/nixos/doc/manual/configuration/user-mgmt.xml
@@ -11,11 +11,11 @@
   that a user account named <literal>alice</literal> shall exist:
 <programlisting>
 <xref linkend="opt-users.users"/>.alice = {
-  <link linkend="opt-users.users._name__.isNormalUser">isNormalUser</link> = true;
-  <link linkend="opt-users.users._name__.home">home</link> = "/home/alice";
-  <link linkend="opt-users.users._name__.description">description</link> = "Alice Foobar";
-  <link linkend="opt-users.users._name__.extraGroups">extraGroups</link> = [ "wheel" "networkmanager" ];
-  <link linkend="opt-users.users._name__.openssh.authorizedKeys.keys">openssh.authorizedKeys.keys</link> = [ "ssh-dss AAAAB3Nza... alice@foobar" ];
+  <link linkend="opt-users.users._name_.isNormalUser">isNormalUser</link> = true;
+  <link linkend="opt-users.users._name_.home">home</link> = "/home/alice";
+  <link linkend="opt-users.users._name_.description">description</link> = "Alice Foobar";
+  <link linkend="opt-users.users._name_.extraGroups">extraGroups</link> = [ "wheel" "networkmanager" ];
+  <link linkend="opt-users.users._name_.openssh.authorizedKeys.keys">openssh.authorizedKeys.keys</link> = [ "ssh-dss AAAAB3Nza... alice@foobar" ];
 };
 </programlisting>
   Note that <literal>alice</literal> is a member of the
@@ -36,7 +36,7 @@
   account will cease to exist. Also, imperative commands for managing users and
   groups, such as useradd, are no longer available. Passwords may still be
   assigned by setting the user's
-  <link linkend="opt-users.users._name__.hashedPassword">hashedPassword</link>
+  <link linkend="opt-users.users._name_.hashedPassword">hashedPassword</link>
   option. A hashed password can be generated using <command>mkpasswd -m
   sha-512</command> after installing the <literal>mkpasswd</literal> package.
  </para>
diff --git a/nixos/doc/manual/development/option-types.xml b/nixos/doc/manual/development/option-types.xml
index 957349ad1811a..5a6dae6e9912e 100644
--- a/nixos/doc/manual/development/option-types.xml
+++ b/nixos/doc/manual/development/option-types.xml
@@ -387,17 +387,6 @@
    </varlistentry>
    <varlistentry>
     <term>
-     <varname>types.loaOf</varname> <replaceable>t</replaceable>
-    </term>
-    <listitem>
-     <para>
-      An attribute set or a list of <replaceable>t</replaceable> type. Multiple
-      definitions are merged according to the value.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>
      <varname>types.nullOr</varname> <replaceable>t</replaceable>
     </term>
     <listitem>
diff --git a/nixos/doc/manual/development/releases.xml b/nixos/doc/manual/development/releases.xml
index 8abc66dfec192..cd68a428a6fbd 100755
--- a/nixos/doc/manual/development/releases.xml
+++ b/nixos/doc/manual/development/releases.xml
@@ -8,24 +8,26 @@
   <title>Release process</title>
 
   <para>
-   Going through an example of releasing NixOS 17.09:
+   Going through an example of releasing NixOS 19.09:
   </para>
 
   <section xml:id="one-month-before-the-beta">
    <title>One month before the beta</title>
 
-   <itemizedlist spacing="compact">
+   <itemizedlist>
     <listitem>
      <para>
-      Send an email to the nix-devel mailinglist as a warning about upcoming
-      beta "feature freeze" in a month.
+      Create an announcement on <link xlink:href="https://discourse.nixos.org">Discourse</link> as a warning about upcoming beta <quote>feature freeze</quote> in a month. <link xlink:href="https://discourse.nixos.org/t/nixos-19-09-feature-freeze/3707">See this post as an example</link>.
      </para>
     </listitem>
     <listitem>
      <para>
-      Discuss with Eelco Dolstra and the community (via IRC, ML) about what
-      will reach the deadline. Any issue or Pull Request targeting the release
-      should be included in the release milestone.
+      Discuss with Eelco Dolstra and the community (via IRC, ML) about what will reach the deadline. Any issue or Pull Request targeting the release should be included in the release milestone.
+     </para>
+    </listitem>
+    <listitem>
+     <para>
+      Remove attributes that we know we will not be able to support, especially if there is a stable alternative. E.g. Check that our Linux kernels’ <link xlink:href="https://www.kernel.org/category/releases.html">projected end-of-life</link> are after our release projected end-of-life.
      </para>
     </listitem>
    </itemizedlist>
@@ -34,113 +36,113 @@
   <section xml:id="at-beta-release-time">
    <title>At beta release time</title>
 
-   <itemizedlist spacing="compact">
+   <orderedlist>
     <listitem>
      <para>
-      <link xlink:href="https://github.com/NixOS/nixpkgs/issues/13559">Create
-      an issue for tracking Zero Hydra Failures progress. ZHF is an effort to
-      get build failures down to zero.</link>
+      From the master branch run:
      </para>
+<programlisting>
+git checkout -b release-19.09
+</programlisting>
     </listitem>
     <listitem>
      <para>
-      <literal>git tag -a -s -m &quot;Release 17.09-beta&quot; 17.09-beta
-      &amp;&amp; git push origin 17.09-beta</literal>
+      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/10e61bf5be57736035ec7a804cb0bf3d083bf2cf#diff-9c798092bac0caeb5c52d509be0ca263R69">Bump the <literal>system.defaultChannel</literal> attribute in <literal>nixos/modules/misc/version.nix</literal></link>
      </para>
     </listitem>
     <listitem>
      <para>
-      From the master branch run <literal>git checkout -b
-      release-17.09</literal>.
+      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/10e61bf5be57736035ec7a804cb0bf3d083bf2cf#diff-831e8d9748240fb23e6734fdc2a6d16eR15">Update <literal>versionSuffix</literal> in <literal>nixos/release.nix</literal></link>
      </para>
     </listitem>
+   </orderedlist>
+
+   <para>
+    To get the commit count, use the following command:
+   </para>
+
+<programlisting>
+git rev-list --count release-19.09
+</programlisting>
+
+   <orderedlist>
     <listitem>
      <para>
-      <link xlink:href="https://github.com/NixOS/nixos-org-configurations/pull/18">
-      Make sure a channel is created at https://nixos.org/channels/. </link>
+      Edit changelog at <literal>nixos/doc/manual/release-notes/rl-1909.xml</literal>.
      </para>
+     <itemizedlist>
+      <listitem>
+       <para>
+        Get all new NixOS modules:
+       </para>
+<programlisting>
+git diff release-19.03..release-19.09 nixos/modules/module-list.nix | grep ^+
+</programlisting>
+      </listitem>
+      <listitem>
+       <para>
+        Note systemd, kernel, glibc, desktop environment, and Nix upgrades.
+       </para>
+      </listitem>
+     </itemizedlist>
     </listitem>
     <listitem>
      <para>
-      <link xlink:href="https://github.com/NixOS/nixpkgs/compare/bdf161ed8d21...6b63c4616790">
-      Bump the <literal>system.defaultChannel</literal> attribute in
-      <literal>nixos/modules/misc/version.nix</literal> </link>
+      Tag the release:
      </para>
+<programlisting>
+git tag --annotate --message="Release 19.09-beta" 19.09-beta
+git push upstream 19.09-beta
+</programlisting>
     </listitem>
     <listitem>
      <para>
-      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/d6b08acd1ccac0d9d502c4b635e00b04d3387f06">
-      Update <literal>versionSuffix</literal> in
-      <literal>nixos/release.nix</literal></link>, use
-      <literal>git rev-list --count 17.09-beta</literal>
-      to get the commit count.
+      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/01268fda85b7eee4e462c873d8654f975067731f#diff-2bc0e46110b507d6d5a344264ef15adaR1">On the <literal>master</literal> branch, increment the <literal>.version</literal> file</link>
      </para>
+<programlisting>
+echo -n "20.03" > .version
+</programlisting>
     </listitem>
     <listitem>
      <para>
-      <literal>echo -n &quot;18.03&quot; &gt; .version</literal> on master.
+      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/01268fda85b7eee4e462c873d8654f975067731f#diff-03f3d41b68f62079c55001f1a1c55c1dR137">Update <literal>codeName</literal> in <literal>lib/trivial.nix</literal></link> This will be the name for the next release.
      </para>
     </listitem>
     <listitem>
      <para>
-      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/b8a4095003e27659092892a4708bb3698231a842">
-      Pick a new name for the unstable branch. </link>
+      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/01268fda85b7eee4e462c873d8654f975067731f#diff-e7ee5ff686cdcc513ca089d6e5682587R11">Create a new release notes file for the upcoming release + 1</link>, in our case this is <literal>rl-2003.xml</literal>.
      </para>
     </listitem>
     <listitem>
      <para>
-      Create a new release notes file for the upcoming release + 1, in this
-      case <literal>rl-1803.xml</literal>.
+      Contact the infrastructure team to create the necessary Hydra Jobsets.
      </para>
     </listitem>
     <listitem>
      <para>
-      Create two Hydra jobsets: release-17.09 and release-17.09-small with
-      <literal>stableBranch</literal> set to false.
+      <link xlink:href="https://github.com/NixOS/nixos-org-configurations/blob/master/channels.nix">Create a channel at https://nixos.org/channels by creating a PR to nixos-org-configurations, changing <literal>channels.nix</literal></link>
      </para>
     </listitem>
     <listitem>
      <para>
-      Remove attributes that we know we will not be able to support,
-      especially if there is a stable alternative. E.g. Check that our
-      Linux kernels'
-      <link xlink:href="https://www.kernel.org/category/releases.html">
-      projected end-of-life</link> are after our release projected
-      end-of-life
+      Get all Hydra jobsets for the release to have their first evaluation.
      </para>
     </listitem>
     <listitem>
      <para>
-      Edit changelog at
-      <literal>nixos/doc/manual/release-notes/rl-1709.xml</literal> (double
-      check desktop versions are noted)
+      <link xlink:href="https://github.com/NixOS/nixpkgs/issues/13559">Create an issue for tracking Zero Hydra Failures progress. ZHF is an effort to get build failures down to zero.</link>
      </para>
-     <itemizedlist spacing="compact">
-      <listitem>
-       <para>
-        Get all new NixOS modules <literal>git diff
-        release-17.03..release-17.09 nixos/modules/module-list.nix|grep
-        ^+</literal>
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        Note systemd, kernel, glibc and Nix upgrades.
-       </para>
-      </listitem>
-     </itemizedlist>
     </listitem>
-   </itemizedlist>
+   </orderedlist>
   </section>
 
   <section xml:id="during-beta">
    <title>During Beta</title>
 
-   <itemizedlist spacing="compact">
+   <itemizedlist>
     <listitem>
      <para>
-      Monitor the master branch for bugfixes and minor updates and cherry-pick
-      them to the release branch.
+      Monitor the master branch for bugfixes and minor updates and cherry-pick them to the release branch.
      </para>
     </listitem>
    </itemizedlist>
@@ -149,7 +151,7 @@
   <section xml:id="before-the-final-release">
    <title>Before the final release</title>
 
-   <itemizedlist spacing="compact">
+   <itemizedlist>
     <listitem>
      <para>
       Re-check that the release notes are complete.
@@ -157,21 +159,17 @@
     </listitem>
     <listitem>
      <para>
-      Release Nix (currently only Eelco Dolstra can do that).
-      <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/installer/tools/nix-fallback-paths.nix">
-      Make sure fallback is updated. </link>
+      Release Nix (currently only Eelco Dolstra can do that). <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/installer/tools/nix-fallback-paths.nix">Make sure fallback is updated.</link>
      </para>
     </listitem>
     <listitem>
      <para>
-      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/40fd9ae3ac8048758abdcfc7d28a78b5f22fe97e">
-      Update README.md with new stable NixOS version information. </link>
+      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/40fd9ae3ac8048758abdcfc7d28a78b5f22fe97e">Update README.md with new stable NixOS version information.</link>
      </para>
     </listitem>
     <listitem>
      <para>
-      Change <literal>stableBranch</literal> to <literal>true</literal> in Hydra and wait for
-      the channel to update.
+      Change <literal>stableBranch</literal> to <literal>true</literal> in Hydra and wait for the channel to update.
      </para>
     </listitem>
    </itemizedlist>
@@ -180,76 +178,143 @@
   <section xml:id="at-final-release-time">
    <title>At final release time</title>
 
-   <itemizedlist spacing="compact">
+   <orderedlist>
     <listitem>
      <para>
-      <literal>git tag -s -a -m &quot;Release 15.09&quot; 15.09</literal>
+      Update <xref linkend="sec-upgrading" /> section of the manual to match new stable release version.
      </para>
     </listitem>
     <listitem>
      <para>
-      Update "Chapter 4. Upgrading NixOS" section of the manual to match
-      new stable release version.
+      Update <literal>rl-1909.xml</literal> with the release date.
      </para>
     </listitem>
     <listitem>
      <para>
-      Update the
-      <link xlink:href="https://github.com/NixOS/nixos-homepage/commit/2a37975d5a617ecdfca94696242b6f32ffcba9f1"><code>NIXOS_SERIES</code></link>
-      in the
-      <link xlink:href="https://github.com/NixOS/nixos-homepage">nixos-homepage</link>
-      repository.
+      Tag the final release
      </para>
+<programlisting>
+git tag --annotate --message="Release 19.09" 19.09
+git push upstream 19.09
+</programlisting>
+    </listitem>
+    <listitem>
+     <para>
+      Update <link xlink:href="https://github.com/NixOS/nixos-homepage">nixos-homepage</link> for the release.
+     </para>
+     <orderedlist>
+      <listitem>
+       <para>
+        <link xlink:href="https://github.com/NixOS/nixos-homepage/blob/47ac3571c4d71e841fd4e6c6e1872e762b9c4942/Makefile#L1">Update <literal>NIXOS_SERIES</literal> in the <literal>Makefile</literal></link>.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        <link xlink:href="https://github.com/NixOS/nixos-homepage/blob/47ac3571c4d71e841fd4e6c6e1872e762b9c4942/nixos-release.tt#L1">Update <literal>nixos-release.tt</literal> with the new NixOS version</link>.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        <link xlink:href="https://github.com/NixOS/nixos-homepage/blob/47ac3571c4d71e841fd4e6c6e1872e762b9c4942/flake.nix#L10">Update the <literal>flake.nix</literal> input <literal>released-nixpkgs</literal> to 19.09</link>.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Run <literal>./update.sh</literal> (this updates flake.lock to updated channel).
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        <link xlink:href="https://github.com/NixOS/nixos-homepage/blob/a5626c71c03a2dd69086564e56f1a230a2bb177a/logo/nixos-logo-19.09-loris-lores.png">Add a compressed version of the NixOS logo for 19.09</link>.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        <link xlink:href="https://github.com/NixOS/nixos-homepage/commit/a5626c71c03a2dd69086564e56f1a230a2bb177a#diff-9cdc6434d3e4fd93a6e5bb0a531a7c71R5">Compose a news item for the website RSS feed</link>.
+       </para>
+      </listitem>
+     </orderedlist>
     </listitem>
     <listitem>
      <para>
-      Get number of commits for the release: <literal>git log
-      release-14.04..release-14.12 --format=%an|wc -l</literal>
+      Create a new topic on <link xlink:href="https://discourse.nixos.org/">the Discourse instance</link> to announce the release.
      </para>
     </listitem>
+   </orderedlist>
+
+   <para>
+    You should include the following information:
+   </para>
+
+   <itemizedlist>
     <listitem>
      <para>
-      Commits by contributor: <literal>git log release-14.04..release-14.12
-      --format=%an|sort|uniq -c|sort -rn</literal>
+      Number of commits for the release:
      </para>
+<programlisting>
+bash git log release-19.03..release-19.09 --format=%an | wc -l
+</programlisting>
     </listitem>
     <listitem>
      <para>
-      Create a new topic on <link xlink:href="https://discourse.nixos.org/">the
-      Discourse instance</link> to announce the release with the above information.
-      Best to check how previous email was formulated to see what needs to be
-      included.
+      Commits by contributor:
      </para>
+<programlisting>
+git shortlog --summary --numbered release-19.03..release-19.09
+</programlisting>
     </listitem>
    </itemizedlist>
+
+   <para>
+    Best to check how the previous post was formulated to see what needs to be included.
+   </para>
   </section>
  </section>
- <section xml:id="release-managers">
+ <section xml:id="release-management-team">
   <title>Release Management Team</title>
+
   <para>
-   For each release there are two release managers. After each release the
-   release manager having managed two releases steps down and the release
-   management team of the last release appoints a new release manager.
+   For each release there are two release managers. After each release the release manager having managed two releases steps down and the release management team of the last release appoints a new release manager.
   </para>
+
   <para>
-   This makes sure a release management team always consists of one release
-   manager who already has managed one release and one release manager being
-   introduced to their role, making it easier to pass on knowledge and
-   experience.
+   This makes sure a release management team always consists of one release manager who already has managed one release and one release manager being introduced to their role, making it easier to pass on knowledge and experience.
   </para>
+
   <para>
-   Release managers for the current NixOS release are tracked by GitHub team
-   <link xlink:href="https://github.com/orgs/NixOS/teams/nixos-release-managers/members"><literal>@NixOS/nixos-release-managers</literal></link>.
+   Release managers for the current NixOS release are tracked by GitHub team <link xlink:href="https://github.com/orgs/NixOS/teams/nixos-release-managers/members"><literal>@NixOS/nixos-release-managers</literal></link>.
   </para>
+
   <para>
-   A release manager's role and responsibilities are:
+   A release manager’s role and responsibilities are:
   </para>
+
   <itemizedlist>
-   <listitem><para>manage the release process</para></listitem>
-   <listitem><para>start discussions about features and changes for a given release</para></listitem>
-   <listitem><para>create a roadmap</para></listitem>
-   <listitem><para>release in cooperation with Eelco Dolstra</para></listitem>
-   <listitem><para>decide which bug fixes, features, etc... get backported after a release</para></listitem>
+   <listitem>
+    <para>
+     manage the release process
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     start discussions about features and changes for a given release
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     create a roadmap
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     release in cooperation with Eelco Dolstra
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     decide which bug fixes, features, etc… get backported after a release
+    </para>
+   </listitem>
   </itemizedlist>
  </section>
  <section xml:id="release-schedule">
diff --git a/nixos/doc/manual/installation/changing-config.xml b/nixos/doc/manual/installation/changing-config.xml
index 48193d986ab7c..4288806d5eb21 100644
--- a/nixos/doc/manual/installation/changing-config.xml
+++ b/nixos/doc/manual/installation/changing-config.xml
@@ -78,7 +78,7 @@
   <literal>mutableUsers = false</literal>. Another way is to temporarily add
   the following to your configuration:
 <screen>
-<link linkend="opt-users.users._name__.initialHashedPassword">users.users.your-user.initialHashedPassword</link> = "test";
+<link linkend="opt-users.users._name_.initialHashedPassword">users.users.your-user.initialHashedPassword</link> = "test";
 </screen>
   <emphasis>Important:</emphasis> delete the $hostname.qcow2 file if you have
   started the virtual machine at least once without the right users, otherwise
diff --git a/nixos/doc/manual/installation/installing-from-other-distro.xml b/nixos/doc/manual/installation/installing-from-other-distro.xml
index 45d68f8787f1b..d2d1245c57ac9 100644
--- a/nixos/doc/manual/installation/installing-from-other-distro.xml
+++ b/nixos/doc/manual/installation/installing-from-other-distro.xml
@@ -211,7 +211,7 @@ nixpkgs https://nixos.org/channels/nixpkgs-unstable</screen>
     use <literal>sudo</literal>)
    </para>
 <programlisting>
-<link linkend="opt-users.users._name__.initialHashedPassword">users.users.root.initialHashedPassword</link> = "";
+<link linkend="opt-users.users._name_.initialHashedPassword">users.users.root.initialHashedPassword</link> = "";
 </programlisting>
   </listitem>
   <listitem>
diff --git a/nixos/doc/manual/installation/installing.xml b/nixos/doc/manual/installation/installing.xml
index 5f216df66f84d..c7ed3b3c0c97f 100644
--- a/nixos/doc/manual/installation/installing.xml
+++ b/nixos/doc/manual/installation/installing.xml
@@ -550,7 +550,7 @@ Retype new UNIX password: ***</screen>
   # Note: setting fileSystems is generally not
   # necessary, since nixos-generate-config figures them out
   # automatically in hardware-configuration.nix.
-  #<link linkend="opt-fileSystems._name__.device">fileSystems."/".device</link> = "/dev/disk/by-label/nixos";
+  #<link linkend="opt-fileSystems._name_.device">fileSystems."/".device</link> = "/dev/disk/by-label/nixos";
 
   # Enable the OpenSSH server.
   services.sshd.enable = true;
diff --git a/nixos/doc/manual/man-nixos-install.xml b/nixos/doc/manual/man-nixos-install.xml
index 84849282e9abd..b205e23096875 100644
--- a/nixos/doc/manual/man-nixos-install.xml
+++ b/nixos/doc/manual/man-nixos-install.xml
@@ -46,6 +46,10 @@
    </arg>
 
    <arg>
+    <option>--flake</option> <replaceable>flake-uri</replaceable>
+   </arg>
+
+   <arg>
      <arg choice='plain'>
        <option>--channel</option>
      </arg>
@@ -200,6 +204,18 @@
     </listitem>
    </varlistentry>
    <varlistentry>
+    <term>
+     <option>--flake</option> <replaceable>flake-uri</replaceable>#<replaceable>name</replaceable>
+    </term>
+    <listitem>
+     <para>
+      Build the NixOS system from the specified flake.
+      The flake must contain an output named
+      <literal>nixosConfigurations.<replaceable>name</replaceable></literal>.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
      <term>
        <option>--channel</option>
      </term>
diff --git a/nixos/doc/manual/man-nixos-rebuild.xml b/nixos/doc/manual/man-nixos-rebuild.xml
index f70f08a0f8a77..7dab5c69dfb5f 100644
--- a/nixos/doc/manual/man-nixos-rebuild.xml
+++ b/nixos/doc/manual/man-nixos-rebuild.xml
@@ -521,7 +521,7 @@
 
    <varlistentry>
     <term>
-     <option>--flake</option> <replaceable>flake-uri</replaceable>[<replaceable>name</replaceable>]
+     <option>--flake</option> <replaceable>flake-uri</replaceable><optional>#<replaceable>name</replaceable></optional>
     </term>
     <listitem>
      <para>
diff --git a/nixos/doc/manual/release-notes/rl-2003.xml b/nixos/doc/manual/release-notes/rl-2003.xml
index 0e9ba027a382a..87f1228561949 100644
--- a/nixos/doc/manual/release-notes/rl-2003.xml
+++ b/nixos/doc/manual/release-notes/rl-2003.xml
@@ -796,7 +796,7 @@ users.users.me =
      or any other display manager in NixOS as they all support auto-login. If you used this module specifically
      because it permitted root auto-login you can override the lightdm-autologin pam module like:
 <programlisting>
-<link xlink:href="#opt-security.pam.services._name__.text">security.pam.services.lightdm-autologin.text</link> = lib.mkForce ''
+<link xlink:href="#opt-security.pam.services._name_.text">security.pam.services.lightdm-autologin.text</link> = lib.mkForce ''
     auth     requisite pam_nologin.so
     auth     required  pam_succeed_if.so quiet
     auth     required  pam_permit.so
diff --git a/nixos/doc/manual/release-notes/rl-2009.xml b/nixos/doc/manual/release-notes/rl-2009.xml
index 0b8651e8f4261..7d11d422e3025 100644
--- a/nixos/doc/manual/release-notes/rl-2009.xml
+++ b/nixos/doc/manual/release-notes/rl-2009.xml
@@ -767,6 +767,21 @@ CREATE ROLE postgres LOGIN SUPERUSER;
      See <link xlink:href="https://github.com/NixOS/nixpkgs/pull/82743#issuecomment-674520472">the PR that changed this</link> for more info.
     </para>
    </listitem>
+   <listitem>
+    <para>
+     For NixOS configuration options, the type <literal>loaOf</literal>, after
+     its initial deprecation in release 20.03, has been removed. In NixOS and
+     Nixpkgs options using this type have been converted to <literal>attrsOf</literal>.
+     For more information on this change have look at these links:
+     <link xlink:href="https://github.com/NixOS/nixpkgs/issues/1800">issue #1800</link>,
+     <link xlink:href="https://github.com/NixOS/nixpkgs/pull/63103">PR #63103</link>.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+      <literal>config.systemd.services.${name}.path</literal> now returns a list of paths instead of a colon-separated string.
+    </para>
+   </listitem>
   </itemizedlist>
  </section>
 
@@ -997,6 +1012,59 @@ services.transmission.settings.rpc-bind-address = "0.0.0.0";
       the previous behaviour using <literal>undervolt.useTimer</literal>.
     </para>
    </listitem>
+   <listitem>
+     <para>
+      Agda has been heavily reworked.
+      <itemizedlist>
+	<listitem>
+	  <para>
+	    <literal>agda.mkDerivation</literal> has been heavily changed and
+	    is now located at <package>agdaPackages.mkDerivation</package>.
+	  </para>
+	</listitem>
+	<listitem>
+	  <para>
+	    New top-level packages <package>agda</package> and
+	    <literal>agda.withPackages</literal> have been added, the second
+	    of which sets up agda with access to chosen libraries.
+	  </para>
+	</listitem>
+	<listitem>
+	  <para>
+	    All agda libraries now live under
+	    <literal>agdaPackages</literal>.
+	  </para>
+	</listitem>
+	<listitem>
+	  <para>
+	    Many broken libraries have been removed.
+	  </para>
+	</listitem>
+      </itemizedlist>
+      See the <link
+      xlink:href="https://nixos.org/nixpkgs/manual/#agda">new
+      documentation</link> for more information.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+      The <literal>deepin</literal> package set has been removed from
+      nixpkgs. It was a work in progress to package the
+      <link xlink:href="https://www.deepin.org/en/dde/">Deepin Desktop Environment (DDE)</link>,
+      including libraries, tools and applications, and it was still
+      missing a service to lauch the desktop environment. It has shown
+      to no longer be a feasible goal due to reasons discussed in
+      <link xlink:href="https://github.com/NixOS/nixpkgs/issues/94870">issue #94870</link>.
+      The package <literal>netease-cloud-music</literal> has also been
+      removed, as it depends on libraries from deepin.
+    </para>
+   </listitem>
+   <listitem>
+     <para>
+       The <literal>opendkim</literal> module now uses systemd sandboxing features
+       to limit the exposure of the system towards the opendkim service.
+     </para>
+   </listitem>
   </itemizedlist>
  </section>
 </section>
diff --git a/nixos/lib/make-options-doc/options-to-docbook.xsl b/nixos/lib/make-options-doc/options-to-docbook.xsl
index 72ac89d4ff62c..18d19fddaca24 100644
--- a/nixos/lib/make-options-doc/options-to-docbook.xsl
+++ b/nixos/lib/make-options-doc/options-to-docbook.xsl
@@ -20,7 +20,7 @@
       <title>Configuration Options</title>
       <variablelist xml:id="configuration-variable-list">
         <xsl:for-each select="attrs">
-          <xsl:variable name="id" select="concat('opt-', str:replace(str:replace(str:replace(str:replace(attr[@name = 'name']/string/@value, '*', '_'), '&lt;', '_'), '>', '_'), '?', '_'))" />
+          <xsl:variable name="id" select="concat('opt-', str:replace(str:replace(str:replace(attr[@name = 'name']/string/@value, '*', '_'), '&lt;', '_'), '>', '_'))" />
           <varlistentry>
             <term xlink:href="#{$id}">
               <xsl:attribute name="xml:id"><xsl:value-of select="$id"/></xsl:attribute>
diff --git a/nixos/lib/testing-python.nix b/nixos/lib/testing-python.nix
index c6939c7d6989c..76a2022082c54 100644
--- a/nixos/lib/testing-python.nix
+++ b/nixos/lib/testing-python.nix
@@ -63,18 +63,12 @@ rec {
           mkdir -p $out
 
           LOGFILE=/dev/null tests='exec(os.environ["testScript"])' ${driver}/bin/nixos-test-driver
-
-          for i in */xchg/coverage-data; do
-            mkdir -p $out/coverage-data
-            mv $i $out/coverage-data/$(dirname $(dirname $i))
-          done
         '';
     };
 
 
   makeTest =
     { testScript
-    , makeCoverageReport ? false
     , enableOCR ? false
     , name ? "unnamed"
     # Skip linting (mainly intended for faster dev cycles)
@@ -153,7 +147,6 @@ rec {
       };
 
       test = passMeta (runTests driver);
-      report = passMeta (releaseTools.gcovReport { coverageRuns = [ test ]; });
 
       nodeNames = builtins.attrNames nodes;
       invalidNodeNames = lib.filter
@@ -169,7 +162,7 @@ rec {
           Please stick to alphanumeric chars and underscores as separation.
         ''
       else
-        (if makeCoverageReport then report else test) // {
+        test // {
           inherit nodes driver test;
         };
 
diff --git a/nixos/modules/config/krb5/default.nix b/nixos/modules/config/krb5/default.nix
index ff16ffcf9c65b..c2302451d702f 100644
--- a/nixos/modules/config/krb5/default.nix
+++ b/nixos/modules/config/krb5/default.nix
@@ -41,31 +41,30 @@ let
         value)
     else value;
 
-  mkIndent = depth: concatStrings (builtins.genList (_:  " ") (2 * depth));
+  indent = "  ";
 
-  mkRelation = name: value: "${name} = ${mkVal { inherit value; }}";
+  mkRelation = name: value:
+    if (isList value) then
+      concatMapStringsSep "\n" (mkRelation name) value
+    else "${name} = ${mkVal value}";
 
-  mkVal = { value, depth ? 0 }:
+  mkVal = value:
     if (value == true) then "true"
     else if (value == false) then "false"
     else if (isInt value) then (toString value)
-    else if (isList value) then
-      concatMapStringsSep " " mkVal { inherit value depth; }
     else if (isAttrs value) then
-      (concatStringsSep "\n${mkIndent (depth + 1)}"
-        ([ "{" ] ++ (mapAttrsToList
-          (attrName: attrValue: let
-            mappedAttrValue = mkVal {
-              value = attrValue;
-              depth = depth + 1;
-            };
-          in "${attrName} = ${mappedAttrValue}")
-        value))) + "\n${mkIndent depth}}"
+      let configLines = concatLists
+        (map (splitString "\n")
+          (mapAttrsToList mkRelation value));
+      in
+      (concatStringsSep "\n${indent}"
+        ([ "{" ] ++ configLines))
+      + "\n}"
     else value;
 
   mkMappedAttrsOrString = value: concatMapStringsSep "\n"
     (line: if builtins.stringLength line > 0
-      then "${mkIndent 1}${line}"
+      then "${indent}${line}"
       else line)
     (splitString "\n"
       (if isAttrs value then
@@ -114,7 +113,10 @@ in {
           {
             "ATHENA.MIT.EDU" = {
               admin_server = "athena.mit.edu";
-              kdc = "athena.mit.edu";
+              kdc = [
+                "athena01.mit.edu"
+                "athena02.mit.edu"
+              ];
             };
           };
         '';
diff --git a/nixos/modules/config/users-groups.nix b/nixos/modules/config/users-groups.nix
index 56b7af98b617b..0ab303d0ae47b 100644
--- a/nixos/modules/config/users-groups.nix
+++ b/nixos/modules/config/users-groups.nix
@@ -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.
       '';
diff --git a/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix b/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix
index 79c835dc39095..87545e8420308 100644
--- a/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix
+++ b/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix
@@ -27,7 +27,7 @@
   };
 
   fileSystems."/boot/firmware" = {
-    # This effectively "renames" the loaOf entry set in sd-image.nix
+    # This effectively "renames" the attrsOf entry set in sd-image.nix
     mountPoint = "/boot";
     neededForBoot = true;
   };
diff --git a/nixos/modules/installer/tools/nixos-install.sh b/nixos/modules/installer/tools/nixos-install.sh
index e0252befdfdcb..a180d1bc4c191 100644
--- a/nixos/modules/installer/tools/nixos-install.sh
+++ b/nixos/modules/installer/tools/nixos-install.sh
@@ -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
             ;;
@@ -92,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}
@@ -108,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
@@ -121,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.
@@ -131,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
 
@@ -150,7 +193,7 @@ touch "$mountPoint/etc/NIXOS"
 if [[ -z $noBootLoader ]]; then
     echo "installing the boot loader..."
     # Grub needs an mtab.
-    ln -sfn /proc/mounts $mountPoint/etc/mtab
+    ln -sfn /proc/mounts "$mountPoint"/etc/mtab
     NIXOS_INSTALL_BOOTLOADER=1 nixos-enter --root "$mountPoint" -- /run/current-system/bin/switch-to-configuration boot
 fi
 
diff --git a/nixos/modules/installer/tools/nixos-option/nixos-option.cc b/nixos/modules/installer/tools/nixos-option/nixos-option.cc
index 1a7b07a74f8ac..f779d82edbd6f 100644
--- a/nixos/modules/installer/tools/nixos-option/nixos-option.cc
+++ b/nixos/modules/installer/tools/nixos-option/nixos-option.cc
@@ -224,7 +224,7 @@ bool optionTypeIs(Context & ctx, Value & v, const std::string & soughtType)
 
 bool isAggregateOptionType(Context & ctx, Value & v)
 {
-    return optionTypeIs(ctx, v, "attrsOf") || optionTypeIs(ctx, v, "listOf") || optionTypeIs(ctx, v, "loaOf");
+    return optionTypeIs(ctx, v, "attrsOf") || optionTypeIs(ctx, v, "listOf");
 }
 
 MakeError(OptionPathError, EvalError);
diff --git a/nixos/modules/installer/tools/nixos-rebuild.sh b/nixos/modules/installer/tools/nixos-rebuild.sh
index ed9c2509b6b64..ad40fd2811dc4 100644
--- a/nixos/modules/installer/tools/nixos-rebuild.sh
+++ b/nixos/modules/installer/tools/nixos-rebuild.sh
@@ -17,6 +17,7 @@ showSyntax() {
 origArgs=("$@")
 extraBuildFlags=()
 lockFlags=()
+flakeFlags=()
 action=
 buildNix=1
 fast=
@@ -99,6 +100,7 @@ while [ "$#" -gt 0 ]; do
         ;;
       --flake)
         flake="$1"
+        flakeFlags=(--experimental-features 'nix-command flakes')
         shift 1
         ;;
       --recreate-lock-file|--no-update-lock-file|--no-write-lock-file|--no-registries|--commit-lock-file)
@@ -281,7 +283,7 @@ 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.
@@ -293,7 +295,7 @@ if [ "$action" = edit ]; then
         fi
         exec ${EDITOR:-nano} "$NIXOS_CONFIG"
     else
-        exec nix edit "${lockFlags[@]}" -- "$flake#$flakeAttr"
+        exec nix "${flakeFlags[@]}" edit "${lockFlags[@]}" -- "$flake#$flakeAttr"
     fi
     exit 1
 fi
@@ -419,7 +421,7 @@ if [ -z "$rollback" ]; then
             pathToConfig="$(nixBuild '<nixpkgs/nixos>' --no-out-link -A system "${extraBuildFlags[@]}")"
         else
             outLink=$tmpDir/result
-            nix build "$flake#$flakeAttr.config.system.build.toplevel" \
+            nix "${flakeFlags[@]}" build "$flake#$flakeAttr.config.system.build.toplevel" \
               "${extraBuildFlags[@]}" "${lockFlags[@]}" --out-link $outLink
             pathToConfig="$(readlink -f $outLink)"
         fi
@@ -429,7 +431,7 @@ if [ -z "$rollback" ]; then
         if [[ -z $flake ]]; then
             pathToConfig="$(nixBuild '<nixpkgs/nixos>' -A system -k "${extraBuildFlags[@]}")"
         else
-            nix build "$flake#$flakeAttr.config.system.build.toplevel" "${extraBuildFlags[@]}" "${lockFlags[@]}"
+            nix "${flakeFlags[@]}" build "$flake#$flakeAttr.config.system.build.toplevel" "${extraBuildFlags[@]}" "${lockFlags[@]}"
             pathToConfig="$(readlink -f ./result)"
         fi
     elif [ "$action" = build-vm ]; then
diff --git a/nixos/modules/installer/tools/tools.nix b/nixos/modules/installer/tools/tools.nix
index 1582f04930948..26fc8fb402e65 100644
--- a/nixos/modules/installer/tools/tools.nix
+++ b/nixos/modules/installer/tools/tools.nix
@@ -22,7 +22,7 @@ let
     src = ./nixos-install.sh;
     inherit (pkgs) runtimeShell;
     nix = config.nix.package.out;
-    path = makeBinPath [ nixos-enter ];
+    path = makeBinPath [ pkgs.nixUnstable nixos-enter ];
   };
 
   nixos-rebuild =
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index c837976286b4b..b516b1785195a 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -297,7 +297,6 @@
   ./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
@@ -588,6 +587,7 @@
   ./services/networking/atftpd.nix
   ./services/networking/avahi-daemon.nix
   ./services/networking/babeld.nix
+  ./services/networking/biboumi.nix
   ./services/networking/bind.nix
   ./services/networking/bitcoind.nix
   ./services/networking/autossh.nix
@@ -719,6 +719,7 @@
   ./services/networking/rdnssd.nix
   ./services/networking/redsocks.nix
   ./services/networking/resilio.nix
+  ./services/networking/robustirc-bridge.nix
   ./services/networking/rpcbind.nix
   ./services/networking/rxe.nix
   ./services/networking/sabnzbd.nix
diff --git a/nixos/modules/programs/environment.nix b/nixos/modules/programs/environment.nix
index 38bdabb4fa812..8877356360a5b 100644
--- a/nixos/modules/programs/environment.nix
+++ b/nixos/modules/programs/environment.nix
@@ -33,7 +33,6 @@ in
       { PATH = [ "/bin" ];
         INFOPATH = [ "/info" "/share/info" ];
         KDEDIRS = [ "" ];
-        STRIGI_PLUGIN_PATH = [ "/lib/strigi/" ];
         QT_PLUGIN_PATH = [ "/lib/qt4/plugins" "/lib/kde4/plugins" ];
         QTWEBKIT_PLUGIN_PATH = [ "/lib/mozilla/plugins/" ];
         GTK_PATH = [ "/lib/gtk-2.0" "/lib/gtk-3.0" ];
diff --git a/nixos/modules/programs/gpaste.nix b/nixos/modules/programs/gpaste.nix
index 4f6deb77e5ebc..8bc52c28d814b 100644
--- a/nixos/modules/programs/gpaste.nix
+++ b/nixos/modules/programs/gpaste.nix
@@ -30,5 +30,7 @@ with lib;
     environment.systemPackages = [ pkgs.gnome3.gpaste ];
     services.dbus.packages = [ pkgs.gnome3.gpaste ];
     systemd.packages = [ pkgs.gnome3.gpaste ];
+    # gnome-control-center crashes in Keyboard Shortcuts pane without the GSettings schemas.
+    services.xserver.desktopManager.gnome3.sessionPath = [ pkgs.gnome3.gpaste ];
   };
 }
diff --git a/nixos/modules/programs/ssh.nix b/nixos/modules/programs/ssh.nix
index a983ffa4b890f..40af4d0ff5aeb 100644
--- a/nixos/modules/programs/ssh.nix
+++ b/nixos/modules/programs/ssh.nix
@@ -131,7 +131,7 @@ in
 
       knownHosts = mkOption {
         default = {};
-        type = types.loaOf (types.submodule ({ name, ... }: {
+        type = types.attrsOf (types.submodule ({ name, ... }: {
           options = {
             certAuthority = mkOption {
               type = types.bool;
diff --git a/nixos/modules/programs/tsm-client.nix b/nixos/modules/programs/tsm-client.nix
index eb6f12475286f..7ac4086d5f094 100644
--- a/nixos/modules/programs/tsm-client.nix
+++ b/nixos/modules/programs/tsm-client.nix
@@ -7,7 +7,7 @@ let
   inherit (lib.modules) mkDefault mkIf;
   inherit (lib.options) literalExample mkEnableOption mkOption;
   inherit (lib.strings) concatStringsSep optionalString toLower;
-  inherit (lib.types) addCheck attrsOf lines loaOf nullOr package path port str strMatching submodule;
+  inherit (lib.types) addCheck attrsOf lines nullOr package path port str strMatching submodule;
 
   # Checks if given list of strings contains unique
   # elements when compared without considering case.
@@ -178,7 +178,7 @@ let
       client system-options file "dsm.sys"
     '';
     servers = mkOption {
-      type = loaOf (submodule [ serverOptions ]);
+      type = attrsOf (submodule [ serverOptions ]);
       default = {};
       example.mainTsmServer = {
         server = "tsmserver.company.com";
diff --git a/nixos/modules/programs/zsh/oh-my-zsh.xml b/nixos/modules/programs/zsh/oh-my-zsh.xml
index 568c2de655766..14a7228ad9b02 100644
--- a/nixos/modules/programs/zsh/oh-my-zsh.xml
+++ b/nixos/modules/programs/zsh/oh-my-zsh.xml
@@ -73,7 +73,7 @@
 <programlisting>
 { pkgs, ... }:
 {
-  programs.zsh.ohMyZsh.customPkgs = with pkgs; [
+  programs.zsh.ohMyZsh.customPkgs = [
     pkgs.nix-zsh-completions
     # and even more...
   ];
diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix
index 1fe00e9142bae..fad0b40a9dbc3 100644
--- a/nixos/modules/rename.nix
+++ b/nixos/modules/rename.nix
@@ -19,6 +19,7 @@ with lib;
     # 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.")
diff --git a/nixos/modules/security/pam.nix b/nixos/modules/security/pam.nix
index 565c15dec24b1..ce74805ef4132 100644
--- a/nixos/modules/security/pam.nix
+++ b/nixos/modules/security/pam.nix
@@ -544,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
diff --git a/nixos/modules/services/backup/znapzend.nix b/nixos/modules/services/backup/znapzend.nix
index 8098617d11f3c..0ca71b413cee0 100644
--- a/nixos/modules/services/backup/znapzend.nix
+++ b/nixos/modules/services/backup/znapzend.nix
@@ -220,7 +220,7 @@ let
       };
 
       destinations = mkOption {
-        type = loaOf (destType config);
+        type = attrsOf (destType config);
         description = "Additional destinations.";
         default = {};
         example = literalExample ''
@@ -328,7 +328,7 @@ in
       };
 
       zetup = mkOption {
-        type = loaOf srcType;
+        type = attrsOf srcType;
         description = "Znapzend configuration.";
         default = {};
         example = literalExample ''
diff --git a/nixos/modules/services/desktops/deepin/deepin.nix b/nixos/modules/services/desktops/deepin/deepin.nix
deleted file mode 100644
index f8fb73701af69..0000000000000
--- a/nixos/modules/services/desktops/deepin/deepin.nix
+++ /dev/null
@@ -1,123 +0,0 @@
-# deepin
-
-{ config, pkgs, lib, ... }:
-
-{
-
-  ###### interface
-
-  options = {
-
-    services.deepin.core.enable = lib.mkEnableOption "
-      Basic dbus and systemd services, groups and users needed by the
-      Deepin Desktop Environment.
-    ";
-
-    services.deepin.deepin-menu.enable = lib.mkEnableOption "
-      DBus service for unified menus in Deepin Desktop Environment.
-    ";
-
-    services.deepin.deepin-turbo.enable = lib.mkEnableOption "
-      Turbo service for the Deepin Desktop Environment. It is a daemon
-      that helps to launch applications faster.
-    ";
-
-  };
-
-
-  ###### implementation
-
-  config = lib.mkMerge [
-
-    (lib.mkIf config.services.deepin.core.enable {
-      environment.systemPackages = [
-        pkgs.deepin.dde-api
-        pkgs.deepin.dde-calendar
-        pkgs.deepin.dde-control-center
-        pkgs.deepin.dde-daemon
-        pkgs.deepin.dde-dock
-        pkgs.deepin.dde-launcher
-        pkgs.deepin.dde-file-manager
-        pkgs.deepin.dde-session-ui
-        pkgs.deepin.deepin-anything
-        pkgs.deepin.deepin-image-viewer
-      ];
-
-      services.dbus.packages = [
-        pkgs.deepin.dde-api
-        pkgs.deepin.dde-calendar
-        pkgs.deepin.dde-control-center
-        pkgs.deepin.dde-daemon
-        pkgs.deepin.dde-dock
-        pkgs.deepin.dde-launcher
-        pkgs.deepin.dde-file-manager
-        pkgs.deepin.dde-session-ui
-        pkgs.deepin.deepin-anything
-        pkgs.deepin.deepin-image-viewer
-      ];
-
-      systemd.packages = [
-        pkgs.deepin.dde-api
-        pkgs.deepin.dde-daemon
-        pkgs.deepin.dde-file-manager
-        pkgs.deepin.deepin-anything
-      ];
-
-      boot.extraModulePackages = [ config.boot.kernelPackages.deepin-anything ];
-
-      boot.kernelModules = [ "vfs_monitor" ];
-
-      users.groups.deepin-sound-player = { };
-
-      users.users.deepin-sound-player = {
-        description = "Deepin sound player";
-        group = "deepin-sound-player";
-        isSystemUser = true;
-      };
-
-      users.groups.deepin-daemon = { };
-
-      users.users.deepin-daemon = {
-        description = "Deepin daemon user";
-        group = "deepin-daemon";
-        isSystemUser = true;
-      };
-
-      users.groups.deepin_anything_server = { };
-
-      users.users.deepin_anything_server = {
-        description = "Deepin Anything Server";
-        group = "deepin_anything_server";
-        isSystemUser = true;
-      };
-
-      security.pam.services.deepin-auth-keyboard.text = ''
-        # original at ${pkgs.deepin.dde-daemon}/etc/pam.d/deepin-auth-keyboard
-        auth	[success=2 default=ignore]	pam_lsass.so
-        auth	[success=1 default=ignore]	pam_unix.so nullok_secure try_first_pass
-        auth	requisite	pam_deny.so
-        auth	required	pam_permit.so
-      '';
-
-      environment.etc = {
-        "polkit-1/localauthority/10-vendor.d/com.deepin.api.device.pkla".source = "${pkgs.deepin.dde-api}/etc/polkit-1/localauthority/10-vendor.d/com.deepin.api.device.pkla";
-        "polkit-1/localauthority/10-vendor.d/com.deepin.daemon.Accounts.pkla".source = "${pkgs.deepin.dde-daemon}/etc/polkit-1/localauthority/10-vendor.d/com.deepin.daemon.Accounts.pkla";
-        "polkit-1/localauthority/10-vendor.d/com.deepin.daemon.Grub2.pkla".source = "${pkgs.deepin.dde-daemon}/etc/polkit-1/localauthority/10-vendor.d/com.deepin.daemon.Grub2.pkla";
-      };
-
-      services.deepin.deepin-menu.enable = true;
-      services.deepin.deepin-turbo.enable = true;
-    })
-
-    (lib.mkIf config.services.deepin.deepin-menu.enable {
-      services.dbus.packages = [ pkgs.deepin.deepin-menu ];
-    })
-
-    (lib.mkIf config.services.deepin.deepin-turbo.enable {
-      environment.systemPackages = [ pkgs.deepin.deepin-turbo ];
-      systemd.packages = [ pkgs.deepin.deepin-turbo ];
-    })
-
-  ];
-
-}
diff --git a/nixos/modules/services/desktops/geoclue2.nix b/nixos/modules/services/desktops/geoclue2.nix
index 542b2ead41040..6702bd395a03e 100644
--- a/nixos/modules/services/desktops/geoclue2.nix
+++ b/nixos/modules/services/desktops/geoclue2.nix
@@ -160,7 +160,7 @@ in
       };
 
       appConfig = mkOption {
-        type = types.loaOf appConfigModule;
+        type = types.attrsOf appConfigModule;
         default = {};
         example = literalExample ''
           "com.github.app" = {
diff --git a/nixos/modules/services/games/terraria.nix b/nixos/modules/services/games/terraria.nix
index 413660321ec3c..34c8ff137d6a2 100644
--- a/nixos/modules/services/games/terraria.nix
+++ b/nixos/modules/services/games/terraria.nix
@@ -25,7 +25,7 @@ let
       exit 0
     fi
 
-    ${getBin pkgs.tmux}/bin/tmux -S /var/lib/terraria/terraria.sock send-keys Enter exit Enter
+    ${getBin pkgs.tmux}/bin/tmux -S ${cfg.dataDir}/terraria.sock send-keys Enter exit Enter
     ${getBin pkgs.coreutils}/bin/tail --pid="$1" -f /dev/null
   '';
 in
@@ -36,7 +36,7 @@ in
         type        = types.bool;
         default     = false;
         description = ''
-          If enabled, starts a Terraria server. The server can be connected to via <literal>tmux -S /var/lib/terraria/terraria.sock attach</literal>
+          If enabled, starts a Terraria server. The server can be connected to via <literal>tmux -S ${cfg.dataDir}/terraria.sock attach</literal>
           for administration by users who are a part of the <literal>terraria</literal> group (use <literal>C-b d</literal> shortcut to detach again).
         '';
       };
@@ -111,13 +111,19 @@ in
         default     = false;
         description = "Disables automatic Universal Plug and Play.";
       };
+      dataDir = mkOption {
+        type        = types.str;
+        default     = "/var/lib/terraria";
+        example     = "/srv/terraria";
+        description = "Path to variable state data directory for terraria.";
+      };
     };
   };
 
   config = mkIf cfg.enable {
     users.users.terraria = {
       description = "Terraria server service user";
-      home        = "/var/lib/terraria";
+      home        = cfg.dataDir;
       createHome  = true;
       uid         = config.ids.uids.terraria;
     };
@@ -136,13 +142,13 @@ in
         User    = "terraria";
         Type = "forking";
         GuessMainPID = true;
-        ExecStart = "${getBin pkgs.tmux}/bin/tmux -S /var/lib/terraria/terraria.sock new -d ${pkgs.terraria-server}/bin/TerrariaServer ${concatStringsSep " " flags}";
+        ExecStart = "${getBin pkgs.tmux}/bin/tmux -S ${cfg.dataDir}/terraria.sock new -d ${pkgs.terraria-server}/bin/TerrariaServer ${concatStringsSep " " flags}";
         ExecStop = "${stopScript} $MAINPID";
       };
 
       postStart = ''
-        ${pkgs.coreutils}/bin/chmod 660 /var/lib/terraria/terraria.sock
-        ${pkgs.coreutils}/bin/chgrp terraria /var/lib/terraria/terraria.sock
+        ${pkgs.coreutils}/bin/chmod 660 ${cfg.dataDir}/terraria.sock
+        ${pkgs.coreutils}/bin/chgrp terraria ${cfg.dataDir}/terraria.sock
       '';
     };
   };
diff --git a/nixos/modules/services/hardware/sane_extra_backends/brscan4.nix b/nixos/modules/services/hardware/sane_extra_backends/brscan4.nix
index 6f49a1ab6d406..a6afa01dd8124 100644
--- a/nixos/modules/services/hardware/sane_extra_backends/brscan4.nix
+++ b/nixos/modules/services/hardware/sane_extra_backends/brscan4.nix
@@ -81,7 +81,7 @@ in
         { office1 = { model = "MFC-7860DW"; ip = "192.168.1.2"; };
           office2 = { model = "MFC-7860DW"; nodename = "BRW0080927AFBCE"; };
         };
-      type = with types; loaOf (submodule netDeviceOpts);
+      type = with types; attrsOf (submodule netDeviceOpts);
       description = ''
         The list of network devices that will be registered against the brscan4
         sane backend.
diff --git a/nixos/modules/services/mail/opendkim.nix b/nixos/modules/services/mail/opendkim.nix
index eb6a426684d42..9bf6f338d93ed 100644
--- a/nixos/modules/services/mail/opendkim.nix
+++ b/nixos/modules/services/mail/opendkim.nix
@@ -129,6 +129,36 @@ in {
         User = cfg.user;
         Group = cfg.group;
         RuntimeDirectory = optional (cfg.socket == defaultSock) "opendkim";
+        StateDirectory = "opendkim";
+        StateDirectoryMode = "0700";
+        ReadWritePaths = [ cfg.keyPath ];
+
+        AmbientCapabilities = [];
+        CapabilityBoundingSet = [];
+        DevicePolicy = "closed";
+        LockPersonality = true;
+        MemoryDenyWriteExecute = true;
+        NoNewPrivileges = true;
+        PrivateDevices = true;
+        PrivateMounts = true;
+        PrivateTmp = true;
+        PrivateUsers = true;
+        ProtectClock = true;
+        ProtectControlGroups = true;
+        ProtectHome = true;
+        ProtectHostname = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectSystem = "strict";
+        RemoveIPC = true;
+        RestrictAddressFamilies = [ "AF_INET" "AF_INET6 AF_UNIX" ];
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        RestrictSUIDSGID = true;
+        SystemCallArchitectures = "native";
+        SystemCallFilter = [ "@system-service" "~@privileged @resources" ];
+        UMask = "0077";
       };
     };
 
diff --git a/nixos/modules/services/misc/beanstalkd.nix b/nixos/modules/services/misc/beanstalkd.nix
index bcd133c97411e..1c674a5b23bf0 100644
--- a/nixos/modules/services/misc/beanstalkd.nix
+++ b/nixos/modules/services/misc/beanstalkd.nix
@@ -28,6 +28,12 @@ in
           example = "0.0.0.0";
         };
       };
+
+      openFirewall = mkOption {
+        type = types.bool;
+        default = false;
+        description = "Whether to open ports in the firewall for the server.";
+      };
     };
   };
 
@@ -35,6 +41,10 @@ in
 
   config = mkIf cfg.enable {
 
+    networking.firewall = mkIf cfg.openFirewall {
+      allowedTCPPorts = [ cfg.listen.port ];
+    };
+
     environment.systemPackages = [ pkg ];
 
     systemd.services.beanstalkd = {
diff --git a/nixos/modules/services/misc/gitlab.nix b/nixos/modules/services/misc/gitlab.nix
index 425f35f37cb6d..9896b8023e441 100644
--- a/nixos/modules/services/misc/gitlab.nix
+++ b/nixos/modules/services/misc/gitlab.nix
@@ -783,6 +783,23 @@ 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" "gitlab-postgresql.service" "redis.service" ];
       requires = [ "gitlab-sidekiq.service" ];
diff --git a/nixos/modules/services/misc/gitlab.xml b/nixos/modules/services/misc/gitlab.xml
index b6171a9a194c1..19a3df0a5f663 100644
--- a/nixos/modules/services/misc/gitlab.xml
+++ b/nixos/modules/services/misc/gitlab.xml
@@ -98,6 +98,12 @@ services.gitlab = {
   </para>
 
   <para>
+    When <literal>icoming_mail.enabled</literal> is set to <literal>true</literal>
+    in <link linkend="opt-services.gitlab.extraConfig">extraConfig</link> an additional
+    service called <literal>gitlab-mailroom</literal> is enabled for fetching incoming mail.
+  </para>
+
+  <para>
    Refer to <xref linkend="ch-options" /> for all available configuration
    options for the
    <link linkend="opt-services.gitlab.enable">services.gitlab</link> module.
diff --git a/nixos/modules/services/misc/nix-daemon.nix b/nixos/modules/services/misc/nix-daemon.nix
index 0fbc9cecb4dff..2680b1cc0d3b8 100644
--- a/nixos/modules/services/misc/nix-daemon.nix
+++ b/nixos/modules/services/misc/nix-daemon.nix
@@ -587,16 +587,10 @@ in
 
     nix.systemFeatures = mkDefault (
       [ "nixos-test" "benchmark" "big-parallel" "kvm" ] ++
-      optionals (pkgs.stdenv.isx86_64 && pkgs.hostPlatform.platform ? gcc.arch) (
-        # a x86_64 builder can run code for `platform.gcc.arch` and minor architectures:
-        [ "gccarch-${pkgs.hostPlatform.platform.gcc.arch}" ] ++ {
-          sandybridge    = [ "gccarch-westmere" ];
-          ivybridge      = [ "gccarch-westmere" "gccarch-sandybridge" ];
-          haswell        = [ "gccarch-westmere" "gccarch-sandybridge" "gccarch-ivybridge" ];
-          broadwell      = [ "gccarch-westmere" "gccarch-sandybridge" "gccarch-ivybridge" "gccarch-haswell" ];
-          skylake        = [ "gccarch-westmere" "gccarch-sandybridge" "gccarch-ivybridge" "gccarch-haswell" "gccarch-broadwell" ];
-          skylake-avx512 = [ "gccarch-westmere" "gccarch-sandybridge" "gccarch-ivybridge" "gccarch-haswell" "gccarch-broadwell" "gccarch-skylake" ];
-        }.${pkgs.hostPlatform.platform.gcc.arch} or []
+      optionals (pkgs.hostPlatform.platform ? gcc.arch) (
+        # a builder can run code for `platform.gcc.arch` and inferior architectures
+        [ "gccarch-${pkgs.hostPlatform.platform.gcc.arch}" ] ++
+        map (x: "gccarch-${x}") lib.systems.architectures.inferiors.${pkgs.hostPlatform.platform.gcc.arch}
       )
     );
 
diff --git a/nixos/modules/services/network-filesystems/cachefilesd.nix b/nixos/modules/services/network-filesystems/cachefilesd.nix
index 619813408405f..229c9665419f5 100644
--- a/nixos/modules/services/network-filesystems/cachefilesd.nix
+++ b/nixos/modules/services/network-filesystems/cachefilesd.nix
@@ -43,17 +43,21 @@ in
 
   config = mkIf cfg.enable {
 
+    boot.kernelModules = [ "cachefiles" ];
+
     systemd.services.cachefilesd = {
       description = "Local network file caching management daemon";
       wantedBy = [ "multi-user.target" ];
-      path = [ pkgs.kmod pkgs.cachefilesd ];
-      script = ''
-        modprobe -qab cachefiles
-        mkdir -p ${cfg.cacheDir}
-        chmod 700 ${cfg.cacheDir}
-        exec cachefilesd -n -f ${cfgFile}
-      '';
+      serviceConfig = {
+        Type = "exec";
+        ExecStart = "${pkgs.cachefilesd}/bin/cachefilesd -n -f ${cfgFile}";
+        Restart = "on-failure";
+        PrivateTmp = true;
+      };
     };
 
+    systemd.tmpfiles.rules = [
+      "d ${cfg.cacheDir} 0700 root root - -"
+    ];
   };
 }
diff --git a/nixos/modules/services/networking/biboumi.nix b/nixos/modules/services/networking/biboumi.nix
new file mode 100644
index 0000000000000..66ddca93d8181
--- /dev/null
+++ b/nixos/modules/services/networking/biboumi.nix
@@ -0,0 +1,269 @@
+{ config, lib, pkgs, options, ... }:
+with lib;
+let
+  cfg = config.services.biboumi;
+  inherit (config.environment) etc;
+  rootDir = "/run/biboumi/mnt-root";
+  stateDir = "/var/lib/biboumi";
+  settingsFile = pkgs.writeText "biboumi.cfg" (
+    generators.toKeyValue {
+      mkKeyValue = k: v:
+        if v == null then ""
+        else generators.mkKeyValueDefault {} "=" k v;
+    } cfg.settings);
+  need_CAP_NET_BIND_SERVICE = cfg.settings.identd_port != 0 && cfg.settings.identd_port < 1024;
+in
+{
+  options = {
+    services.biboumi = {
+      enable = mkEnableOption "the Biboumi XMPP gateway to IRC";
+
+      settings = mkOption {
+        description = ''
+          See <link xlink:href="https://lab.louiz.org/louiz/biboumi/blob/8.5/doc/biboumi.1.rst">biboumi 8.5</link>
+          for documentation.
+        '';
+        default = {};
+        type = types.submodule {
+          freeformType = with types;
+            (attrsOf (nullOr (oneOf [str int bool]))) // {
+              description = "settings option";
+            };
+          options.admin = mkOption {
+            type = with types; listOf str;
+            default = [];
+            example = ["admin@example.org"];
+            apply = concatStringsSep ":";
+            description = ''
+              The bare JID of the gateway administrator. This JID will have more
+              privileges than other standard users, for example some administration
+              ad-hoc commands will only be available to that JID.
+            '';
+          };
+          options.ca_file = mkOption {
+            type = types.path;
+            default = "/etc/ssl/certs/ca-certificates.crt";
+            description = ''
+              Specifies which file should be used as the list of trusted CA
+              when negociating a TLS session.
+            '';
+          };
+          options.db_name = mkOption {
+            type = with types; either path str;
+            default = "${stateDir}/biboumi.sqlite";
+            description = ''
+              The name of the database to use.
+            '';
+            example = "postgresql://user:secret@localhost";
+          };
+          options.hostname = mkOption {
+            type = types.str;
+            example = "biboumi.example.org";
+            description = ''
+              The hostname served by the XMPP gateway.
+              This domain must be configured in the XMPP server
+              as an external component.
+            '';
+          };
+          options.identd_port = mkOption {
+            type = types.port;
+            default = 113;
+            example = 0;
+            description = ''
+              The TCP port on which to listen for identd queries.
+            '';
+          };
+          options.log_level = mkOption {
+            type = types.ints.between 0 3;
+            default = 1;
+            description = ''
+              Indicate what type of log messages to write in the logs.
+              0 is debug, 1 is info, 2 is warning, 3 is error.
+            '';
+          };
+          options.password = mkOption {
+            type = with types; nullOr str;
+            description = ''
+              The password used to authenticate the XMPP component to your XMPP server.
+              This password must be configured in the XMPP server,
+              associated with the external component on
+              <link linkend="opt-services.biboumi.settings.hostname">hostname</link>.
+
+              Set it to null and use <link linkend="opt-services.biboumi.credentialsFile">credentialsFile</link>
+              if you do not want this password to go into the Nix store.
+            '';
+          };
+          options.persistent_by_default = mkOption {
+            type = types.bool;
+            default = false;
+            description = ''
+              Whether all rooms will be persistent by default:
+              the value of the “persistent” option in the global configuration of each
+              user will be “true”, but the value of each individual room will still
+              default to false. This means that a user just needs to change the global
+              “persistent” configuration option to false in order to override this.
+            '';
+          };
+          options.policy_directory = mkOption {
+            type = types.path;
+            default = "${pkgs.biboumi}/etc/biboumi";
+            description = ''
+              A directory that should contain the policy files,
+              used to customize Botan’s behaviour
+              when negociating the TLS connections with the IRC servers.
+            '';
+          };
+          options.port = mkOption {
+            type = types.port;
+            default = 5347;
+            description = ''
+              The TCP port to use to connect to the local XMPP component.
+            '';
+          };
+          options.realname_customization = mkOption {
+            type = types.bool;
+            default = true;
+            description = ''
+              Whether the users will be able to use
+              the ad-hoc commands that lets them configure
+              their realname and username.
+            '';
+          };
+          options.realname_from_jid = mkOption {
+            type = types.bool;
+            default = false;
+            description = ''
+              Whether the realname and username of each biboumi
+              user will be extracted from their JID.
+              Otherwise they will be set to the nick
+              they used to connect to the IRC server.
+            '';
+          };
+          options.xmpp_server_ip = mkOption {
+            type = types.str;
+            default = "127.0.0.1";
+            description = ''
+              The IP address to connect to the XMPP server on.
+              The connection to the XMPP server is unencrypted,
+              so the biboumi instance and the server should
+              normally be on the same host.
+            '';
+          };
+        };
+      };
+
+      credentialsFile = mkOption {
+        type = types.path;
+        description = ''
+          Path to a configuration file to be merged with the settings.
+          Beware not to surround "=" with spaces when setting biboumi's options in this file.
+          Useful to merge a file which is better kept out of the Nix store
+          because it contains sensible data like
+          <link linkend="opt-services.biboumi.settings.password">password</link>.
+        '';
+        default = "/dev/null";
+        example = "/run/keys/biboumi.cfg";
+      };
+
+      openFirewall = mkEnableOption "opening of the identd port in the firewall";
+    };
+  };
+
+  config = mkIf cfg.enable {
+    networking.firewall = mkIf (cfg.openFirewall && cfg.settings.identd_port != 0)
+      { allowedTCPPorts = [ cfg.settings.identd_port ]; };
+
+    systemd.services.biboumi = {
+      description = "Biboumi, XMPP to IRC gateway";
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+
+      serviceConfig = {
+        Type = "notify";
+        # Biboumi supports systemd's watchdog.
+        WatchdogSec = 20;
+        Restart = "always";
+        # Use "+" because credentialsFile may not be accessible to User= or Group=.
+        ExecStartPre = [("+" + pkgs.writeShellScript "biboumi-prestart" ''
+          set -eux
+          cat ${settingsFile} '${cfg.credentialsFile}' |
+          install -m 644 /dev/stdin /run/biboumi/biboumi.cfg
+        '')];
+        ExecStart = "${pkgs.biboumi}/bin/biboumi /run/biboumi/biboumi.cfg";
+        ExecReload = "${pkgs.coreutils}/bin/kill -USR1 $MAINPID";
+        # Firewalls needing opening for output connections can still do that
+        # selectively for biboumi with:
+        # users.users.biboumi.isSystemUser = true;
+        # and, for example:
+        # networking.nftables.ruleset = ''
+        #   add rule inet filter output meta skuid biboumi tcp accept
+        # '';
+        DynamicUser = true;
+        RootDirectory = rootDir;
+        RootDirectoryStartOnly = true;
+        InaccessiblePaths = [ "-+${rootDir}" ];
+        RuntimeDirectory = [ "biboumi" (removePrefix "/run/" rootDir) ];
+        RuntimeDirectoryMode = "700";
+        StateDirectory = "biboumi";
+        StateDirectoryMode = "700";
+        MountAPIVFS = true;
+        UMask = "0066";
+        BindPaths = [
+          stateDir
+          # This is for Type="notify"
+          # See https://github.com/systemd/systemd/issues/3544
+          "/run/systemd/notify"
+          "/run/systemd/journal/socket"
+        ];
+        BindReadOnlyPaths = [
+          builtins.storeDir
+          "/etc"
+        ];
+        # The following options are only for optimizing:
+        # systemd-analyze security biboumi
+        AmbientCapabilities = [ (optionalString need_CAP_NET_BIND_SERVICE "CAP_NET_BIND_SERVICE") ];
+        CapabilityBoundingSet = [ (optionalString need_CAP_NET_BIND_SERVICE "CAP_NET_BIND_SERVICE") ];
+        # ProtectClock= adds DeviceAllow=char-rtc r
+        DeviceAllow = "";
+        LockPersonality = true;
+        MemoryDenyWriteExecute = true;
+        NoNewPrivileges = true;
+        PrivateDevices = true;
+        PrivateMounts = true;
+        PrivateNetwork = mkDefault false;
+        PrivateTmp = true;
+        # PrivateUsers=true breaks AmbientCapabilities=CAP_NET_BIND_SERVICE
+        # See https://bugs.archlinux.org/task/65921
+        PrivateUsers = !need_CAP_NET_BIND_SERVICE;
+        ProtectClock = true;
+        ProtectControlGroups = true;
+        ProtectHome = true;
+        ProtectHostname = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectSystem = "strict";
+        RemoveIPC = true;
+        # AF_UNIX is for /run/systemd/notify
+        RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        RestrictSUIDSGID = true;
+        SystemCallFilter = [
+          "@system-service"
+          # Groups in @system-service which do not contain a syscall
+          # listed by perf stat -e 'syscalls:sys_enter_*' biboumi biboumi.cfg
+          # in tests, and seem likely not necessary for biboumi.
+          # To run such a perf in ExecStart=, you have to:
+          # - AmbientCapabilities="CAP_SYS_ADMIN"
+          # - mount -o remount,mode=755 /sys/kernel/debug/{,tracing}
+          "~@aio" "~@chown" "~@ipc" "~@keyring" "~@resources" "~@setuid" "~@timer"
+        ];
+        SystemCallArchitectures = "native";
+        SystemCallErrorNumber = "EPERM";
+      };
+    };
+  };
+
+  meta.maintainers = with maintainers; [ julm ];
+}
diff --git a/nixos/modules/services/networking/hylafax/options.nix b/nixos/modules/services/networking/hylafax/options.nix
index 4ac6d3fa8432d..9e28d09dffca5 100644
--- a/nixos/modules/services/networking/hylafax/options.nix
+++ b/nixos/modules/services/networking/hylafax/options.nix
@@ -3,7 +3,7 @@
 let
 
   inherit (lib.options) literalExample mkEnableOption mkOption;
-  inherit (lib.types) bool enum int lines loaOf nullOr path str submodule;
+  inherit (lib.types) bool enum int lines attrsOf nullOr path str submodule;
   inherit (lib.modules) mkDefault mkIf mkMerge;
 
   commonDescr = ''
@@ -248,7 +248,7 @@ in
     };
 
     modems = mkOption {
-      type = loaOf (submodule [ modemConfigOptions ]);
+      type = attrsOf (submodule [ modemConfigOptions ]);
       default = {};
       example.ttyS1 = {
         type = "cirrus";
diff --git a/nixos/modules/services/networking/nylon.nix b/nixos/modules/services/networking/nylon.nix
index 7c171281a9262..bfc358cb12fb1 100644
--- a/nixos/modules/services/networking/nylon.nix
+++ b/nixos/modules/services/networking/nylon.nix
@@ -140,7 +140,7 @@ in
     services.nylon = mkOption {
       default = {};
       description = "Collection of named nylon instances";
-      type = with types; loaOf (submodule nylonOpts);
+      type = with types; attrsOf (submodule nylonOpts);
       internal = true;
     };
 
diff --git a/nixos/modules/services/networking/prosody.nix b/nixos/modules/services/networking/prosody.nix
index e53d7093be864..a6c1cb0f4797a 100644
--- a/nixos/modules/services/networking/prosody.nix
+++ b/nixos/modules/services/networking/prosody.nix
@@ -655,7 +655,7 @@ in
 
         description = "Define the virtual hosts";
 
-        type = with types; loaOf (submodule vHostOpts);
+        type = with types; attrsOf (submodule vHostOpts);
 
         example = {
           myhost = {
diff --git a/nixos/modules/services/networking/prosody.xml b/nixos/modules/services/networking/prosody.xml
index 7859cb1578b7e..e3fedf8a67e16 100644
--- a/nixos/modules/services/networking/prosody.xml
+++ b/nixos/modules/services/networking/prosody.xml
@@ -43,10 +43,10 @@ services.prosody = {
   <link linkend="opt-services.prosody.ssl.cert">ssl.cert</link> = "/var/lib/acme/example.org/fullchain.pem";
   <link linkend="opt-services.prosody.ssl.key">ssl.key</link> = "/var/lib/acme/example.org/key.pem";
   <link linkend="opt-services.prosody.virtualHosts">virtualHosts</link>."example.org" = {
-      <link linkend="opt-services.prosody.virtualHosts._name__.enabled">enabled</link> = true;
-      <link linkend="opt-services.prosody.virtualHosts._name__.domain">domain</link> = "example.org";
-      <link linkend="opt-services.prosody.virtualHosts._name__.ssl.cert">ssl.cert</link> = "/var/lib/acme/example.org/fullchain.pem";
-      <link linkend="opt-services.prosody.virtualHosts._name__.ssl.key">ssl.key</link> = "/var/lib/acme/example.org/key.pem";
+      <link linkend="opt-services.prosody.virtualHosts._name_.enabled">enabled</link> = true;
+      <link linkend="opt-services.prosody.virtualHosts._name_.domain">domain</link> = "example.org";
+      <link linkend="opt-services.prosody.virtualHosts._name_.ssl.cert">ssl.cert</link> = "/var/lib/acme/example.org/fullchain.pem";
+      <link linkend="opt-services.prosody.virtualHosts._name_.ssl.key">ssl.key</link> = "/var/lib/acme/example.org/key.pem";
   };
   <link linkend="opt-services.prosody.muc">muc</link> = [ {
       <link linkend="opt-services.prosody.muc">domain</link> = "conference.example.org";
diff --git a/nixos/modules/services/networking/robustirc-bridge.nix b/nixos/modules/services/networking/robustirc-bridge.nix
new file mode 100644
index 0000000000000..255af79ec04b2
--- /dev/null
+++ b/nixos/modules/services/networking/robustirc-bridge.nix
@@ -0,0 +1,47 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.robustirc-bridge;
+in
+{
+  options = {
+    services.robustirc-bridge = {
+      enable = mkEnableOption "RobustIRC bridge";
+
+      extraFlags = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        description = ''Extra flags passed to the <command>robustirc-bridge</command> command. See <link xlink:href="https://robustirc.net/docs/adminguide.html#_bridge">RobustIRC Documentation</link> or robustirc-bridge(1) for details.'';
+        example = [
+          "-network robustirc.net"
+        ];
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.services.robustirc-bridge = {
+      description = "RobustIRC bridge";
+      documentation = [
+        "man:robustirc-bridge(1)"
+        "https://robustirc.net/"
+      ];
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network.target" ];
+
+      serviceConfig = {
+        DynamicUser = true;
+        ExecStart = "${pkgs.robustirc-bridge}/bin/robustirc-bridge ${concatStringsSep " " cfg.extraFlags}";
+        Restart = "on-failure";
+
+        # Hardening
+        PrivateDevices = true;
+        ProtectSystem = true;
+        ProtectHome = true;
+        PrivateTmp = true;
+      };
+    };
+  };
+}
diff --git a/nixos/modules/services/networking/ssh/sshd.nix b/nixos/modules/services/networking/ssh/sshd.nix
index 17f31e3a488d8..6b27cbc56bd94 100644
--- a/nixos/modules/services/networking/ssh/sshd.nix
+++ b/nixos/modules/services/networking/ssh/sshd.nix
@@ -361,7 +361,7 @@ in
     };
 
     users.users = mkOption {
-      type = with types; loaOf (submodule userOptions);
+      type = with types; attrsOf (submodule userOptions);
     };
 
   };
diff --git a/nixos/modules/services/networking/syncthing.nix b/nixos/modules/services/networking/syncthing.nix
index e717d78feed57..28348c7893a0d 100644
--- a/nixos/modules/services/networking/syncthing.nix
+++ b/nixos/modules/services/networking/syncthing.nix
@@ -18,6 +18,7 @@ let
     fsWatcherEnabled = folder.watch;
     fsWatcherDelayS = folder.watchDelay;
     ignorePerms = folder.ignorePerms;
+    ignoreDelete = folder.ignoreDelete;
     versioning = folder.versioning;
   }) (filterAttrs (
     _: folder:
@@ -284,8 +285,6 @@ in {
                 });
               };
 
-
-
               rescanInterval = mkOption {
                 type = types.int;
                 default = 3600;
@@ -327,6 +326,16 @@ in {
                 '';
               };
 
+              ignoreDelete = mkOption {
+                type = types.bool;
+                default = false;
+                description = ''
+                  Whether to delete files in destination. See <link
+                  xlink:href="https://docs.syncthing.net/advanced/folder-ignoredelete.html">
+                  upstream's docs</link>.
+                '';
+              };
+
             };
           }));
         };
diff --git a/nixos/modules/services/security/tor.nix b/nixos/modules/services/security/tor.nix
index b4bc2f694e4da..38dc378887a83 100644
--- a/nixos/modules/services/security/tor.nix
+++ b/nixos/modules/services/security/tor.nix
@@ -607,7 +607,7 @@ in
             ];
           }
         '';
-        type = types.loaOf (types.submodule ({name, ...}: {
+        type = types.attrsOf (types.submodule ({name, ...}: {
           options = {
 
              name = mkOption {
diff --git a/nixos/modules/system/boot/luksroot.nix b/nixos/modules/system/boot/luksroot.nix
index e6a53b03f88dc..88190e8200b16 100644
--- a/nixos/modules/system/boot/luksroot.nix
+++ b/nixos/modules/system/boot/luksroot.nix
@@ -516,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 {
diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix
index 36af5de4c90cd..1b2f22a039cbd 100644
--- a/nixos/modules/system/boot/stage-1.nix
+++ b/nixos/modules/system/boot/stage-1.nix
@@ -558,7 +558,7 @@ in
       };
 
     fileSystems = mkOption {
-      type = with lib.types; loaOf (submodule {
+      type = with lib.types; attrsOf (submodule {
         options.neededForBoot = mkOption {
           default = false;
           type = types.bool;
diff --git a/nixos/modules/system/boot/systemd-unit-options.nix b/nixos/modules/system/boot/systemd-unit-options.nix
index ac6fed440a266..5addc6f9ca44d 100644
--- a/nixos/modules/system/boot/systemd-unit-options.nix
+++ b/nixos/modules/system/boot/systemd-unit-options.nix
@@ -234,7 +234,6 @@ in rec {
     path = mkOption {
       default = [];
       type = with types; listOf (oneOf [ package str ]);
-      apply = ps: "${makeBinPath ps}:${makeSearchPathOutput "bin" "sbin" ps}";
       description = ''
         Packages added to the service's <envar>PATH</envar>
         environment variable.  Both the <filename>bin</filename>
diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix
index 10343df70aa3c..74d6957678f56 100644
--- a/nixos/modules/system/boot/systemd.nix
+++ b/nixos/modules/system/boot/systemd.nix
@@ -257,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 =
@@ -1006,7 +1006,7 @@ 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".source = pkgs.symlinkJoin {
+      "tmpfiles.d".source = (pkgs.symlinkJoin {
         name = "tmpfiles.d";
         paths = map (p: p + "/lib/tmpfiles.d") cfg.tmpfiles.packages;
         postBuild = ''
@@ -1016,8 +1016,10 @@ in
               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; };
diff --git a/nixos/modules/system/etc/etc.nix b/nixos/modules/system/etc/etc.nix
index 1f4d54a1ae205..7478e3e80717f 100644
--- a/nixos/modules/system/etc/etc.nix
+++ b/nixos/modules/system/etc/etc.nix
@@ -46,7 +46,7 @@ in
         Set of files that have to be linked in <filename>/etc</filename>.
       '';
 
-      type = with types; loaOf (submodule (
+      type = with types; attrsOf (submodule (
         { name, config, ... }:
         { options = {
 
diff --git a/nixos/modules/tasks/encrypted-devices.nix b/nixos/modules/tasks/encrypted-devices.nix
index 9c3f2d8fccb23..dd337de98698c 100644
--- a/nixos/modules/tasks/encrypted-devices.nix
+++ b/nixos/modules/tasks/encrypted-devices.nix
@@ -54,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);
diff --git a/nixos/modules/tasks/filesystems.nix b/nixos/modules/tasks/filesystems.nix
index 0ade74b957a0c..3ea67dac7146d 100644
--- a/nixos/modules/tasks/filesystems.nix
+++ b/nixos/modules/tasks/filesystems.nix
@@ -159,7 +159,7 @@ in
           "/bigdisk".label = "bigdisk";
         }
       '';
-      type = types.loaOf (types.submodule [coreFileSystemOpts fileSystemOpts]);
+      type = types.attrsOf (types.submodule [coreFileSystemOpts fileSystemOpts]);
       description = ''
         The file systems to be mounted.  It must include an entry for
         the root directory (<literal>mountPoint = "/"</literal>).  Each
@@ -193,7 +193,7 @@ in
 
     boot.specialFileSystems = mkOption {
       default = {};
-      type = types.loaOf (types.submodule coreFileSystemOpts);
+      type = types.attrsOf (types.submodule coreFileSystemOpts);
       internal = true;
       description = ''
         Special filesystems that are mounted very early during boot.
diff --git a/nixos/modules/tasks/network-interfaces.nix b/nixos/modules/tasks/network-interfaces.nix
index af98123d47748..c0e4d3979fdad 100644
--- a/nixos/modules/tasks/network-interfaces.nix
+++ b/nixos/modules/tasks/network-interfaces.nix
@@ -519,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 {
@@ -544,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 {
diff --git a/nixos/modules/testing/test-instrumentation.nix b/nixos/modules/testing/test-instrumentation.nix
index 30ffb12cbadee..c0ec76e8a3a35 100644
--- a/nixos/modules/testing/test-instrumentation.nix
+++ b/nixos/modules/testing/test-instrumentation.nix
@@ -74,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 =
@@ -111,8 +104,6 @@ with import ../../lib/qemu-flags.nix { inherit pkgs; };
     networking.defaultGateway = mkOverride 150 "";
     networking.nameservers = mkOverride 150 [ ];
 
-    systemd.globalEnvironment.GCOV_PREFIX = "/tmp/xchg/coverage-data";
-
     system.requiredKernelConfig = with config.lib.kernelConfig; [
       (isYes "SERIAL_8250_CONSOLE")
       (isYes "SERIAL_8250")
diff --git a/nixos/modules/virtualisation/containers.nix b/nixos/modules/virtualisation/containers.nix
index 3a6767d84a9bd..de97ba3f7bb0c 100644
--- a/nixos/modules/virtualisation/containers.nix
+++ b/nixos/modules/virtualisation/containers.nix
@@ -43,6 +43,12 @@ in
         '';
       };
 
+    ociSeccompBpfHook.enable = mkOption {
+      type = types.bool;
+      default = false;
+      description = "Enable the OCI seccomp BPF hook";
+    };
+
     containersConf = mkOption {
       default = {};
       description = "containers.conf configuration";
@@ -116,6 +122,12 @@ in
       [network]
       cni_plugin_dirs = ["${pkgs.cni-plugins}/bin/"]
 
+      ${lib.optionalString (cfg.ociSeccompBpfHook.enable == true) ''
+      [engine]
+      hooks_dir = [
+        "${config.boot.kernelPackages.oci-seccomp-bpf-hook}",
+      ]
+      ''}
     '' + cfg.containersConf.extraConfig;
 
     environment.etc."containers/registries.conf".source = toTOML "registries.conf" {
diff --git a/nixos/modules/virtualisation/cri-o.nix b/nixos/modules/virtualisation/cri-o.nix
index 9c818eee73b67..aa2fb73533ac9 100644
--- a/nixos/modules/virtualisation/cri-o.nix
+++ b/nixos/modules/virtualisation/cri-o.nix
@@ -101,6 +101,7 @@ in
       log_level = "${cfg.logLevel}"
       manage_ns_lifecycle = true
       pinns_path = "${cfg.package}/bin/pinns"
+      hooks_dir = []
 
       ${optionalString (cfg.runtime != null) ''
       default_runtime = "${cfg.runtime}"
diff --git a/nixos/modules/virtualisation/nixos-containers.nix b/nixos/modules/virtualisation/nixos-containers.nix
index b0fa03917c822..8fbb4efd20196 100644
--- a/nixos/modules/virtualisation/nixos-containers.nix
+++ b/nixos/modules/virtualisation/nixos-containers.nix
@@ -627,7 +627,7 @@ in
 		    };
 
             bindMounts = mkOption {
-              type = with types; loaOf (submodule bindMountOpts);
+              type = with types; attrsOf (submodule bindMountOpts);
               default = {};
               example = literalExample ''
                 { "/home" = { hostPath = "/home/alice";
diff --git a/nixos/modules/virtualisation/railcar.nix b/nixos/modules/virtualisation/railcar.nix
index 3f188fc68e55f..10464f6289846 100644
--- a/nixos/modules/virtualisation/railcar.nix
+++ b/nixos/modules/virtualisation/railcar.nix
@@ -41,7 +41,7 @@ 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.
@@ -61,7 +61,7 @@ in
     containers = mkOption {
       default = {};
       description = "Declarative container configuration";
-      type = with types; loaOf (submodule ({ name, config, ... }: {
+      type = with types; attrsOf (submodule ({ name, config, ... }: {
         options = {
           cmd = mkOption {
             type = types.lines;
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index fabd525dd90a8..60ef5a027637c 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -298,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 {};
diff --git a/nixos/tests/common/acme/server/mkcerts.nix b/nixos/tests/common/acme/server/mkcerts.nix
index 2474019cbac3b..c9616bf9672cc 100644
--- a/nixos/tests/common/acme/server/mkcerts.nix
+++ b/nixos/tests/common/acme/server/mkcerts.nix
@@ -59,7 +59,8 @@ pkgs.runCommand "acme-snakeoil-ca" {
     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
+      -CA ca.pem -CAkey ca.key -out snakeoil.pem -days 36500 \
+      -extfile "$OPENSSL_CONF" -extensions req_ext
     addpem snakeoil.key ${lib.escapeShellArg fqdn} key
     addpem snakeoil.pem ${lib.escapeShellArg fqdn} cert
   '') domains}
diff --git a/nixos/tests/common/acme/server/snakeoil-certs.nix b/nixos/tests/common/acme/server/snakeoil-certs.nix
index fd537c3260f1d..7325b027c7ef0 100644
--- a/nixos/tests/common/acme/server/snakeoil-certs.nix
+++ b/nixos/tests/common/acme/server/snakeoil-certs.nix
@@ -2,170 +2,171 @@
 {
   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=
+    MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQDd1G7OFpXIoHnr
+    rxdw+hiJVDY6nQDDKFt9FBKwlv7x2hCvX7bnyvHaL7H61c+80McGPISrQn3+MjuR
+    Zuqwax49DddNXbGt4WqGlx4LAeI37OgNUUz9foNr2rDDV744vwp14/PD1f3nqpWf
+    Ogzzsh8rxac0mZ5Se9HxOIpI7NRNuHJjj7HWZ4YxeOvi289rmpu0JPcp25njw7h6
+    FNfHu8GGp34Uj6wAxubdRyfViV8z9FMfbglLuA9i1OiSy3NQpq8VwBG+u/0iC7PQ
+    sQjxSragQu25sfATYIrFJQ4ZCvh0nxqKMeyPPBi6dAcMpa2AZAqtqv+CwWdo36Bt
+    S5XiC7rApgYn+yteKQHSbnCiG2W/boSbfg9lRk3w41dESENCADVajLb3Eovvp0tB
+    O/BALudvWjzAPbpXleVNr6ngWtGlsZTC7LXDgBqdW2KlzpZGcz+PW3ATlwip/ZFR
+    t7A15u5dVkWPVoPuQ0w1Tw+g9dxWFTNk3h+2d7K87IxQbcvqxeIDSEVFMrxo0e4C
+    G2udMcelZwARl6iNTAETa2zJW0XtAdGVM+HY1S/kU6U9J3nubDttAkAMABjPwyjL
+    G7hfyWqUHf9yPs49GsftAVvIy8XIeu0shD1BG11/VzvwpUCiRc+btuWi2erZ4ZfP
+    oQ5YoS9gt4S+Ipz7TPGBl+AUk9HO2QIDAQABAoICAGW+aLAXxc2GZUVHQp4r55Md
+    T94kYtQgL4435bafGwH8vchiQzcfazxiweRFqwl0TMS8fzE5xyYPDilLpfsStoTU
+    U1sFzVfuWviuWTY9P+/ctjZdgs2F+GtAm/CMzw+h9/9IdWbuQI3APO4SJxyjJw7h
+    kiZbCzXT2uAjybFXBq07GyQ1JSEszGzmhHLB1OoKuL2wcrj9IyFHhNZhtvLCWCoV
+    qotttjuI/xyg5VFYt5TRzEpPIu5a1pvDAYVK0XI9cXKtbLYp7RlveqMOgAaD+S2a
+    ZQTV60JH9n4j18p+sKR00SxvZ4vuyXzDePRBDUolGIy9MIJdiLueTiuzDmTmclnM
+    8Yy7oliawW2Bn+1gaWpqmgzEUw9bXRSqIp2zGZ7HaQ+5c/MhS002+/i8WQyssfeg
+    9EfI+Vl0D2avTxCECmsfjUxtkhzMYPVNbRPjt0QBEM+s8lDoNsP2zhMO441+TKpe
+    /5KZHIW+Y0US6GMIUs1o1byKfNz8Nj5HjEKO9CMyK6SBMJnCMroPD4H6opqk3lw9
+    4mk04BdN556EzyJDT0a5/VpXG2DUYwFaNwE1ZPMu3Yx6IBoM1xx8mR80vHQCddmF
+    NP+BzkpUiHf0Txyy0YQWECZ/anTt0Bo0XqY5tirIM2dkG0ngNl9tGlw6gVAY1ky8
+    +cr7qKmhhwMWojaX/L+9AoIBAQD/BZAeF3l9I5RBh6ktWA+opzVyd6ejdLpc2Q1z
+    fmSmtUKRsEe51sWaIf6Sez408UaCMT2IQuppPgMnV8xfMM1/og75Cs8aPyAohwKo
+    IbOenXhLfFZiYB4y/Pac3F+FzNKsTT6n+fsE+82UHafY5ZI2FlPb2L0lfyx09zXv
+    fBYhcXgwSx5ymJLJSl8zFaEGn9qi3UB5ss44SaNM0n8SFGUQUk3PR7SFWSWgNxtl
+    CP7LWTsjXYoC/qBMe7b8JieK5aFk1EkkG1EkJvdiMnulMcMJzl+kj6LqVPmVDoZS
+    mMGvgKGJPpFgrbJ5wlA7uOhucGmMpFWP9RCav66DY4GHrLJPAoIBAQDerkZQ03AN
+    i2iJVjtL97TvDjrE8vtNFS/Auh8JyDIW4GGK3Y/ZoMedQpuu3e6NYM9aMjh+QJoA
+    kqhaiZ/tMXjEXJByglpc3a43g2ceWtJg5yLgexGgRtegbA57PRCo35Vhc6WycD1l
+    6FZNxpTkd2BXX/69KWZ6PpSiLYPvdzxP5ZkYqoWRQIa4ee4orHfz/lUXJm1XwmyG
+    mx3hN9Z9m8Q/PGMGfwrorcp4DK53lmmhTZyPh+X5T5/KkVmrw/v5HEEB3JsknStR
+    3DAqp2XZcRHsGQef9R7H+PINJm9nebjCraataaE4gr76znXKT23P80Ce5Lw6OQUW
+    XHhoL16gS+pXAoIBADTuz6ofTz01PFmZsfjSdXWZN1PKGEaqPOB2wP7+9h9QMkAR
+    KeId/Sfv9GotII1Woz70v4Pf983ebEMnSyla9NyQI7F3l+MnxSIEW/3P+PtsTgLF
+    DR0gPERzEzEd4Mnh6LyQz/eHwJ2ZMmOTADrZ8848Ni3EwAXfbrfcdBqAVAufBMZp
+    YSmCF72mLTpqO+EnHvd9GxvnjDxMtJOGgY+cIhoQK0xh4stm5JNrvMjs5A4LOGYv
+    zSyv80/Mwf92X/DJlwVZttDCxsXNPL3qIpX4TTZk2p9KnRMsjh1tRV4xjMpD1cOp
+    8/zwMMJrHcI3sC70MERb+9KEmGy2ap+k8MbbhqsCggEAUAqqocDupR+4Kq2BUPQv
+    6EHgJA0HAZUc/hSotXZtcsWiqiyr2Vkuhzt7BGcnqU/kGJK2tcL42D3fH/QaNUM0
+    Grj+/voWCw1v4uprtYCF4GkUo0X5dvgf570Pk4LGqzz6z/Wm2LX5i9jwtLItsNWs
+    HpwVz97CxCwcdxMPOpNMbZek6TXaHvTnuAWz8pDT6TNBWLnqUcJECjpVii/s/Gdy
+    KhzFp38g57QYdABy8e9x9pYUMY9yvaO+VyzZ46DlwIxEXavzZDzOZnVUJvDW7krz
+    Wz8/+2I7dzvnnYx0POiG3gtXPzwZxFtS1IpD0r2sRjQ0xSiI9BCs4HXKngBw7gN7
+    rwKCAQEAloJOFw4bafVXZVXuQVnLDm0/MNTfqxUzFE6V2WkMVkJqcpKt+ndApM8P
+    MJvojHWw1fmxDzIAwqZ9rXgnwWKydjSZBDYNjhGFUACVywHe5AjC4PPMUdltGptU
+    lY0BjC7qtwkVugr65goQkEzU61y9JgTqKpYsr3D+qXcoiDvWRuqk5Q0WfYJrUlE0
+    APWaqbxmkqUVDRrXXrifiluupk+BCV7cFSnnknSYbd9FZd9DuKaoNBlkp2J9LZE+
+    Ux74Cfro8SHINHmvqL+YLFUPVDWNeuXh5Kl6AaJ7yclCLXLxAIix3/rIf6mJeIGc
+    s9o9Sr49cibZ3CbMjCSNE3AOeVE1/Q==
     -----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
+    MIIFDzCCAvegAwIBAgIUX0P6NfX4gRUpFz+TNV/f26GHokgwDQYJKoZIhvcNAQEL
+    BQAwFjEUMBIGA1UEAwwLU25ha2VvaWwgQ0EwIBcNMjAwODI0MDc0MjEyWhgPMjEy
+    MDA3MzEwNzQyMTJaMBYxFDASBgNVBAMMC1NuYWtlb2lsIENBMIICIjANBgkqhkiG
+    9w0BAQEFAAOCAg8AMIICCgKCAgEA3dRuzhaVyKB5668XcPoYiVQ2Op0AwyhbfRQS
+    sJb+8doQr1+258rx2i+x+tXPvNDHBjyEq0J9/jI7kWbqsGsePQ3XTV2xreFqhpce
+    CwHiN+zoDVFM/X6Da9qww1e+OL8KdePzw9X956qVnzoM87IfK8WnNJmeUnvR8TiK
+    SOzUTbhyY4+x1meGMXjr4tvPa5qbtCT3KduZ48O4ehTXx7vBhqd+FI+sAMbm3Ucn
+    1YlfM/RTH24JS7gPYtTokstzUKavFcARvrv9Iguz0LEI8Uq2oELtubHwE2CKxSUO
+    GQr4dJ8aijHsjzwYunQHDKWtgGQKrar/gsFnaN+gbUuV4gu6wKYGJ/srXikB0m5w
+    ohtlv26Em34PZUZN8ONXREhDQgA1Woy29xKL76dLQTvwQC7nb1o8wD26V5XlTa+p
+    4FrRpbGUwuy1w4AanVtipc6WRnM/j1twE5cIqf2RUbewNebuXVZFj1aD7kNMNU8P
+    oPXcVhUzZN4ftneyvOyMUG3L6sXiA0hFRTK8aNHuAhtrnTHHpWcAEZeojUwBE2ts
+    yVtF7QHRlTPh2NUv5FOlPSd57mw7bQJADAAYz8Moyxu4X8lqlB3/cj7OPRrH7QFb
+    yMvFyHrtLIQ9QRtdf1c78KVAokXPm7blotnq2eGXz6EOWKEvYLeEviKc+0zxgZfg
+    FJPRztkCAwEAAaNTMFEwHQYDVR0OBBYEFNhBZxryvykCjfPO85xB3wof2enAMB8G
+    A1UdIwQYMBaAFNhBZxryvykCjfPO85xB3wof2enAMA8GA1UdEwEB/wQFMAMBAf8w
+    DQYJKoZIhvcNAQELBQADggIBAEZwlsQ+3yd1MVxLRy9RjoA8hI7iWBNmvPUyNjlb
+    l/L9N+dZgdx9G5h/KPRUyzvUc/uk/ZxTWVPIOp13WI65qwsBKrwvYKiXiwzjt+9V
+    CKDRc1sOghTSXk4FD3L5UcKvTQ2lRcFsqxbkopEwQWhoCuhe4vFyt3Nx8ZGLCBUD
+    3I5zMHtO8FtpZWKJPw46Yc1kasv0nlfly/vUbnErYfgjWX1hgWUcRgYdKwO4sOZ7
+    KbNma0WUsX5mWhXo4Kk7D15wATHO+j9s+j8m86duBL3A4HzpTo1DhHvBi0dkg0CO
+    XuSdByIzVLIPh3yhCHN1loRCP2rbzKM8IQeU/X5Q4UJeC/x9ew8Kk+RKXoHc8Y2C
+    JQO1DxuidyDJRhbb98wZo2YfIsdWQGjYZBe1XQRwBD28JnB+Rb9shml6lORWQn9y
+    P/STo9uWm5zvOCfqwbnCoetljDweItINx622G9SafBwPZc3o79oL7QSl8DgCtN6g
+    p0wGIlIBx+25w/96PqZcrYb8B7/uBHJviiKjBXDoIJWNiNRhW5HaFjeJdSKq7KIL
+    I/PO9KuHafif36ksG69X02Rio2/cTjgjEW1hGHcDRyyJWWaj7bd2eWuouh6FF22b
+    PA6FGY4vewDPnbLKLaix2ZIKxtedUDOH/qru3Mv58IFXmQ4iyM8oC8aOxYSQLZDn
+    1yJD
     -----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=
+    MIIJKgIBAAKCAgEA3dJl4ByHHRcqbZzblszHIS5eEW3TcXTvllqC1nedGLGU9dnA
+    YbdpDUYhvWz/y9AfRZ1d8jYz01jZtt5xWYG0QoQUdkCc9QPPh0Axrl38cGliB6IZ
+    IY0qftW9zrLSgCOUnXL/45JqSpD57DHMSSiJl3hoOo4keBaMRN/UK6F3DxD/nZEs
+    h+yBBh2js3qxleExqkX8InmjK9pG8j7qa4Be5Lh4iILBHbGAMaxM7ViNAg4KgWyg
+    d5+4qB86JFtE/cJ+r3D62ARjVaxU6ePOL0AwS/vx5ls6DFQC7+1CpGCNemgLPzcc
+    70s0V0SAnF73xHYqRWjJFtumyvyTkiQWLg0zDQOugWd3B9ADuaIEx2nviPyphAtj
+    M3ZKrL2zN1aIfqzbxJ/L8TQFa2WPsPU2+iza/m9kMfLXZ4XPF/SJxQ+5yVH+rxx5
+    OWrXZ13nCMyeVoaXQofmG7oZvOQbtuT9r5DQZd9WN0P3G3sy0/dNnlNVn8uCBvXJ
+    TQhRKsy1FESZdgcFNtpJEG7BRG9Gc6i0V39aSRzShZyKJSBQhlc0FMTlX445EYsh
+    PKjEC/+Suq9wy/LuLjIkkqBbVg4617IlibLz0fDY/yrZqkfSqhCVsWnra21Ty3Mp
+    vD+wnskTzuGrvCVTe3KcWp+wkeH0xvhr8FXX6nn492YCfvZSITO3FF+qWt8CAwEA
+    AQKCAgEAk2xV0NCk66yNwjPRrTOD1IWgdyzqrijtYpvdAPSWL+c1/P8vYMIoy22k
+    1uQuTSKQ5g9kdKmZYAlZCLRl2Pre9qYZg04GAsD5mAYN/rjwITWotTICSc4sRAeC
+    EnG+fPMovkvDzVdt1QjtURD3mFeculKH0wLNMhKqPswTkrvJCPZfLDVjxyJjzdC9
+    D3enttjnzSaeH7t/upFjPXSbD79NUe1YDkH4XuetL1Y3+jYz4P279bBgJaC9dN7s
+    IWWXQJ+W2rrXu+GOs03JUXjZe4XJk3ZqmpJezfq3yQWCmQSigovLjcPvMwpkSut4
+    HnTvbl6qUV8G5m4tOBMNcL8TDqAvIGY8Q2NAT0iKJN187FbHpjSwQL/Ckgqz/taJ
+    Q82LfIA1+IjwW372gY2Wge8tM/s3+2vOEn2k91sYfiKtrRFfrHBurehVQSpJb2gL
+    YPoUhUGu4C1nx44sQw+DgugOBp1BTKA1ZOBIk6NyS/J9sU3jSgMr88n10TyepP6w
+    OVk9kcNomnm/QIOyTDW4m76uoaxslg7kwOJ4j6wycddS8JtvEO4ZPk/fHZCbvlMv
+    /dAKsC3gigO2zW6IYYb7mSXI07Ew/rFH1NfSILiGw8GofJHDq3plGHZo9ycB6JC+
+    9C8n9IWjn8ahwbulCoQQhdHwXvf61t+RzNFuFiyAT0PF2FtD/eECggEBAPYBNSEY
+    DSQc/Wh+UlnwQsevxfzatohgQgQJRU1ZpbHQrl2uxk1ISEwrfqZwFmFotdjjzSYe
+    e1WQ0uFYtdm1V/QeQK+8W0u7E7/fof4dR6XxrzJ2QmtWEmCnLOBUKCfPc7/4p4IU
+    7Q8PDwuwvXgaASZDaEsyTxL9bBrNMLFx9hIScQ9CaygpKvufilCHG79maoKArLwX
+    s7G16qlT4YeEdiNuLGv0Ce0txJuFYp7cGClWQhruw+jIbr+Sn9pL9cn8GboCiUAq
+    VgZKsofhEkKIEbP1uFypX2JnyRSE/h0qDDcH1sEXjR9zYYpQjVpk3Jiipgw4PXis
+    79uat5/QzUqVc1sCggEBAObVp686K9NpxYNoEliMijIdzFnK5J/TvoX9BBMz0dXc
+    CgQW40tBcroU5nRl3oCjT1Agn8mxWLXH3czx6cPlSA8fnMTJmev8FaLnEcM15pGI
+    8/VCBbTegdezJ8vPRS/T9c4CViXo7d0qDMkjNyn22ojPPFYh8M1KVNhibDTEpXMQ
+    vJxBJgvHePj+5pMOIKwAvQicqD07fNp6jVPmB/GnprBkjcCQZtshNJzWrW3jk7Fr
+    xWpQJ8nam8wHdMvfKhpzvD6azahwmfKKaQmh/RwmH4xdtIKdh4j+u+Ax+Bxi0g7V
+    GQfusIFB1MO48yS6E56WZMmsPy+jhTcIB4prIbfu4c0CggEBALgqqUKwRc4+Ybvj
+    rfUk+GmT/s3QUwx/u4xYAGjq7y/SgWcjG9PphC559WPWz/p2sITB7ehWs5CYTjdj
+    +SgWKdVY/KZThamJUTy4yAZ8lxH1gGpvvEOs+S8gmGkMt88t8ILMPWMWFW7LoEDp
+    PL74ANpLZn29GROnY1IhQQ3mughHhBqfZ6d2QnaDtsGYlD5TBvPSLv7VY7Jr9VR0
+    toeEtAjMRzc+SFwmgmTHk9BIB1KTAAQ3sbTIsJh8xW1gpo5jTEND+Mpvp10oeMVe
+    yxPB2Db4gt/j8MOz3QaelbrxqplcJfsCjaT49RHeQiRlE/y070iApgx8s0idaFCd
+    ucLXZbcCggEBANkcsdg9RYVWoeCj3UWOAll6736xN/IgDb4mqVOKVN3qVT1dbbGV
+    wFvHVq66NdoWQH4kAUaKWN65OyQNkQqgt/MJj8EDwZNVCeCrp2hNZS0TfCn9TDK/
+    aa7AojivHesLWNHIHtEPUdLIPzhbuAHvXcJ58M0upTfhpwXTJOVI5Dji0BPDrw47
+    Msw3rBU6n35IP4Q/HHpjXl58EDuOS4B+aGjWWwF4kFWg2MR/oqWN/JdOv2LsO1A/
+    HnR7ut4aa5ZvrunPXooERrf6eSsHQnLcZKX4aNTFZ/pxZbJMLYo9ZEdxJVbxqPAa
+    RA1HAuJTZiquV+Pb755WFfEZy0Xk19URiS0CggEAPT1e+9sdNC15z79SxvJQ4pmT
+    xiXat+1pq9pxp5HEOre2sSAd7CF5lu/1VQd6p0gtLZY+Aw4BXOyMtzYWgIap+u9j
+    ThFl9qrTFppG5KlFKKpQ8dQQ8ofO1akS8cK8nQeSdvrqEC/kGT2rmVdeevhBlfGy
+    BZi2ikhEQrz5jsLgIdT7sN2aLFYtmzLU9THTvlfm4ckQ7jOTxvVahb+WRe/iMCwP
+    Exrb83JDo31jHvAoYqUFrZkmPA+DUWFlrqb21pCzmC/0iQSuDcayRRjZkY/s5iAh
+    gtI6YyAsSL8hKvFVCC+VJf1QvFOpgUfsZjrIZuSc3puBWtN2dirHf7EfyxgEOg==
     -----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==
+    MIIEwDCCAqigAwIBAgICApowDQYJKoZIhvcNAQELBQAwFjEUMBIGA1UEAwwLU25h
+    a2VvaWwgQ0EwIBcNMjAwODI0MDc0MjEzWhgPMjEyMDA3MzEwNzQyMTNaMBQxEjAQ
+    BgNVBAMMCWFjbWUudGVzdDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
+    AN3SZeAchx0XKm2c25bMxyEuXhFt03F075ZagtZ3nRixlPXZwGG3aQ1GIb1s/8vQ
+    H0WdXfI2M9NY2bbecVmBtEKEFHZAnPUDz4dAMa5d/HBpYgeiGSGNKn7Vvc6y0oAj
+    lJ1y/+OSakqQ+ewxzEkoiZd4aDqOJHgWjETf1Cuhdw8Q/52RLIfsgQYdo7N6sZXh
+    MapF/CJ5oyvaRvI+6muAXuS4eIiCwR2xgDGsTO1YjQIOCoFsoHefuKgfOiRbRP3C
+    fq9w+tgEY1WsVOnjzi9AMEv78eZbOgxUAu/tQqRgjXpoCz83HO9LNFdEgJxe98R2
+    KkVoyRbbpsr8k5IkFi4NMw0DroFndwfQA7miBMdp74j8qYQLYzN2Sqy9szdWiH6s
+    28Sfy/E0BWtlj7D1Nvos2v5vZDHy12eFzxf0icUPuclR/q8ceTlq12dd5wjMnlaG
+    l0KH5hu6GbzkG7bk/a+Q0GXfVjdD9xt7MtP3TZ5TVZ/Lggb1yU0IUSrMtRREmXYH
+    BTbaSRBuwURvRnOotFd/Wkkc0oWciiUgUIZXNBTE5V+OORGLITyoxAv/krqvcMvy
+    7i4yJJKgW1YOOteyJYmy89Hw2P8q2apH0qoQlbFp62ttU8tzKbw/sJ7JE87hq7wl
+    U3tynFqfsJHh9Mb4a/BV1+p5+PdmAn72UiEztxRfqlrfAgMBAAGjGDAWMBQGA1Ud
+    EQQNMAuCCWFjbWUudGVzdDANBgkqhkiG9w0BAQsFAAOCAgEAM5WrCpBOmLrZ1QX8
+    l6vxVXwoI8pnqyy3cbAm3aLRPbw4gb0Ot90Pv/LoMhP0fkrNOKwH/FGRjSXyti0X
+    TheKrP7aEf6XL2/Xnb8rK2jYMQo6YJU9T+wBJA6Q+GBrc8SE75KfOi5NWJr8T4Ju
+    Etb+G05hXClrN19VFzIoz3L4kRV+xNMialcOT3xQfHtXCQUgwAWpPlwcJA/Jf60m
+    XsfwQwk2Ir16wq+Lc3y+mQ7d/dbG+FVrngFk4qN2B9M/Zyv4N9ZBbqeDUn3mYtJE
+    FeJrwHgmwH6slf1gBN3gxUKRW7Bvzxk548NdmLOyN+Y4StsqbOaYGtShUJA7f1Ng
+    qQqdgvxZ9MNwwMv9QVDZEnaaew3/oWOSmQGAai4hrc7gLMLJmIxzgfd5P6Dr06e4
+    2zwsMuI8Qh/IDqu/CfmFYvaua0FEeyAtpoID9Y/KPM7fu9bJuxjZ6kqLVFkEi9nF
+    /rCMchcSA8N2z/vLPabpNotO7OYH3VD7aQGTfCL82dMlp1vwZ39S3Z1TFLLh3MZ+
+    BYcAv8kUvCV6kIdPAXvJRSQOJUlJRV7XiI2mwugdDzMx69wQ0Zc1e4WyGfiSiVYm
+    ckSJ/EkxuwT/ZYLqCAKSFGMlFhad9g1Zyvd67XgfZq5p0pJTtGxtn5j8QHy6PM6m
+    NbjvWnP8lDU8j2l3eSG58S14iGs=
     -----END CERTIFICATE-----
   '';
 }
diff --git a/nixos/tests/krb5/example-config.nix b/nixos/tests/krb5/example-config.nix
index be195b5139352..e2e10a9fda892 100644
--- a/nixos/tests/krb5/example-config.nix
+++ b/nixos/tests/krb5/example-config.nix
@@ -18,7 +18,10 @@ import ../make-test-python.nix ({ pkgs, ...} : {
         realms = {
           "ATHENA.MIT.EDU" = {
             admin_server = "athena.mit.edu";
-            kdc = "athena.mit.edu";
+            kdc = [
+              "athena01.mit.edu"
+              "athena02.mit.edu"
+            ];
           };
         };
         domain_realm = {
@@ -65,7 +68,8 @@ import ../make-test-python.nix ({ pkgs, ...} : {
       [realms]
         ATHENA.MIT.EDU = {
           admin_server = athena.mit.edu
-          kdc = athena.mit.edu
+          kdc = athena01.mit.edu
+          kdc = athena02.mit.edu
         }
 
       [domain_realm]
diff --git a/nixos/tests/robustirc-bridge.nix b/nixos/tests/robustirc-bridge.nix
new file mode 100644
index 0000000000000..a5c22d73a34f3
--- /dev/null
+++ b/nixos/tests/robustirc-bridge.nix
@@ -0,0 +1,29 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+
+{
+  name = "robustirc-bridge";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ hax404 ];
+  };
+
+  nodes =
+    { bridge =
+      { services.robustirc-bridge = {
+          enable = true;
+          extraFlags = [
+            "-listen localhost:6667"
+            "-network example.com"
+          ];
+        };
+      };
+    };
+
+    testScript =
+    ''
+      start_all()
+
+      bridge.wait_for_unit("robustirc-bridge.service")
+      bridge.wait_for_open_port(1080)
+      bridge.wait_for_open_port(6667)
+    '';
+})
diff --git a/pkgs/applications/audio/audacity/default.nix b/pkgs/applications/audio/audacity/default.nix
index 18f2b4f67cdba..20526c8c6c564 100644
--- a/pkgs/applications/audio/audacity/default.nix
+++ b/pkgs/applications/audio/audacity/default.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Sound editor with graphical UI";
-    homepage = "http://audacityteam.org/";
+    homepage = "https://www.audacityteam.org/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ lheckemann ];
     platforms = intersectLists platforms.linux platforms.x86; # fails on ARM
diff --git a/pkgs/applications/audio/bambootracker/default.nix b/pkgs/applications/audio/bambootracker/default.nix
index c74c0ca4eff05..a26431a82edff 100644
--- a/pkgs/applications/audio/bambootracker/default.nix
+++ b/pkgs/applications/audio/bambootracker/default.nix
@@ -1,8 +1,6 @@
 { mkDerivation
 , stdenv
 , fetchFromGitHub
-, fetchpatch
-, installShellFiles
 , qmake
 , qtbase
 , qtmultimedia
@@ -21,26 +19,18 @@ let
 in
 mkDerivation rec {
   pname = "bambootracker";
-  version = "0.4.3";
+  version = "0.4.4";
 
   src = fetchFromGitHub {
     owner = "rerrahkr";
     repo = "BambooTracker";
     rev = "v${version}";
-    sha256 = "0gq40qmsdavsyl2d6a71rwp4mjlwvp1c8bry32srn4hliwfnvqa6";
+    sha256 = "0d0f4jqzknsiq725pvfndarfjg183f92rb0lim3wzshnsixr5vdc";
   };
 
-  # Fix macOS build until new release
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/rerrahkr/BambooTracker/commit/45346ed99559d44c2e32a5c6138a0835b212e875.patch";
-      sha256 = "1xkiqira1kpcqkacycy0y7qm1brhf89amliv42byijl4palmykh2";
-    })
-  ];
+  sourceRoot = "source/BambooTracker";
 
-  preConfigure = "cd BambooTracker";
-
-  nativeBuildInputs = [ qmake qttools installShellFiles ];
+  nativeBuildInputs = [ qmake qttools ];
 
   buildInputs = [ qtbase qtmultimedia ]
     ++ optional alsaSupport alsaLib
@@ -51,17 +41,6 @@ mkDerivation rec {
     ++ optional pulseSupport "CONFIG+=use_pulse"
     ++ optionals jackSupport [ "CONFIG+=use_jack" "CONFIG+=jack_has_rename" ];
 
-  postInstall = ''
-    install -Dm644 ../BambooTracker.desktop $out/share/applications/BambooTracker.desktop
-    installManPage ../BambooTracker*.1
-
-    cp -r ../{demos,licenses,skins,LICENSE} $out/share/BambooTracker/
-
-    for size in 16x16 256x256; do
-      install -Dm644 res/icon/icon_$size.png $out/share/icons/hicolor/$size/apps/BambooTracker.png
-    done
-  '';
-
   meta = with stdenv.lib; {
     description = "A tracker for YM2608 (OPNA) which was used in NEC PC-8801/9801 series computers";
     homepage = "https://github.com/rerrahkr/BambooTracker";
diff --git a/pkgs/applications/audio/bchoppr/default.nix b/pkgs/applications/audio/bchoppr/default.nix
index 1b642e1ed6923..7d4d53408d282 100644
--- a/pkgs/applications/audio/bchoppr/default.nix
+++ b/pkgs/applications/audio/bchoppr/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bchoppr";
-  version = "1.6.4";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner = "sjaehn";
     repo = pname;
     rev = "${version}";
-    sha256 = "16b0sg7q2b8l4y4bp5s3yzsj9j6jayjy2mlvqkby6l7hcgjcj493";
+    sha256 = "1nd6byy75f0rbz9dm9drhxmpsfhxhg0y7q3v2m3098llynhy9k2j";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix b/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
index ee060602c8206..7e5099f3c3188 100644
--- a/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
+++ b/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
@@ -2,11 +2,11 @@
 
 bitwig-studio1.overrideAttrs (oldAttrs: rec {
   name = "bitwig-studio-${version}";
-  version = "3.2.6";
+  version = "3.2.7";
 
   src = fetchurl {
     url = "https://downloads.bitwig.com/stable/${version}/bitwig-studio-${version}.deb";
-    sha256 = "00hrbgnjns3s8lbjbabwwqvbwz4dlrg33cs3d1qlpzgi3y72h3nn";
+    sha256 = "1mj9kii4bnk5w2p18hypwy8swkpzkaqw98q5fsjq362x4qm0b3py";
   };
 
   buildInputs = oldAttrs.buildInputs ++ [ xorg.libXtst ];
diff --git a/pkgs/applications/audio/bjumblr/default.nix b/pkgs/applications/audio/bjumblr/default.nix
index 458fe20937a63..e1a5bee64b305 100644
--- a/pkgs/applications/audio/bjumblr/default.nix
+++ b/pkgs/applications/audio/bjumblr/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "BJumblr";
-  version = "1.4.0";
+  version = "1.4.2";
 
   src = fetchFromGitHub {
     owner = "sjaehn";
     repo = pname;
     rev = version;
-    sha256 = "03x1gvri9yk000fvvc8zvvywf38cc41vkyhhp9xby71b23n5wbn0";
+    sha256 = "0kl6hrxmqrdf0195bfnzsa2h1073fgiqrfhg2276fm1954sm994v";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/audio/bschaffl/default.nix b/pkgs/applications/audio/bschaffl/default.nix
index de8e55a954535..c0d11e1fe5acc 100644
--- a/pkgs/applications/audio/bschaffl/default.nix
+++ b/pkgs/applications/audio/bschaffl/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bschaffl";
-  version = "0.3";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "sjaehn";
     repo = pname;
     rev = version;
-    sha256 = "1pcch7j1wgsb77mjy58hl3z43p83dv0vcmyh129m9k216b09gy29";
+    sha256 = "1c09acqrbd387ba41f8ch1qykdap5h6cg9if5pgd16i4dmjnpghj";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/audio/csound/default.nix b/pkgs/applications/audio/csound/default.nix
index 944a2d189d774..d91e550334b65 100644
--- a/pkgs/applications/audio/csound/default.nix
+++ b/pkgs/applications/audio/csound/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   # When updating, please check if https://github.com/csound/csound/issues/1078
   # has been fixed in the new version so we can use the normal fluidsynth
   # version and remove fluidsynth 1.x from nixpkgs again.
-  version = "6.14.0";
+  version = "6.15.0";
 
   enableParallelBuilding = true;
 
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     owner = "csound";
     repo = "csound";
     rev = version;
-    sha256 = "1sr9knfhbm2m0wpkjq2l5n471vnl51wy4p6j4m95zqybimzb4s2j";
+    sha256 = "1vld6v55jxvv3ddr21kh41s4cdkhnm5wpffvd097zqrqh1aq08r0";
   };
 
   cmakeFlags = [ "-DBUILD_CSOUND_AC=0" ] # fails to find Score.hpp
diff --git a/pkgs/applications/audio/dragonfly-reverb/default.nix b/pkgs/applications/audio/dragonfly-reverb/default.nix
index b42929ff20405..e5cbcd4a2e206 100644
--- a/pkgs/applications/audio/dragonfly-reverb/default.nix
+++ b/pkgs/applications/audio/dragonfly-reverb/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dragonfly-reverb";
-  version = "3.1.1";
+  version = "3.2.1";
 
   src = fetchFromGitHub {
     owner = "michaelwillis";
     repo = "dragonfly-reverb";
     rev = version;
-    sha256 = "188cm45hr0i33m4h2irql1wrsmsfis65s706wjiid0z59q47rf9p";
+    sha256 = "0vfm2510shah67k87mdyar4wr4vqwii59y9lqfhwm6blxparkrqa";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/audio/fmit/default.nix b/pkgs/applications/audio/fmit/default.nix
index 114cf5e192ff8..f173d2fe02b9b 100644
--- a/pkgs/applications/audio/fmit/default.nix
+++ b/pkgs/applications/audio/fmit/default.nix
@@ -11,13 +11,13 @@ with stdenv.lib;
 
 mkDerivation rec {
   pname = "fmit";
-  version = "1.2.13";
+  version = "1.2.14";
 
   src = fetchFromGitHub {
     owner = "gillesdegottex";
     repo = "fmit";
     rev = "v${version}";
-    sha256 = "1qyskam053pvlap1av80rgp12pzhr92rs88vqs6s0ia3ypnixcc6";
+    sha256 = "1q062pfwz2vr9hbfn29fv54ip3jqfd9r99nhpr8w7mn1csy38azx";
   };
 
   nativeBuildInputs = [ qmake itstool wrapQtAppsHook ];
diff --git a/pkgs/applications/audio/geonkick/default.nix b/pkgs/applications/audio/geonkick/default.nix
index c2dc39fe610f8..dcfb54260343e 100644
--- a/pkgs/applications/audio/geonkick/default.nix
+++ b/pkgs/applications/audio/geonkick/default.nix
@@ -2,20 +2,21 @@
 
 stdenv.mkDerivation rec {
   pname = "geonkick";
-  version = "2.3.3";
+  version = "2.3.7";
 
   src = fetchFromGitLab {
     owner = "iurie-sw";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0h1abb6q2bmi01a3v37adkc4zc03j47jpvffz8p2lpp33xhljghs";
+    sha256 = "1wdcbwiyy6i5agq5lffkyilyc8mv1cc4mp9h0nybn240vb2flqc2";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
 
   buildInputs = [ redkite libsndfile rapidjson libjack2 lv2 libX11 cairo ];
 
-  cmakeFlags = [ "-DGKICK_REDKITE_SDK_PATH=${redkite}" ];
+  # 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";
diff --git a/pkgs/applications/audio/hydrogen/0.nix b/pkgs/applications/audio/hydrogen/0.nix
new file mode 100644
index 0000000000000..b3aff4e4c5091
--- /dev/null
+++ b/pkgs/applications/audio/hydrogen/0.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, pkgconfig, cmake
+, alsaLib, boost, glib, lash, libjack2, libarchive, libsndfile, lrdf, qt4
+}:
+
+stdenv.mkDerivation rec {
+  version = "0.9.7";
+  pname = "hydrogen";
+
+  src = fetchurl {
+    url = "https://github.com/hydrogen-music/hydrogen/archive/${version}.tar.gz";
+    sha256 = "1dy2jfkdw0nchars4xi4isrz66fqn53a9qk13bqza7lhmsg3s3qy";
+  };
+
+  nativeBuildInputs = [ pkgconfig cmake ];
+  buildInputs = [
+    alsaLib boost glib lash libjack2 libarchive libsndfile lrdf qt4
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Advanced drum machine";
+    homepage = "http://www.hydrogen-music.org";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.goibhniu ];
+  };
+}
diff --git a/pkgs/applications/audio/hydrogen/default.nix b/pkgs/applications/audio/hydrogen/default.nix
index b3aff4e4c5091..c6d307e2c163d 100644
--- a/pkgs/applications/audio/hydrogen/default.nix
+++ b/pkgs/applications/audio/hydrogen/default.nix
@@ -1,19 +1,27 @@
-{ stdenv, fetchurl, pkgconfig, cmake
-, alsaLib, boost, glib, lash, libjack2, libarchive, libsndfile, lrdf, qt4
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, wrapQtAppsHook
+, alsaLib, ladspa-sdk, lash, libarchive, libjack2, liblo, libpulseaudio, libsndfile, lrdf
+, qtbase, qttools, qtxmlpatterns
 }:
 
 stdenv.mkDerivation rec {
-  version = "0.9.7";
   pname = "hydrogen";
+  version = "1.0.1";
 
-  src = fetchurl {
-    url = "https://github.com/hydrogen-music/hydrogen/archive/${version}.tar.gz";
-    sha256 = "1dy2jfkdw0nchars4xi4isrz66fqn53a9qk13bqza7lhmsg3s3qy";
+  src = fetchFromGitHub {
+    owner = "hydrogen-music";
+    repo = pname;
+    rev = version;
+    sha256 = "0snljpvbcgikhz610c325dgvayi0k512p3bglck9vvi90wsqx7l1";
   };
 
-  nativeBuildInputs = [ pkgconfig cmake ];
+  nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ];
   buildInputs = [
-    alsaLib boost glib lash libjack2 libarchive libsndfile lrdf qt4
+    alsaLib ladspa-sdk lash libarchive libjack2 liblo libpulseaudio libsndfile lrdf
+    qtbase qttools qtxmlpatterns
+  ];
+
+  cmakeFlags = [
+    "-DWANT_DEBUG=OFF"
   ];
 
   meta = with stdenv.lib; {
@@ -21,6 +29,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.hydrogen-music.org";
     license = licenses.gpl2;
     platforms = platforms.linux;
-    maintainers = [ maintainers.goibhniu ];
+    maintainers = with maintainers; [ goibhniu orivej ];
   };
 }
diff --git a/pkgs/applications/audio/hydrogen/unstable.nix b/pkgs/applications/audio/hydrogen/unstable.nix
deleted file mode 100644
index 2f220f8d31aac..0000000000000
--- a/pkgs/applications/audio/hydrogen/unstable.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ stdenv, fetchFromGitHub, cmake, pkgconfig, wrapQtAppsHook
-, alsaLib, ladspa-sdk, lash, libarchive, libjack2, liblo, libpulseaudio, libsndfile, lrdf
-, qtbase, qttools, qtxmlpatterns
-}:
-
-stdenv.mkDerivation rec {
-  pname = "hydrogen";
-  version = "1.0.0-beta2";
-
-  src = fetchFromGitHub {
-    owner = "hydrogen-music";
-    repo = pname;
-    rev = version;
-    sha256 = "1s3jrdyjpm92flw9mkkxchnj0wz8nn1y1kifii8ws252iiqjya4a";
-  };
-
-  nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ];
-  buildInputs = [
-    alsaLib ladspa-sdk lash libarchive libjack2 liblo libpulseaudio libsndfile lrdf
-    qtbase qttools qtxmlpatterns
-  ];
-
-  cmakeFlags = [
-    "-DWANT_DEBUG=OFF"
-  ];
-
-  meta = with stdenv.lib; {
-    description = "Advanced drum machine";
-    homepage = "http://www.hydrogen-music.org";
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ goibhniu orivej ];
-  };
-}
diff --git a/pkgs/applications/audio/lingot/default.nix b/pkgs/applications/audio/lingot/default.nix
index 256f5766c4108..f229e15871e69 100644
--- a/pkgs/applications/audio/lingot/default.nix
+++ b/pkgs/applications/audio/lingot/default.nix
@@ -5,8 +5,10 @@
 , gtk3
 , wrapGAppsHook
 , alsaLib
+, libjack2
 , libpulseaudio
 , fftw
+, jackSupport ? true
 }:
 
 stdenv.mkDerivation rec {
@@ -29,11 +31,9 @@ stdenv.mkDerivation rec {
     alsaLib
     libpulseaudio
     fftw
-  ];
+  ] ++ stdenv.lib.optional jackSupport libjack2;
 
-  configureFlags = [
-    "--disable-jack"
-  ];
+  configureFlags = stdenv.lib.optional (!jackSupport) "--disable-jack";
 
   meta = {
     description = "Not a Guitar-Only tuner";
diff --git a/pkgs/applications/audio/ncspot/default.nix b/pkgs/applications/audio/ncspot/default.nix
index 90dc4e6db3303..2fcbf82107d60 100644
--- a/pkgs/applications/audio/ncspot/default.nix
+++ b/pkgs/applications/audio/ncspot/default.nix
@@ -14,16 +14,16 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "ncspot";
-  version = "0.2.1";
+  version = "0.2.2";
 
   src = fetchFromGitHub {
     owner = "hrkfdn";
     repo = "ncspot";
     rev = "v${version}";
-    sha256 = "1yx0fc24bgh1x6fdwznc1hqvjq0j7i0zvws3bsyijzs7q48jm0z7";
+    sha256 = "1i17pidw2hylijwfn96f2bnswfxxwdln2ydsq8b1q4hfzfbxlfk2";
   };
 
-  cargoSha256 = "0bh2shg80xbs2cw10dabrdxkvhf2csk5h9wmmk5z87q6w25paz1f";
+  cargoSha256 = "1cpy4wrj9dz2crva4p18f8hzym73x4m2mcfds4ppri4ir7qg29dr";
 
   cargoBuildFlags = [ "--no-default-features" "--features" "${lib.concatStringsSep "," features}" ];
 
diff --git a/pkgs/applications/audio/netease-cloud-music/default.nix b/pkgs/applications/audio/netease-cloud-music/default.nix
deleted file mode 100644
index c4cc291d026c9..0000000000000
--- a/pkgs/applications/audio/netease-cloud-music/default.nix
+++ /dev/null
@@ -1,81 +0,0 @@
-{ stdenv, lib, fontconfig, zlib, libGL, glib, pango
-, gdk-pixbuf, freetype, atk, cairo, libsForQt5, xorg
-, sqlite, taglib, nss, nspr, cups, dbus, alsaLib
-, libpulseaudio, deepin, qt5, harfbuzz, p11-kit
-, libgpgerror, libudev0-shim, makeWrapper, dpkg, fetchurl }:
-let
-  rpath = lib.makeLibraryPath [
-    fontconfig.lib
-    zlib
-    stdenv.cc.cc.lib
-    libGL
-    glib
-    pango
-    gdk-pixbuf
-    freetype
-    atk
-    cairo
-    libsForQt5.vlc
-    sqlite
-    taglib
-    nss
-    nspr
-    cups.lib
-    dbus.lib
-    alsaLib
-    libpulseaudio
-    xorg.libX11
-    xorg.libXext
-    xorg.libXtst
-    xorg.libXdamage
-    xorg.libXScrnSaver
-    xorg.libxcb
-    xorg.libXi
-    deepin.qcef
-    qt5.qtwebchannel
-    qt5.qtbase
-    qt5.qtx11extras
-    qt5.qtdeclarative
-    harfbuzz
-    p11-kit
-    libgpgerror
-  ];   
-
-  runtimeLibs = lib.makeLibraryPath [ libudev0-shim ];
-
-in stdenv.mkDerivation rec {
-  pname = "netease-cloud-music";
-  version = "1.2.0";
-  src = fetchurl {
-    url    = "http://d1.music.126.net/dmusic/netease-cloud-music_1.2.0_amd64_deepin_stable_20190424.deb";
-    sha256 = "0hg8jqim77vd0fmk8gfbz2fmlj99byxcm9jn70xf7vk1sy7wp6h1";
-    curlOpts = "-A 'Mozilla/5.0'";
-  };
-  unpackCmd = "${dpkg}/bin/dpkg -x $src .";
-  sourceRoot = ".";
-
-  nativeBuildInputs = [ qt5.wrapQtAppsHook makeWrapper ];
-
-  installPhase = ''
-    mkdir -p $out
-    cp -r usr/* $out
-  '';
-
-  preFixup = ''
-    local exefile="$out/bin/netease-cloud-music"
-    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$exefile"
-    patchelf --set-rpath "$out/libs:$(patchelf --print-rpath "$exefile"):${rpath}" "$exefile"
-
-    wrapProgram $out/bin/netease-cloud-music \
-      --prefix LD_LIBRARY_PATH : "${runtimeLibs}" \
-      --set QCEF_INSTALL_PATH "${deepin.qcef}/lib/qcef"
-  '';
-
-  meta = {
-    description = "Client for Netease Cloud Music service";
-    homepage = "https://music.163.com";
-    platforms = [ "i686-linux" "x86_64-linux" ];
-    maintainers = [ stdenv.lib.maintainers.mlatus ];
-    license = stdenv.lib.licenses.unfreeRedistributable;
-  };
-}
diff --git a/pkgs/applications/audio/puddletag/default.nix b/pkgs/applications/audio/puddletag/default.nix
index a0813fa0c8018..47ea078c4b2d2 100644
--- a/pkgs/applications/audio/puddletag/default.nix
+++ b/pkgs/applications/audio/puddletag/default.nix
@@ -1,37 +1,34 @@
-{ stdenv, fetchFromGitHub, python2Packages, chromaprint }:
+{ stdenv, fetchFromGitHub, python3Packages, chromaprint }:
 
-python2Packages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "puddletag";
-  version = "1.2.0";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
-    owner  = "keithgg";
-    repo   = "puddletag";
-    rev    = "v${version}";
-    sha256 = "1g6wa91awy17z5b704yi9kfynnvfm9lkrvpfvwccscr1h8s3qmiz";
+    owner = "keithgg";
+    repo = "puddletag";
+    rev = version;
+    sha256 = "sha256-9l8Pc77MX5zFkOqU00HFS8//3Bzd2OMnVV1brmWsNAQ=";
   };
 
-  setSourceRoot = ''
-    sourceRoot=$(echo */source)
-  '';
+  sourceRoot = "source/source";
 
-  disabled = python2Packages.isPy3k; # work to support python 3 has not begun
-
-  propagatedBuildInputs = [ chromaprint ] ++ (with python2Packages; [
+  propagatedBuildInputs = [ chromaprint ] ++ (with python3Packages; [
     configobj
     mutagen
     pyparsing
-    pyqt4
+    pyqt5
   ]);
 
   doCheck = false;   # there are no tests
+
   dontStrip = true;  # we are not generating any binaries
 
   meta = with stdenv.lib; {
     description = "An audio tag editor similar to the Windows program, Mp3tag";
-    homepage    = "https://docs.puddletag.net";
-    license     = licenses.gpl3;
+    homepage = "https://docs.puddletag.net";
+    license = licenses.gpl3;
     maintainers = with maintainers; [ peterhoeg ];
-    platforms   = platforms.linux;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/audio/qjackctl/default.nix b/pkgs/applications/audio/qjackctl/default.nix
index 87666940c151d..8cb28dcfd5af4 100644
--- a/pkgs/applications/audio/qjackctl/default.nix
+++ b/pkgs/applications/audio/qjackctl/default.nix
@@ -1,14 +1,14 @@
 { stdenv, mkDerivation, fetchurl, pkgconfig, alsaLib, libjack2, dbus, qtbase, qttools, qtx11extras }:
 
 mkDerivation rec {
-  version = "0.6.2";
+  version = "0.6.3";
   pname = "qjackctl";
 
   # some dependencies such as killall have to be installed additionally
 
   src = fetchurl {
     url = "mirror://sourceforge/qjackctl/${pname}-${version}.tar.gz";
-    sha256 = "1rjhdyp0wzhlqr4cn80rh1qhby998cpqv81j1bbb9hfsiq77viqy";
+    sha256 = "0zbb4jlx56qvcqyhx34mbagkqf3wbxgj84hk0ppf5cmcrxv67d4x";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/audio/qsynth/default.nix b/pkgs/applications/audio/qsynth/default.nix
index 5da8f4cd46264..af59bb56eb9ab 100644
--- a/pkgs/applications/audio/qsynth/default.nix
+++ b/pkgs/applications/audio/qsynth/default.nix
@@ -4,11 +4,11 @@
 
 mkDerivation  rec {
   pname = "qsynth";
-  version = "0.6.2";
+  version = "0.6.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/qsynth/${pname}-${version}.tar.gz";
-    sha256 = "0cp6vrqrj37rv3a7qfvqrg64j7zwpfj60y5b83mlkzvmg1sgjnlv";
+    sha256 = "0xiqmpzpxjvh32vivfj6h33w0ahmyfjzjb41b6fnf92bbg9k6mqv";
   };
 
   nativeBuildInputs = [ autoconf pkgconfig ];
diff --git a/pkgs/applications/audio/renoise/default.nix b/pkgs/applications/audio/renoise/default.nix
index 1cbd5b3afa28f..0ae65cb8c3737 100644
--- a/pkgs/applications/audio/renoise/default.nix
+++ b/pkgs/applications/audio/renoise/default.nix
@@ -14,7 +14,7 @@ in
 
 stdenv.mkDerivation rec {
   pname = "renoise";
-  version = "3.2.1";
+  version = "3.2.2";
 
   src =
     if stdenv.hostPlatform.system == "x86_64-linux" then
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 		          "https://files.renoise.com/demo/Renoise_${urlVersion version}_Demo_Linux.tar.gz"
 		          "https://web.archive.org/web/https://files.renoise.com/demo/Renoise_${urlVersion version}_Demo_Linux.tar.gz"
 		      ];
-		      sha256 = "0dhcidgnjzd4abw0xw1waj9mazp03nbvjcr2xx09l8gnfrkvny46";
+		      sha256 = "1v249kmyidx55kppk3sry7yg6hl1a91ixhnwz36h4y134fs7bkrl";
 		    }
         else
         	releasePath
diff --git a/pkgs/applications/audio/surge/default.nix b/pkgs/applications/audio/surge/default.nix
new file mode 100644
index 0000000000000..1614bbfae6678
--- /dev/null
+++ b/pkgs/applications/audio/surge/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, cmake, git, pkg-config, python3
+, cairo, libsndfile, libxcb, libxkbcommon, xcbutil, xcbutilcursor, xcbutilkeysyms, zenity
+}:
+
+stdenv.mkDerivation rec {
+  pname = "surge";
+  version = "1.7.1";
+
+  src = fetchFromGitHub {
+    owner = "surge-synthesizer";
+    repo = pname;
+    rev = "release_${version}";
+    sha256 = "1b3ccc78vrpzy18w7070zfa250dnd1bww147xxcnj457vd6n065s";
+    leaveDotGit = true; # for SURGE_VERSION
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ cmake git pkg-config python3 ];
+  buildInputs = [ cairo libsndfile libxcb libxkbcommon xcbutil xcbutilcursor xcbutilkeysyms zenity ];
+
+  postPatch = ''
+    substituteInPlace src/common/SurgeStorage.cpp --replace "/usr/share/Surge" "$out/share/surge"
+    substituteInPlace src/common/gui/PopupEditorDialog.cpp --replace '"zenity' '"${zenity}/bin/zenity'
+    substituteInPlace src/linux/UserInteractionsLinux.cpp --replace '"zenity' '"${zenity}/bin/zenity'
+    substituteInPlace vstgui.surge/vstgui/lib/platform/linux/x11fileselector.cpp --replace /usr/bin/zenity ${zenity}/bin/zenity
+  '';
+
+  installPhase = ''
+    mkdir -p $out/lib/lv2 $out/lib/vst3 $out/share/surge
+    cp -r surge_products/Surge.lv2 $out/lib/lv2/
+    cp -r surge_products/Surge.vst3 $out/lib/vst3/
+    cp -r ../resources/data/* $out/share/surge/
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    cd ..
+    build/surge-headless
+  '';
+
+  meta = with stdenv.lib; {
+    description = "LV2 & VST3 synthesizer plug-in (previously released as Vember Audio Surge)";
+    homepage = "https://surge-synthesizer.github.io";
+    license = licenses.gpl3;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ magnetophon orivej ];
+  };
+}
diff --git a/pkgs/applications/audio/synthv1/default.nix b/pkgs/applications/audio/synthv1/default.nix
index c7e936d28e508..74f68283fd60d 100644
--- a/pkgs/applications/audio/synthv1/default.nix
+++ b/pkgs/applications/audio/synthv1/default.nix
@@ -2,11 +2,11 @@
 
 mkDerivation rec {
   pname = "synthv1";
-  version = "0.9.14";
+  version = "0.9.15";
 
   src = fetchurl {
     url = "mirror://sourceforge/synthv1/${pname}-${version}.tar.gz";
-    sha256 = "08n83krkak20924flb9azhm9hn40lyfvn29m63zs3lw3wajf0b40";
+    sha256 = "047y2l7ipzv00ly54f074v6p043xjml7vz0svc7z81bhx74vs0ix";
   };
 
   buildInputs = [ qtbase qttools libjack2 alsaLib liblo lv2 ];
diff --git a/pkgs/applications/audio/tunefish/default.nix b/pkgs/applications/audio/tunefish/default.nix
new file mode 100644
index 0000000000000..72802c4f87840
--- /dev/null
+++ b/pkgs/applications/audio/tunefish/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, pkg-config, python3
+, alsaLib, curl, freetype, gtk3, libGL, libX11, libXext, libXinerama, webkitgtk
+}:
+
+stdenv.mkDerivation {
+  pname = "tunefish";
+  version = "unstable-2020-08-13";
+
+  src = fetchFromGitHub {
+    owner = "jpcima";
+    repo = "tunefish";
+    rev = "b3d83cc66201619f6399500f6897fbeb1786d9ed";
+    fetchSubmodules = true;
+    sha256 = "0rjpq3s609fblzkvnc9729glcnfinmxljh0z8ldpzr245h367zxh";
+  };
+
+  nativeBuildInputs = [ pkg-config python3 ];
+  buildInputs = [ alsaLib curl freetype gtk3 libGL libX11 libXext libXinerama webkitgtk ];
+
+  postPatch = ''
+    patchShebangs src/tunefish4/generate-lv2-ttl.py
+  '';
+
+  makeFlags = [
+    "-C" "src/tunefish4/Builds/LinuxMakefile"
+    "CONFIG=Release"
+  ];
+
+  installPhase = ''
+    mkdir -p $out/lib/lv2
+    cp -r src/tunefish4/Builds/LinuxMakefile/build/Tunefish4.lv2 $out/lib/lv2
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = "https://tunefish-synth.com/";
+    description = "Virtual analog synthesizer LV2 plugin";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ orivej ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/backup/vorta/default.nix b/pkgs/applications/backup/vorta/default.nix
index f1c0b056c820f..1a233b3d93eeb 100644
--- a/pkgs/applications/backup/vorta/default.nix
+++ b/pkgs/applications/backup/vorta/default.nix
@@ -5,13 +5,13 @@
 
 buildPythonApplication rec {
   pname = "vorta";
-  version = "0.6.26";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "borgbase";
     repo = "vorta";
     rev = "v${version}";
-    sha256 = "189kzwdmissg9142cd7wvxa1rvc2y7lysgr7if99zc7ks59mv6dq";
+    sha256 = "1hz19c0lphwql881n7w0ls39bbl63lccx57c3klwfyzgsxcgdy2j";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/blockchains/dcrd.nix b/pkgs/applications/blockchains/dcrd.nix
index 5943642ad6148..e959eca48aeb1 100644
--- a/pkgs/applications/blockchains/dcrd.nix
+++ b/pkgs/applications/blockchains/dcrd.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "dcrd";
-  version = "1.5.1";
+  version = "1.5.2";
 
   src = fetchFromGitHub {
     owner = "decred";
     repo = "dcrd";
     rev = "refs/tags/release-v${version}";
-    sha256 = "1ggw289y1f4dqvj3w60q9bahq8bblbfjymn5xy04ldylr3qlxm9x";
+    sha256 = "14pxajc8si90hnddilfm09kmljwxq6i6p53fk0g09jp000cbklkl";
   };
 
   vendorSha256 = "03aw6mcvp1vr01ppxy673jf5hdryd5032cxndlkaiwg005mxp1dy";
diff --git a/pkgs/applications/blockchains/lnd.nix b/pkgs/applications/blockchains/lnd.nix
index b6c7879c3b860..831195f06f0d0 100644
--- a/pkgs/applications/blockchains/lnd.nix
+++ b/pkgs/applications/blockchains/lnd.nix
@@ -4,16 +4,16 @@
 
 buildGoModule rec {
   pname = "lnd";
-  version = "0.10.3-beta";
+  version = "0.11.0-beta";
 
   src = fetchFromGitHub {
     owner = "lightningnetwork";
     repo = "lnd";
     rev = "v${version}";
-    sha256 = "129vi8z2sk4hagk7axa675nba6sbj9km88zlq8a1g8di7v2k9z6a";
+    sha256 = "1r1hwz8ka5mnmrvj9zcd78kn68g8fg3d4bdx9i0xy4sc2hh1dcpj";
   };
 
-  vendorSha256 = "0a4bk2qry0isnrvl0adwikqn6imxwzlaq5j3nglb5rmwwq2cdz0r";
+  vendorSha256 = "090b9sxvdwh787w0rhrcbky9pbx64qgqx1pvk9ysk3886nxdhf7k";
 
   doCheck = false;
 
diff --git a/pkgs/applications/blockchains/wasabibackend/default.nix b/pkgs/applications/blockchains/wasabibackend/default.nix
index 0324f02442398..6b5358c9cf936 100644
--- a/pkgs/applications/blockchains/wasabibackend/default.nix
+++ b/pkgs/applications/blockchains/wasabibackend/default.nix
@@ -35,7 +35,7 @@ let
   };
 
   pname = "WasabiBackend";
-  version = "1.1.11.1";
+  version = "1.1.12";
 
   projectName = "WalletWasabi.Backend";
   projectConfiguration = "Release";
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
     owner = "zkSNACKs";
     repo = "WalletWasabi";
     rev = "v${version}";
-    sha256 = "0kxww8ywhld00b0qsv5jh5s19jqpahnb9mvshmjnp3cb840j12a7";
+    sha256 = "001k43z2jxvs03csyzndlzlk034aclzc4n8ddrqxykgrq508xk1d";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/blockchains/wasabibackend/deps.nix b/pkgs/applications/blockchains/wasabibackend/deps.nix
index ff5184ba860c1..1058cfcf93c0b 100644
--- a/pkgs/applications/blockchains/wasabibackend/deps.nix
+++ b/pkgs/applications/blockchains/wasabibackend/deps.nix
@@ -14,6 +14,21 @@ in [
     sha256 = "01nzc3gdslw90qfykq4qzr2mdnqxjl4sj0wp3fixiwdmlmvpib5z";
   })
   (fetchNuGet {
+    name = "System.Globalization.Extensions";
+    version = "4.3.0";
+    sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Handles";
+    version = "4.3.0";
+    sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8";
+  })
+  (fetchNuGet {
+    name = "System.Dynamic.Runtime";
+    version = "4.0.11";
+    sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9";
+  })
+  (fetchNuGet {
     name = "System.Threading.Overlapped";
     version = "4.0.1";
     sha256 = "0fi79az3vmqdp9mv3wh2phblfjls89zlj6p9nc3i9f6wmfarj188";
@@ -24,11 +39,6 @@ in [
     sha256 = "1nbzdfqvzzbgsfdd5qsh94d7dbg2v4sw0yx6himyn52zf8z6007p";
   })
   (fetchNuGet {
-    name = "System.Dynamic.Runtime";
-    version = "4.0.11";
-    sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9";
-  })
-  (fetchNuGet {
     name = "System.Private.DataContractSerialization";
     version = "4.1.1";
     sha256 = "1xk9wvgzipssp1393nsg4n16zbr5481k03nkdlj954hzq5jkx89r";
@@ -39,14 +49,14 @@ in [
     sha256 = "1spf4m9pikkc19544p29a47qnhcd885klncahz133hbnyqbkmz9k";
   })
   (fetchNuGet {
-    name = "System.Reflection.Emit.Lightweight";
+    name = "System.Reflection.Emit";
     version = "4.0.1";
-    sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr";
+    sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp";
   })
   (fetchNuGet {
-    name = "System.Reflection.Emit";
+    name = "System.Reflection.Emit.Lightweight";
     version = "4.0.1";
-    sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp";
+    sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr";
   })
   (fetchNuGet {
     name = "System.Reflection.Emit.ILGeneration";
@@ -54,14 +64,19 @@ in [
     sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0";
   })
   (fetchNuGet {
+    name = "System.Globalization.Extensions";
+    version = "4.0.1";
+    sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc";
+  })
+  (fetchNuGet {
     name = "System.Diagnostics.DiagnosticSource";
     version = "4.0.0";
     sha256 = "1n6c3fbz7v8d3pn77h4v5wvsfrfg7v1c57lg3nff3cjyh597v23m";
   })
   (fetchNuGet {
-    name = "System.Globalization.Extensions";
-    version = "4.0.1";
-    sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc";
+    name = "System.Threading.Tasks.Extensions";
+    version = "4.0.0";
+    sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr";
   })
   (fetchNuGet {
     name = "System.Security.Cryptography.Cng";
@@ -69,29 +84,29 @@ in [
     sha256 = "118jijz446kix20blxip0f0q8mhsh9bz118mwc2ch1p6g7facpzc";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.OpenSsl";
-    version = "4.0.0";
-    sha256 = "16sx3cig3d0ilvzl8xxgffmxbiqx87zdi8fc73i3i7zjih1a7f4q";
-  })
-  (fetchNuGet {
     name = "System.Security.Cryptography.Csp";
     version = "4.0.0";
     sha256 = "1cwv8lqj8r15q81d2pz2jwzzbaji0l28xfrpw29kdpsaypm92z2q";
   })
   (fetchNuGet {
-    name = "runtime.native.System.Net.Http";
-    version = "4.0.1";
-    sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6";
+    name = "Microsoft.VisualStudio.Web.CodeGeneration.Tools";
+    version = "2.0.2";
+    sha256 = "0fkjm06irs53d77z29i6dwj5pjhgj9ivhad8v39ghnrwasc0ivq6";
   })
   (fetchNuGet {
-    name = "System.Threading.Tasks.Extensions";
+    name = "System.Security.Cryptography.OpenSsl";
     version = "4.0.0";
-    sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr";
+    sha256 = "16sx3cig3d0ilvzl8xxgffmxbiqx87zdi8fc73i3i7zjih1a7f4q";
   })
   (fetchNuGet {
-    name = "runtime.native.System.IO.Compression";
-    version = "4.1.0";
-    sha256 = "0d720z4lzyfcabmmnvh0bnj76ll7djhji2hmfh3h44sdkjnlkknk";
+    name = "Microsoft.VisualStudio.Web.CodeGeneration.Contracts";
+    version = "2.0.2";
+    sha256 = "1fs6sbjn0chx6rv38d61zgk8mhyyxz44xp4wsfya0lvkckyszyn1";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Net.Http";
+    version = "4.0.1";
+    sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6";
   })
   (fetchNuGet {
     name = "Microsoft.Extensions.FileProviders.Physical";
@@ -99,9 +114,9 @@ in [
     sha256 = "0l0l92g7sq4122n139av1pn1jl6wlw92hjmdnr47xdss0ndmwrs3";
   })
   (fetchNuGet {
-    name = "Microsoft.VisualStudio.Web.CodeGeneration.Contracts";
-    version = "2.0.2";
-    sha256 = "1fs6sbjn0chx6rv38d61zgk8mhyyxz44xp4wsfya0lvkckyszyn1";
+    name = "runtime.native.System.IO.Compression";
+    version = "4.1.0";
+    sha256 = "0d720z4lzyfcabmmnvh0bnj76ll7djhji2hmfh3h44sdkjnlkknk";
   })
   (fetchNuGet {
     name = "Microsoft.NETCore.App";
@@ -109,9 +124,9 @@ in [
     sha256 = "0qb7k624w7l0zhapdp519ymqg84a67r8zyd8cpj42hywsgb0dqv6";
   })
   (fetchNuGet {
-    name = "Microsoft.VisualStudio.Web.CodeGeneration.Tools";
-    version = "2.0.2";
-    sha256 = "0fkjm06irs53d77z29i6dwj5pjhgj9ivhad8v39ghnrwasc0ivq6";
+    name = "runtime.native.System.Security.Cryptography";
+    version = "4.0.0";
+    sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9";
   })
   (fetchNuGet {
     name = "NuGet.Frameworks";
@@ -119,6 +134,11 @@ in [
     sha256 = "0nar684cm53cvzx28gzl6kmpg9mrfr1yv29323din7xqal4pscgq";
   })
   (fetchNuGet {
+    name = "Microsoft.Build.Runtime";
+    version = "15.3.409";
+    sha256 = "135ycnqz5jfg61y5zaapgc7xdpjx2aq4icmxb9ph7h5inl445q7q";
+  })
+  (fetchNuGet {
     name = "runtime.native.System";
     version = "4.0.0";
     sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf";
@@ -129,9 +149,9 @@ in [
     sha256 = "13s659bcmg9nwb6z78971z1lr6bmh2wghxi1ayqyzl4jijd351gr";
   })
   (fetchNuGet {
-    name = "Microsoft.Build.Runtime";
-    version = "15.3.409";
-    sha256 = "135ycnqz5jfg61y5zaapgc7xdpjx2aq4icmxb9ph7h5inl445q7q";
+    name = "Microsoft.NETCore.Targets";
+    version = "1.0.1";
+    sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p";
   })
   (fetchNuGet {
     name = "Newtonsoft.Json";
@@ -139,26 +159,36 @@ in [
     sha256 = "15ncqic3p2rzs8q8ppi0irl2miq75kilw4lh8yfgjq96id0ds3hv";
   })
   (fetchNuGet {
+    name = "Microsoft.NETCore.DotNetAppHost";
+    version = "2.0.5";
+    sha256 = "00bsxdg9c8msjxyffvfi8siqk8v2m7ca8fqy1npv7b2pzg3byjws";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.CompilerServices.Unsafe";
+    version = "4.4.0";
+    sha256 = "0a6ahgi5b148sl5qyfpyw383p3cb4yrkm802k29fsi4mxkiwir29";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.Lightweight";
+    version = "4.3.0";
+    sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem";
+    version = "4.3.0";
+    sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw";
+  })
+  (fetchNuGet {
     name = "Microsoft.Extensions.FileSystemGlobbing";
     version = "2.0.0";
     sha256 = "02lzy6r14ghwfwm384xajq08vv3pl3ww0mi5isrr10vivhijhgg4";
   })
   (fetchNuGet {
-    name = "runtime.native.System.Security.Cryptography";
-    version = "4.0.0";
-    sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9";
-  })
-  (fetchNuGet {
     name = "Microsoft.Extensions.FileProviders.Abstractions";
     version = "2.0.0";
     sha256 = "0d6y5isjy6jpf4w3f3w89cwh9p40glzhwvm7cwhx05wkqd8bk9w4";
   })
   (fetchNuGet {
-    name = "Microsoft.NETCore.Targets";
-    version = "1.0.1";
-    sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p";
-  })
-  (fetchNuGet {
     name = "Microsoft.NETCore.Platforms";
     version = "2.0.1";
     sha256 = "1j2hmnivgb4plni2dd205kafzg6mkg7r4knrd3s7mg75wn2l25np";
@@ -169,24 +199,74 @@ in [
     sha256 = "0v5csskiwpk8kz8wclqad8kcjmxr7ik4w99wl05740qvaag3qysk";
   })
   (fetchNuGet {
+    name = "System.IO.FileSystem.Primitives";
+    version = "4.3.0";
+    sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
+  })
+  (fetchNuGet {
     name = "NETStandard.Library";
     version = "2.0.1";
     sha256 = "0d44wjxphs1ck838v7dapm0ag0b91zpiy33cr5vflsrwrqgj51dk";
   })
   (fetchNuGet {
-    name = "System.Globalization.Extensions";
+    name = "System.Threading.Tasks.Extensions";
     version = "4.3.0";
-    sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls";
+    sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z";
   })
   (fetchNuGet {
-    name = "System.Runtime.Serialization.Primitives";
+    name = "System.Collections.Specialized";
     version = "4.3.0";
-    sha256 = "01vv2p8h4hsz217xxs0rixvb7f2xzbh6wv1gzbfykcbfrza6dvnf";
+    sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20";
   })
   (fetchNuGet {
-    name = "System.Runtime.Numerics";
+    name = "System.ComponentModel";
     version = "4.3.0";
-    sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z";
+    sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb";
+  })
+  (fetchNuGet {
+    name = "System.Collections.NonGeneric";
+    version = "4.3.0";
+    sha256 = "07q3k0hf3mrcjzwj8fwk6gv3n51cb513w4mgkfxzm3i37sc9kz7k";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel.Primitives";
+    version = "4.3.0";
+    sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices";
+    version = "4.3.0";
+    sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j";
+  })
+  (fetchNuGet {
+    name = "NETStandard.Library";
+    version = "1.6.0";
+    sha256 = "0nmmv4yw7gw04ik8ialj3ak0j6pxa9spih67hnn1h2c38ba8h58k";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Build.Framework";
+    version = "15.3.409";
+    sha256 = "1dhanwb9ihbfay85xj7cwn0byzmmdz94hqfi3q6r1ncwdjd8y1s2";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Build.Tasks.Core";
+    version = "15.3.409";
+    sha256 = "135swyygp7cz2civwsz6a7dj7h8bzp7yrybmgxjanxwrw66hm933";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding.CodePages";
+    version = "4.0.1";
+    sha256 = "00wpm3b9y0k996rm9whxprngm8l500ajmzgy2ip9pgwk0icp06y3";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Build.Utilities.Core";
+    version = "15.3.409";
+    sha256 = "1p8a0l9sxmjj86qha748qjw2s2n07q8mn41mj5r6apjnwl27ywnf";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Build";
+    version = "15.3.409";
+    sha256 = "0vzq6csp2yys9s96c7i37bjml439rdi47g8f5rzqdr7xf5a1jk81";
   })
   (fetchNuGet {
     name = "System.Runtime.Serialization.Formatters";
@@ -194,14 +274,14 @@ in [
     sha256 = "114j35n8gcvn3sqv9ar36r1jjq0y1yws9r0yk8i6wm4aq7n9rs0m";
   })
   (fetchNuGet {
-    name = "System.Xml.XmlDocument";
+    name = "System.Runtime.Serialization.Primitives";
     version = "4.3.0";
-    sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi";
+    sha256 = "01vv2p8h4hsz217xxs0rixvb7f2xzbh6wv1gzbfykcbfrza6dvnf";
   })
   (fetchNuGet {
-    name = "System.Collections";
+    name = "System.ObjectModel";
     version = "4.3.0";
-    sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9";
+    sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2";
   })
   (fetchNuGet {
     name = "System.Diagnostics.Debug";
@@ -219,9 +299,9 @@ in [
     sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq";
   })
   (fetchNuGet {
-    name = "System.Runtime.Handles";
+    name = "System.Reflection.Emit";
     version = "4.3.0";
-    sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8";
+    sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74";
   })
   (fetchNuGet {
     name = "System.Text.Encoding.Extensions";
@@ -229,34 +309,34 @@ in [
     sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy";
   })
   (fetchNuGet {
-    name = "System.Globalization";
+    name = "System.Text.Encoding";
     version = "4.3.0";
-    sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
+    sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr";
   })
   (fetchNuGet {
-    name = "System.Linq";
+    name = "System.Xml.XmlDocument";
     version = "4.3.0";
-    sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7";
+    sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi";
   })
   (fetchNuGet {
-    name = "System.Text.Encoding";
+    name = "System.Reflection.Emit.ILGeneration";
     version = "4.3.0";
-    sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr";
+    sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q";
   })
   (fetchNuGet {
-    name = "System.ObjectModel";
+    name = "System.Runtime.Numerics";
     version = "4.3.0";
-    sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2";
+    sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z";
   })
   (fetchNuGet {
-    name = "Microsoft.NETCore.DotNetAppHost";
-    version = "2.0.5";
-    sha256 = "00bsxdg9c8msjxyffvfi8siqk8v2m7ca8fqy1npv7b2pzg3byjws";
+    name = "System.Globalization";
+    version = "4.3.0";
+    sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
   })
   (fetchNuGet {
-    name = "System.Runtime.CompilerServices.Unsafe";
-    version = "4.4.0";
-    sha256 = "0a6ahgi5b148sl5qyfpyw383p3cb4yrkm802k29fsi4mxkiwir29";
+    name = "System.Reflection.TypeExtensions";
+    version = "4.3.0";
+    sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1";
   })
   (fetchNuGet {
     name = "System.Threading";
@@ -264,24 +344,34 @@ in [
     sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34";
   })
   (fetchNuGet {
-    name = "Microsoft.CSharp";
+    name = "System.Reflection.Primitives";
     version = "4.3.0";
-    sha256 = "0gw297dgkh0al1zxvgvncqs0j15lsna9l1wpqas4rflmys440xvb";
+    sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276";
   })
   (fetchNuGet {
-    name = "System.IO.Pipes";
-    version = "4.0.0";
-    sha256 = "0fxfvcf55s9q8zsykwh8dkq2xb5jcqnml2ycq8srfry2l07h18za";
+    name = "System.Linq";
+    version = "4.3.0";
+    sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7";
   })
   (fetchNuGet {
-    name = "System.Text.RegularExpressions";
+    name = "System.Diagnostics.Tools";
     version = "4.3.0";
-    sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l";
+    sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1";
   })
   (fetchNuGet {
-    name = "System.Reflection";
+    name = "Microsoft.NETCore.Targets";
+    version = "1.1.0";
+    sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
+  })
+  (fetchNuGet {
+    name = "System.Collections";
     version = "4.3.0";
-    sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m";
+    sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "1.1.0";
+    sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
   })
   (fetchNuGet {
     name = "System.IO";
@@ -289,24 +379,39 @@ in [
     sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f";
   })
   (fetchNuGet {
+    name = "System.Threading.Tasks.Dataflow";
+    version = "4.6.0";
+    sha256 = "0a1davr71wssyn4z1hr75lk82wqa0daz0vfwkmg1fm3kckfd72k1";
+  })
+  (fetchNuGet {
     name = "System.Xml.XDocument";
     version = "4.3.0";
     sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd";
   })
   (fetchNuGet {
+    name = "System.IO.Pipes";
+    version = "4.0.0";
+    sha256 = "0fxfvcf55s9q8zsykwh8dkq2xb5jcqnml2ycq8srfry2l07h18za";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.FileVersionInfo";
+    version = "4.0.0";
+    sha256 = "1s5vxhy7i09bmw51kxqaiz9zaj9am8wsjyz13j85sp23z267hbv3";
+  })
+  (fetchNuGet {
     name = "System.Threading.Tasks";
     version = "4.3.0";
     sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7";
   })
   (fetchNuGet {
-    name = "System.ComponentModel.TypeConverter";
-    version = "4.3.0";
-    sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x";
+    name = "System.Diagnostics.Contracts";
+    version = "4.0.1";
+    sha256 = "0y6dkd9n5k98vzhc3w14r2pbhf10qjn2axpghpmfr6rlxx9qrb9j";
   })
   (fetchNuGet {
-    name = "System.Runtime.Extensions";
+    name = "System.Reflection";
     version = "4.3.0";
-    sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60";
+    sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m";
   })
   (fetchNuGet {
     name = "System.Dynamic.Runtime";
@@ -314,239 +419,229 @@ in [
     sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk";
   })
   (fetchNuGet {
-    name = "System.Xml.ReaderWriter";
-    version = "4.3.0";
-    sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1";
+    name = "System.Runtime.Loader";
+    version = "4.0.0";
+    sha256 = "0lpfi3psqcp6zxsjk2qyahal7zaawviimc8lhrlswhip2mx7ykl0";
   })
   (fetchNuGet {
-    name = "System.Linq.Expressions";
-    version = "4.3.0";
-    sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv";
+    name = "System.Threading.ThreadPool";
+    version = "4.0.10";
+    sha256 = "0fdr61yjcxh5imvyf93n2m3n5g9pp54bnw2l1d2rdl9z6dd31ypx";
   })
   (fetchNuGet {
-    name = "System.Runtime";
+    name = "System.Runtime.Extensions";
     version = "4.3.0";
-    sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
-  })
-  (fetchNuGet {
-    name = "NETStandard.Library";
-    version = "1.6.0";
-    sha256 = "0nmmv4yw7gw04ik8ialj3ak0j6pxa9spih67hnn1h2c38ba8h58k";
+    sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60";
   })
   (fetchNuGet {
-    name = "Microsoft.Build.Framework";
-    version = "15.3.409";
-    sha256 = "1dhanwb9ihbfay85xj7cwn0byzmmdz94hqfi3q6r1ncwdjd8y1s2";
+    name = "System.Runtime.Serialization.Xml";
+    version = "4.1.1";
+    sha256 = "11747an5gbz821pwahaim3v82gghshnj9b5c4cw539xg5a3gq7rk";
   })
   (fetchNuGet {
-    name = "Microsoft.Build.Tasks.Core";
-    version = "15.3.409";
-    sha256 = "135swyygp7cz2civwsz6a7dj7h8bzp7yrybmgxjanxwrw66hm933";
+    name = "System.Text.RegularExpressions";
+    version = "4.3.0";
+    sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l";
   })
   (fetchNuGet {
-    name = "Microsoft.Build.Utilities.Core";
-    version = "15.3.409";
-    sha256 = "1p8a0l9sxmjj86qha748qjw2s2n07q8mn41mj5r6apjnwl27ywnf";
+    name = "System.Collections.Immutable";
+    version = "1.2.0";
+    sha256 = "1jm4pc666yiy7af1mcf7766v710gp0h40p228ghj6bavx7xfa38m";
   })
   (fetchNuGet {
-    name = "System.Text.Encoding.CodePages";
-    version = "4.0.1";
-    sha256 = "00wpm3b9y0k996rm9whxprngm8l500ajmzgy2ip9pgwk0icp06y3";
+    name = "Microsoft.CSharp";
+    version = "4.3.0";
+    sha256 = "0gw297dgkh0al1zxvgvncqs0j15lsna9l1wpqas4rflmys440xvb";
   })
   (fetchNuGet {
-    name = "Microsoft.Build";
-    version = "15.3.409";
-    sha256 = "0vzq6csp2yys9s96c7i37bjml439rdi47g8f5rzqdr7xf5a1jk81";
+    name = "System.ComponentModel.TypeConverter";
+    version = "4.3.0";
+    sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x";
   })
   (fetchNuGet {
-    name = "System.Threading.Tasks.Dataflow";
-    version = "4.6.0";
-    sha256 = "0a1davr71wssyn4z1hr75lk82wqa0daz0vfwkmg1fm3kckfd72k1";
+    name = "System.Reflection.Metadata";
+    version = "1.3.0";
+    sha256 = "1y5m6kryhjpqqm2g3h3b6bzig13wkiw954x3b7icqjm6xypm1x3b";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Primitives";
-    version = "2.0.0";
-    sha256 = "1xppr5jbny04slyjgngxjdm0maxdh47vq481ps944d7jrfs0p3mb";
+    name = "System.Xml.ReaderWriter";
+    version = "4.3.0";
+    sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1";
   })
   (fetchNuGet {
-    name = "Microsoft.NETCore.DotNetHostResolver";
-    version = "2.0.5";
-    sha256 = "1sz2fdp8fdwz21x3lr2m1zhhrbix6iz699fjkwiryqdjl4ygd3hw";
+    name = "System.Linq.Parallel";
+    version = "4.0.1";
+    sha256 = "0i33x9f4h3yq26yvv6xnq4b0v51rl5z8v1bm7vk972h5lvf4apad";
   })
   (fetchNuGet {
-    name = "Microsoft.NETCore.Platforms";
-    version = "1.1.0";
-    sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
+    name = "System.Linq.Expressions";
+    version = "4.3.0";
+    sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv";
   })
   (fetchNuGet {
-    name = "Microsoft.NETCore.Targets";
-    version = "1.1.0";
-    sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
+    name = "System.Diagnostics.Process";
+    version = "4.1.0";
+    sha256 = "061lrcs7xribrmq7kab908lww6kn2xn1w3rdc41q189y0jibl19s";
   })
   (fetchNuGet {
-    name = "System.Reflection.TypeExtensions";
+    name = "System.Runtime";
     version = "4.3.0";
-    sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1";
+    sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
   })
   (fetchNuGet {
-    name = "System.Reflection.Primitives";
-    version = "4.3.0";
-    sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276";
+    name = "System.Xml.XmlDocument";
+    version = "4.0.1";
+    sha256 = "0ihsnkvyc76r4dcky7v3ansnbyqjzkbyyia0ir5zvqirzan0bnl1";
   })
   (fetchNuGet {
-    name = "System.Runtime.InteropServices";
-    version = "4.3.0";
-    sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j";
+    name = "Microsoft.Extensions.Primitives";
+    version = "2.0.0";
+    sha256 = "1xppr5jbny04slyjgngxjdm0maxdh47vq481ps944d7jrfs0p3mb";
   })
   (fetchNuGet {
-    name = "System.Diagnostics.Tools";
-    version = "4.3.0";
-    sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1";
+    name = "Microsoft.NETCore.DotNetHostResolver";
+    version = "2.0.5";
+    sha256 = "1sz2fdp8fdwz21x3lr2m1zhhrbix6iz699fjkwiryqdjl4ygd3hw";
   })
   (fetchNuGet {
-    name = "System.ComponentModel.Primitives";
-    version = "4.3.0";
-    sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0";
+    name = "System.Runtime.Serialization.Primitives";
+    version = "4.1.1";
+    sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k";
   })
   (fetchNuGet {
-    name = "System.ComponentModel";
-    version = "4.3.0";
-    sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb";
+    name = "Microsoft.NETCore.Platforms";
+    version = "1.0.1";
+    sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr";
   })
   (fetchNuGet {
-    name = "System.Collections.NonGeneric";
-    version = "4.3.0";
-    sha256 = "07q3k0hf3mrcjzwj8fwk6gv3n51cb513w4mgkfxzm3i37sc9kz7k";
+    name = "System.AppContext";
+    version = "4.1.0";
+    sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz";
   })
   (fetchNuGet {
-    name = "System.Collections.Specialized";
-    version = "4.3.0";
-    sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20";
+    name = "System.Diagnostics.Debug";
+    version = "4.0.11";
+    sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz";
   })
   (fetchNuGet {
-    name = "System.Reflection.Emit.ILGeneration";
-    version = "4.3.0";
-    sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q";
+    name = "System.Diagnostics.TraceSource";
+    version = "4.0.0";
+    sha256 = "1mc7r72xznczzf6mz62dm8xhdi14if1h8qgx353xvhz89qyxsa3h";
   })
   (fetchNuGet {
-    name = "System.Reflection.Emit";
-    version = "4.3.0";
-    sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74";
+    name = "System.Resources.ResourceManager";
+    version = "4.0.1";
+    sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi";
   })
   (fetchNuGet {
-    name = "System.IO.FileSystem.Primitives";
-    version = "4.3.0";
-    sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
+    name = "System.Globalization.Calendars";
+    version = "4.0.1";
+    sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh";
   })
   (fetchNuGet {
-    name = "System.Threading.Tasks.Extensions";
-    version = "4.3.0";
-    sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z";
+    name = "System.Xml.XPath";
+    version = "4.0.1";
+    sha256 = "0fjqgb6y66d72d5n8qq1h213d9nv2vi8mpv8p28j3m9rccmsh04m";
   })
   (fetchNuGet {
-    name = "System.IO.FileSystem";
-    version = "4.3.0";
-    sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw";
+    name = "System.Diagnostics.Tools";
+    version = "4.0.1";
+    sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x";
   })
   (fetchNuGet {
-    name = "System.Reflection.Emit.Lightweight";
-    version = "4.3.0";
-    sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c";
+    name = "System.Text.Encoding.Extensions";
+    version = "4.0.11";
+    sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs";
   })
   (fetchNuGet {
-    name = "System.AppContext";
+    name = "System.Diagnostics.Tracing";
     version = "4.1.0";
-    sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz";
+    sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394";
   })
   (fetchNuGet {
-    name = "System.ObjectModel";
-    version = "4.0.12";
-    sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj";
+    name = "System.Resources.Writer";
+    version = "4.0.0";
+    sha256 = "07hp218kjdcvpl27djspnixgnacbp9apma61zz3wsca9fx5g3lmv";
   })
   (fetchNuGet {
-    name = "System.Collections.Concurrent";
-    version = "4.0.12";
-    sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc";
+    name = "System.Reflection.TypeExtensions";
+    version = "4.1.0";
+    sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7";
   })
   (fetchNuGet {
-    name = "System.IO.FileSystem.Primitives";
+    name = "System.Collections.NonGeneric";
     version = "4.0.1";
-    sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612";
+    sha256 = "19994r5y5bpdhj7di6w047apvil8lh06lh2c2yv9zc4fc5g9bl4d";
   })
   (fetchNuGet {
-    name = "Microsoft.Win32.Primitives";
-    version = "4.0.1";
-    sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7";
+    name = "System.Console";
+    version = "4.0.0";
+    sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf";
   })
   (fetchNuGet {
-    name = "System.Diagnostics.Tracing";
-    version = "4.1.0";
-    sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394";
+    name = "System.Security.Cryptography.Primitives";
+    version = "4.0.0";
+    sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh";
   })
   (fetchNuGet {
-    name = "System.Net.Sockets";
-    version = "4.1.0";
-    sha256 = "1385fvh8h29da5hh58jm1v78fzi9fi5vj93vhlm2kvqpfahvpqls";
+    name = "System.Runtime.Numerics";
+    version = "4.0.1";
+    sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn";
   })
   (fetchNuGet {
-    name = "System.Threading.Timer";
+    name = "Microsoft.Win32.Primitives";
     version = "4.0.1";
-    sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6";
+    sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7";
   })
   (fetchNuGet {
-    name = "Microsoft.NETCore.Platforms";
-    version = "1.0.1";
-    sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr";
+    name = "System.IO.Compression.ZipFile";
+    version = "4.0.1";
+    sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82";
   })
   (fetchNuGet {
-    name = "System.Globalization.Calendars";
+    name = "System.Xml.XPath.XmlDocument";
     version = "4.0.1";
-    sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh";
+    sha256 = "0l7yljgif41iv5g56l3nxy97hzzgck2a7rhnfnljhx9b0ry41bvc";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.Encoding";
-    version = "4.0.0";
-    sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4";
+    name = "System.Net.Sockets";
+    version = "4.1.0";
+    sha256 = "1385fvh8h29da5hh58jm1v78fzi9fi5vj93vhlm2kvqpfahvpqls";
   })
   (fetchNuGet {
-    name = "System.Reflection.Primitives";
-    version = "4.0.1";
-    sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28";
+    name = "System.Xml.XDocument";
+    version = "4.0.11";
+    sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18";
   })
   (fetchNuGet {
-    name = "System.Diagnostics.Tools";
+    name = "System.Reflection.Extensions";
     version = "4.0.1";
-    sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x";
+    sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn";
   })
   (fetchNuGet {
-    name = "System.Console";
+    name = "System.Runtime.InteropServices.RuntimeInformation";
     version = "4.0.0";
-    sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf";
-  })
-  (fetchNuGet {
-    name = "System.Runtime.Handles";
-    version = "4.0.1";
-    sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g";
+    sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.Primitives";
+    name = "System.Resources.Reader";
     version = "4.0.0";
-    sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh";
+    sha256 = "1jafi73dcf1lalrir46manq3iy6xnxk2z7gpdpwg4wqql7dv3ril";
   })
   (fetchNuGet {
-    name = "System.Diagnostics.Debug";
-    version = "4.0.11";
-    sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz";
+    name = "System.Threading.Thread";
+    version = "4.0.0";
+    sha256 = "1gxxm5fl36pjjpnx1k688dcw8m9l7nmf802nxis6swdaw8k54jzc";
   })
   (fetchNuGet {
-    name = "System.Collections";
-    version = "4.0.11";
-    sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6";
+    name = "System.Threading.Timer";
+    version = "4.0.1";
+    sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6";
   })
   (fetchNuGet {
-    name = "System.Reflection.Extensions";
+    name = "System.IO.FileSystem.Primitives";
     version = "4.0.1";
-    sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn";
+    sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612";
   })
   (fetchNuGet {
     name = "System.IO.FileSystem";
@@ -554,29 +649,39 @@ in [
     sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1";
   })
   (fetchNuGet {
-    name = "System.Runtime.Numerics";
-    version = "4.0.1";
-    sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn";
+    name = "System.Security.Cryptography.Encoding";
+    version = "4.0.0";
+    sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4";
   })
   (fetchNuGet {
-    name = "System.IO.Compression.ZipFile";
+    name = "System.Runtime";
+    version = "4.1.0";
+    sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Algorithms";
+    version = "4.2.0";
+    sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Primitives";
     version = "4.0.1";
-    sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82";
+    sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28";
   })
   (fetchNuGet {
-    name = "System.Resources.ResourceManager";
+    name = "System.Runtime.Handles";
     version = "4.0.1";
-    sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi";
+    sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.Algorithms";
-    version = "4.2.0";
-    sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85";
+    name = "System.ObjectModel";
+    version = "4.0.12";
+    sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj";
   })
   (fetchNuGet {
-    name = "System.Linq";
-    version = "4.1.0";
-    sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5";
+    name = "System.Net.Primitives";
+    version = "4.0.11";
+    sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r";
   })
   (fetchNuGet {
     name = "System.Text.Encoding";
@@ -584,9 +689,9 @@ in [
     sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw";
   })
   (fetchNuGet {
-    name = "System.Runtime.InteropServices.RuntimeInformation";
-    version = "4.0.0";
-    sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6";
+    name = "System.Collections.Concurrent";
+    version = "4.0.12";
+    sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc";
   })
   (fetchNuGet {
     name = "System.IO.Compression";
@@ -594,19 +699,9 @@ in [
     sha256 = "0iym7s3jkl8n0vzm3jd6xqg9zjjjqni05x45dwxyjr2dy88hlgji";
   })
   (fetchNuGet {
-    name = "System.Text.Encoding.Extensions";
-    version = "4.0.11";
-    sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs";
-  })
-  (fetchNuGet {
-    name = "System.Globalization";
-    version = "4.0.11";
-    sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d";
-  })
-  (fetchNuGet {
-    name = "System.Text.RegularExpressions";
+    name = "System.IO";
     version = "4.1.0";
-    sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7";
+    sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp";
   })
   (fetchNuGet {
     name = "System.Reflection";
@@ -614,34 +709,29 @@ in [
     sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9";
   })
   (fetchNuGet {
-    name = "System.Xml.XDocument";
+    name = "System.Collections";
     version = "4.0.11";
-    sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18";
+    sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6";
   })
   (fetchNuGet {
-    name = "System.Threading";
-    version = "4.0.11";
-    sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls";
+    name = "System.Linq";
+    version = "4.1.0";
+    sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5";
   })
   (fetchNuGet {
-    name = "System.Threading.Tasks";
+    name = "System.Globalization";
     version = "4.0.11";
-    sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5";
+    sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d";
   })
   (fetchNuGet {
-    name = "System.Net.Primitives";
+    name = "System.Threading";
     version = "4.0.11";
-    sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r";
-  })
-  (fetchNuGet {
-    name = "System.IO";
-    version = "4.1.0";
-    sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp";
+    sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls";
   })
   (fetchNuGet {
-    name = "System.Runtime.Extensions";
+    name = "System.Text.RegularExpressions";
     version = "4.1.0";
-    sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z";
+    sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7";
   })
   (fetchNuGet {
     name = "System.Security.Cryptography.X509Certificates";
@@ -649,54 +739,34 @@ in [
     sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh";
   })
   (fetchNuGet {
-    name = "System.Net.Http";
-    version = "4.1.0";
-    sha256 = "1i5rqij1icg05j8rrkw4gd4pgia1978mqhjzhsjg69lvwcdfg8yb";
-  })
-  (fetchNuGet {
     name = "System.Xml.ReaderWriter";
     version = "4.0.11";
     sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5";
   })
   (fetchNuGet {
-    name = "System.Runtime.InteropServices";
-    version = "4.1.0";
-    sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1";
-  })
-  (fetchNuGet {
-    name = "System.Linq.Expressions";
+    name = "System.Net.Http";
     version = "4.1.0";
-    sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg";
+    sha256 = "1i5rqij1icg05j8rrkw4gd4pgia1978mqhjzhsjg69lvwcdfg8yb";
   })
   (fetchNuGet {
-    name = "System.Runtime";
+    name = "System.Runtime.Extensions";
     version = "4.1.0";
-    sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m";
-  })
-  (fetchNuGet {
-    name = "System.Threading.Thread";
-    version = "4.0.0";
-    sha256 = "1gxxm5fl36pjjpnx1k688dcw8m9l7nmf802nxis6swdaw8k54jzc";
+    sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z";
   })
   (fetchNuGet {
-    name = "System.Diagnostics.TraceSource";
-    version = "4.0.0";
-    sha256 = "1mc7r72xznczzf6mz62dm8xhdi14if1h8qgx353xvhz89qyxsa3h";
+    name = "System.Threading.Tasks";
+    version = "4.0.11";
+    sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5";
   })
   (fetchNuGet {
-    name = "System.Reflection.TypeExtensions";
+    name = "System.Linq.Expressions";
     version = "4.1.0";
-    sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7";
-  })
-  (fetchNuGet {
-    name = "System.Runtime.Serialization.Primitives";
-    version = "4.1.1";
-    sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k";
+    sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg";
   })
   (fetchNuGet {
-    name = "System.Xml.XmlDocument";
-    version = "4.0.1";
-    sha256 = "0ihsnkvyc76r4dcky7v3ansnbyqjzkbyyia0ir5zvqirzan0bnl1";
+    name = "System.Runtime.InteropServices";
+    version = "4.1.0";
+    sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1";
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.App.Runtime.linux-x64";
@@ -709,19 +779,9 @@ in [
     sha256 = "0a332ia5pabnz7mdfc99a5hlc7drnwzlc7cj9b5c3an6dq636p66";
   })
   (fetchNuGet {
-    name = "System.Collections.NonGeneric";
-    version = "4.0.1";
-    sha256 = "19994r5y5bpdhj7di6w047apvil8lh06lh2c2yv9zc4fc5g9bl4d";
-  })
-  (fetchNuGet {
-    name = "System.Resources.Reader";
-    version = "4.0.0";
-    sha256 = "1jafi73dcf1lalrir46manq3iy6xnxk2z7gpdpwg4wqql7dv3ril";
-  })
-  (fetchNuGet {
-    name = "System.Xml.XPath.XmlDocument";
-    version = "4.0.1";
-    sha256 = "0l7yljgif41iv5g56l3nxy97hzzgck2a7rhnfnljhx9b0ry41bvc";
+    name = "Microsoft.CSharp";
+    version = "4.7.0";
+    sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j";
   })
   (fetchNuGet {
     name = "Microsoft.NETCore.Platforms";
@@ -729,14 +789,9 @@ in [
     sha256 = "1gc1x8f95wk8yhgznkwsg80adk1lc65v9n5rx4yaa4bc5dva0z3j";
   })
   (fetchNuGet {
-    name = "Microsoft.CSharp";
-    version = "4.7.0";
-    sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j";
-  })
-  (fetchNuGet {
-    name = "System.Xml.XPath";
-    version = "4.0.1";
-    sha256 = "0fjqgb6y66d72d5n8qq1h213d9nv2vi8mpv8p28j3m9rccmsh04m";
+    name = "Newtonsoft.Json";
+    version = "11.0.1";
+    sha256 = "1z68j07if1xf71lbsrgbia52r812i2dv541sy44ph4dzjjp7pd4m";
   })
   (fetchNuGet {
     name = "Microsoft.Extensions.Logging.Abstractions";
@@ -744,14 +799,9 @@ in [
     sha256 = "1sh9bidmhy32gkz6fkli79mxv06546ybrzppfw5v2aq0bda1ghka";
   })
   (fetchNuGet {
-    name = "System.Security.Principal.Windows";
-    version = "4.7.0";
-    sha256 = "1a56ls5a9sr3ya0nr086sdpa9qv0abv31dd6fp27maqa9zclqq5d";
-  })
-  (fetchNuGet {
-    name = "System.Security.AccessControl";
-    version = "4.7.0";
-    sha256 = "0n0k0w44flkd8j0xw7g3g3vhw7dijfm51f75xkm1qxnbh4y45mpz";
+    name = "Newtonsoft.Json.Bson";
+    version = "1.0.2";
+    sha256 = "0c27bhy9x3c2n26inq32kmp6drpm71n6mqnmcr19wrlcaihglj35";
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.JsonPatch";
@@ -764,59 +814,19 @@ in [
     sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5";
   })
   (fetchNuGet {
-    name = "System.Resources.Writer";
-    version = "4.0.0";
-    sha256 = "07hp218kjdcvpl27djspnixgnacbp9apma61zz3wsca9fx5g3lmv";
-  })
-  (fetchNuGet {
-    name = "System.Reflection.Metadata";
-    version = "1.3.0";
-    sha256 = "1y5m6kryhjpqqm2g3h3b6bzig13wkiw954x3b7icqjm6xypm1x3b";
-  })
-  (fetchNuGet {
-    name = "System.Collections.Immutable";
-    version = "1.2.0";
-    sha256 = "1jm4pc666yiy7af1mcf7766v710gp0h40p228ghj6bavx7xfa38m";
-  })
-  (fetchNuGet {
-    name = "System.Linq.Parallel";
-    version = "4.0.1";
-    sha256 = "0i33x9f4h3yq26yvv6xnq4b0v51rl5z8v1bm7vk972h5lvf4apad";
-  })
-  (fetchNuGet {
-    name = "System.Diagnostics.Process";
-    version = "4.1.0";
-    sha256 = "061lrcs7xribrmq7kab908lww6kn2xn1w3rdc41q189y0jibl19s";
-  })
-  (fetchNuGet {
-    name = "System.Runtime.Serialization.Xml";
-    version = "4.1.1";
-    sha256 = "11747an5gbz821pwahaim3v82gghshnj9b5c4cw539xg5a3gq7rk";
-  })
-  (fetchNuGet {
-    name = "System.Threading.ThreadPool";
-    version = "4.0.10";
-    sha256 = "0fdr61yjcxh5imvyf93n2m3n5g9pp54bnw2l1d2rdl9z6dd31ypx";
-  })
-  (fetchNuGet {
-    name = "System.Runtime.Loader";
-    version = "4.0.0";
-    sha256 = "0lpfi3psqcp6zxsjk2qyahal7zaawviimc8lhrlswhip2mx7ykl0";
-  })
-  (fetchNuGet {
-    name = "System.Diagnostics.Contracts";
-    version = "4.0.1";
-    sha256 = "0y6dkd9n5k98vzhc3w14r2pbhf10qjn2axpghpmfr6rlxx9qrb9j";
+    name = "System.Security.Principal.Windows";
+    version = "4.7.0";
+    sha256 = "1a56ls5a9sr3ya0nr086sdpa9qv0abv31dd6fp27maqa9zclqq5d";
   })
   (fetchNuGet {
-    name = "System.Diagnostics.FileVersionInfo";
-    version = "4.0.0";
-    sha256 = "1s5vxhy7i09bmw51kxqaiz9zaj9am8wsjyz13j85sp23z267hbv3";
+    name = "System.Security.AccessControl";
+    version = "4.7.0";
+    sha256 = "0n0k0w44flkd8j0xw7g3g3vhw7dijfm51f75xkm1qxnbh4y45mpz";
   })
   (fetchNuGet {
-    name = "NBitcoin.Secp256k1";
-    version = "1.0.1";
-    sha256 = "0j3a8iamqh06b7am6k8gh6d41zvrnmsif3525bw742jw5byjypdl";
+    name = "NBitcoin";
+    version = "5.0.47";
+    sha256 = "1plri6q83jn80m95np0zxdg3nk2f36z8v42j4sg5wjv8qppp866d";
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.Mvc.NewtonsoftJson";
@@ -824,26 +834,21 @@ in [
     sha256 = "1c2lrlp64kkacnjgdyygr6fqdawk10l8j4qgppii6rq61yjwhcig";
   })
   (fetchNuGet {
-    name = "Newtonsoft.Json.Bson";
-    version = "1.0.2";
-    sha256 = "0c27bhy9x3c2n26inq32kmp6drpm71n6mqnmcr19wrlcaihglj35";
-  })
-  (fetchNuGet {
     name = "Microsoft.Win32.Registry";
     version = "4.7.0";
     sha256 = "0bx21jjbs7l5ydyw4p6cn07chryxpmchq2nl5pirzz4l3b0q4dgs";
   })
   (fetchNuGet {
+    name = "NBitcoin.Secp256k1";
+    version = "1.0.3";
+    sha256 = "08d4db64j1qz8ax9fg8zi6n7g1n53clnkajbbvv2hgaqyfrsnqxj";
+  })
+  (fetchNuGet {
     name = "Microsoft.OpenApi";
     version = "1.1.4";
     sha256 = "1sn79829nhx6chi2qxsza1801di7zdl5fd983m0jakawzbjhjcb3";
   })
   (fetchNuGet {
-    name = "NBitcoin";
-    version = "5.0.29";
-    sha256 = "0a6jvdvnf5h9j6c3ii3pdnkq79shmcm1hf6anaqcwvi3gq19chak";
-  })
-  (fetchNuGet {
     name = "Swashbuckle.AspNetCore.SwaggerUI";
     version = "5.0.0";
     sha256 = "0d7vjq489rz208j6k3rb7vq6mzxzff3mqg83yk2rqy25vklrsbjd";
@@ -879,26 +884,11 @@ in [
     sha256 = "0m4vgmzi1ky8xlj0r7xcyazxln3j9dlialnk6d2gmgrfnzf8f9m7";
   })
   (fetchNuGet {
-    name = "runtime.any.System.Threading.Tasks";
-    version = "4.0.11";
-    sha256 = "1qzdp09qs8br5qxzlm1lgbjn4n57fk8vr1lzrmli2ysdg6x1xzvk";
-  })
-  (fetchNuGet {
     name = "System.Private.Uri";
     version = "4.0.1";
     sha256 = "0k57qhawjysm4cpbfpc49kl4av7lji310kjcamkl23bwgij5ld9j";
   })
   (fetchNuGet {
-    name = "runtime.any.System.Diagnostics.Tracing";
-    version = "4.1.0";
-    sha256 = "041im8hmp1zdgrx6jzyrdch6kshvbddmkar7r2mlm1ksb5c5kwpq";
-  })
-  (fetchNuGet {
-    name = "runtime.any.System.IO";
-    version = "4.1.0";
-    sha256 = "0kasfkjiml2kk8prnyn1990nhsahnjggvqwszqjdsfwfl43vpcb5";
-  })
-  (fetchNuGet {
     name = "runtime.any.System.Runtime.Handles";
     version = "4.0.1";
     sha256 = "1kswgqhy34qvc49i981fk711s7knd6z13bp0rin8ms6axkh98nas";
@@ -909,29 +899,24 @@ in [
     sha256 = "1zxrpvixr5fqzkxpnin6g6gjq6xajy1snghz99ds2dwbhm276rhz";
   })
   (fetchNuGet {
-    name = "runtime.any.System.Runtime";
+    name = "runtime.any.System.IO";
     version = "4.1.0";
-    sha256 = "0mjr2bi7wvnkphfjqgkyf8vfyvy15a829jz6mivl6jmksh2bx40m";
-  })
-  (fetchNuGet {
-    name = "runtime.any.System.Resources.ResourceManager";
-    version = "4.0.1";
-    sha256 = "1jmgs7hynb2rff48623wnyb37558bbh1q28k9c249j5r5sgsr5kr";
+    sha256 = "0kasfkjiml2kk8prnyn1990nhsahnjggvqwszqjdsfwfl43vpcb5";
   })
   (fetchNuGet {
-    name = "runtime.any.System.Globalization";
-    version = "4.0.11";
-    sha256 = "0240rp66pi5bw1xklmh421hj7arwcdmjmgfkiq1cbc6nrm8ah286";
+    name = "runtime.any.System.Runtime";
+    version = "4.1.0";
+    sha256 = "0mjr2bi7wvnkphfjqgkyf8vfyvy15a829jz6mivl6jmksh2bx40m";
   })
   (fetchNuGet {
-    name = "runtime.any.System.Collections";
+    name = "runtime.any.System.Threading.Tasks";
     version = "4.0.11";
-    sha256 = "1x44bm1cgv28zmrp095wf9mn8a6a0ivnzp9v14dcbhx06igxzgg0";
+    sha256 = "1qzdp09qs8br5qxzlm1lgbjn4n57fk8vr1lzrmli2ysdg6x1xzvk";
   })
   (fetchNuGet {
-    name = "runtime.unix.System.Diagnostics.Debug";
-    version = "4.0.11";
-    sha256 = "05ndbai4vpqrry0ghbfgqc8xblmplwjgndxmdn1zklqimczwjg2d";
+    name = "runtime.any.System.Diagnostics.Tracing";
+    version = "4.1.0";
+    sha256 = "041im8hmp1zdgrx6jzyrdch6kshvbddmkar7r2mlm1ksb5c5kwpq";
   })
   (fetchNuGet {
     name = "runtime.unix.System.Runtime.Extensions";
@@ -939,13 +924,33 @@ in [
     sha256 = "0x1cwd7cvifzmn5x1wafvj75zdxlk3mxy860igh3x1wx0s8167y4";
   })
   (fetchNuGet {
+    name = "runtime.any.System.Runtime.InteropServices";
+    version = "4.1.0";
+    sha256 = "0gm8if0hcmp1qys1wmx4970k2x62pqvldgljsyzbjhiy5644vl8z";
+  })
+  (fetchNuGet {
     name = "runtime.any.System.Reflection";
     version = "4.1.0";
     sha256 = "06kcs059d5czyakx75rvlwa2mr86156w18fs7chd03f7084l7mq6";
   })
   (fetchNuGet {
-    name = "runtime.any.System.Runtime.InteropServices";
-    version = "4.1.0";
-    sha256 = "0gm8if0hcmp1qys1wmx4970k2x62pqvldgljsyzbjhiy5644vl8z";
+    name = "runtime.any.System.Collections";
+    version = "4.0.11";
+    sha256 = "1x44bm1cgv28zmrp095wf9mn8a6a0ivnzp9v14dcbhx06igxzgg0";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Globalization";
+    version = "4.0.11";
+    sha256 = "0240rp66pi5bw1xklmh421hj7arwcdmjmgfkiq1cbc6nrm8ah286";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Resources.ResourceManager";
+    version = "4.0.1";
+    sha256 = "1jmgs7hynb2rff48623wnyb37558bbh1q28k9c249j5r5sgsr5kr";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Diagnostics.Debug";
+    version = "4.0.11";
+    sha256 = "05ndbai4vpqrry0ghbfgqc8xblmplwjgndxmdn1zklqimczwjg2d";
   })
-]
\ No newline at end of file
+]
diff --git a/pkgs/applications/blockchains/wasabiwallet/default.nix b/pkgs/applications/blockchains/wasabiwallet/default.nix
index a098f14668e51..3b4ec1c49c4ca 100644
--- a/pkgs/applications/blockchains/wasabiwallet/default.nix
+++ b/pkgs/applications/blockchains/wasabiwallet/default.nix
@@ -24,11 +24,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "wasabiwallet";
-  version = "1.1.11.1";
+  version = "1.1.12";
 
   src = fetchurl {
-    url = "https://github.com/zkSNACKs/WalletWasabi/releases/download/v${version}/WasabiLinux-${version}.tar.gz";
-    sha256 = "04v8f2h67aqvcb5a8vmzbp2sqnq7g4m0v1ng52ccb4ii668ya8hy";
+    url = "https://github.com/zkSNACKs/WalletWasabi/releases/download/v${version}/Wasabi-${version}.tar.gz";
+    sha256 = "0nfd0pwsgrkaxcxfs8wb3i8kslfcqnc91iahw3rmlcxdzb81kjs4";
   };
 
   dontBuild = true;
diff --git a/pkgs/applications/editors/android-studio/common.nix b/pkgs/applications/editors/android-studio/common.nix
index f1e680f60e673..605d810b3d9c6 100644
--- a/pkgs/applications/editors/android-studio/common.nix
+++ b/pkgs/applications/editors/android-studio/common.nix
@@ -200,7 +200,7 @@ in runCommand
       platforms = [ "x86_64-linux" ];
       maintainers = with maintainers; rec {
         stable = [ meutraa ];
-        beta = [ galagora ];
+        beta = [ meutraa ];
         canary = [ meutraa ];
         dev = canary;
       }."${channel}";
diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix
index 14a6853af1c3e..e84d2e9dac1af 100644
--- a/pkgs/applications/editors/android-studio/default.nix
+++ b/pkgs/applications/editors/android-studio/default.nix
@@ -14,9 +14,9 @@ let
     sha256Hash = "15vm7fvi8c286wx9f28z6ysvm8wqqda759qql0zy9simwx22gy7j";
   };
   betaVersion = {
-    version = "4.1.0.14"; # "Android Studio 4.1 Beta 4"
-    build = "201.6667167";
-    sha256Hash = "11lkwcbzdl86cyz4lci65cx9z5jjhrc4z40maqx2r5hw1xka9290";
+    version = "4.1.0.17"; # "Android Studio 4.1 RC 2"
+    build = "201.6776251";
+    sha256Hash = "sha256-3W+eUcffRk7lZxbvf3X/Np4hkwAUqU51sQ061XR7Ddc=";
   };
   latestVersion = { # canary & dev
     version = "4.2.0.8"; # "Android Studio 4.2 Canary 8"
diff --git a/pkgs/applications/editors/emacs/generic.nix b/pkgs/applications/editors/emacs/generic.nix
index 69bb51e10f204..2067d6c77789a 100644
--- a/pkgs/applications/editors/emacs/generic.nix
+++ b/pkgs/applications/editors/emacs/generic.nix
@@ -42,7 +42,7 @@ assert withXwidgets -> withGTK3 && webkitgtk != null;
 let
 
 in stdenv.mkDerivation {
-  inherit pname version;
+  inherit pname version patches;
 
   src = fetchurl {
     url = "mirror://gnu/emacs/${name}.tar.xz";
diff --git a/pkgs/applications/editors/kakoune/default.nix b/pkgs/applications/editors/kakoune/default.nix
index 16bc3c22cb4b4..eec14f286ba7a 100644
--- a/pkgs/applications/editors/kakoune/default.nix
+++ b/pkgs/applications/editors/kakoune/default.nix
@@ -4,12 +4,12 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "kakoune-unwrapped";
-  version = "2020.08.04";
+  version = "2020.09.01";
   src = fetchFromGitHub {
     repo = "kakoune";
     owner = "mawww";
     rev = "v${version}";
-    sha256 = "1cgkis8bywy5k8k6j4i3prikpmhh1p6zyklliyxbc89mj64kvx4s";
+    sha256 = "091qzk0qs7hql0q51hix99srgma35mhdnjfd5ncfba1bmc1h8x5i";
   };
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ ncurses asciidoc docbook_xsl libxslt ];
diff --git a/pkgs/applications/editors/neovim/qt.nix b/pkgs/applications/editors/neovim/qt.nix
index 8fe93d37c7e87..b04c575dded7b 100644
--- a/pkgs/applications/editors/neovim/qt.nix
+++ b/pkgs/applications/editors/neovim/qt.nix
@@ -38,6 +38,7 @@ let
 
     meta = with stdenv.lib; {
       description = "Neovim client library and GUI, in Qt5";
+      homepage = "https://github.com/equalsraf/neovim-qt";
       license     = licenses.isc;
       maintainers = with maintainers; [ peterhoeg ];
       inherit (neovim.meta) platforms;
diff --git a/pkgs/applications/editors/texstudio/default.nix b/pkgs/applications/editors/texstudio/default.nix
index 94837023ca0d8..8f7e18a35c506 100644
--- a/pkgs/applications/editors/texstudio/default.nix
+++ b/pkgs/applications/editors/texstudio/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "texstudio";
-  version = "2.12.22";
+  version = "3.0.0";
 
   src = fetchFromGitHub {
     owner = "${pname}-org";
     repo = pname;
     rev = version;
-    sha256 = "037jvsfln8wav17qj9anxz2a7p51v7ky85wmhdj2hgwp40al651g";
+    sha256 = "1663lgl30698awa7fjplr8rjnf6capqvf8z80lzlnkfl5m9ph0jb";
   };
 
   nativeBuildInputs = [ qmake wrapQtAppsHook pkgconfig ];
diff --git a/pkgs/applications/editors/vim/qvim.nix b/pkgs/applications/editors/vim/qvim.nix
deleted file mode 100644
index 0e3a4a1505263..0000000000000
--- a/pkgs/applications/editors/vim/qvim.nix
+++ /dev/null
@@ -1,113 +0,0 @@
-args@{ fetchgit, stdenv, ncurses, pkgconfig, gettext
-, lib, config, python, perl, tcl, ruby, qt4
-, libX11, libXext, libSM, libXpm, libXt, libXaw, libXau, libXmu
-, libICE
-, lua
-, features
-, luaSupport       ? config.vim.lua or true
-, perlSupport      ? config.vim.perl or false      # Perl interpreter
-, pythonSupport    ? config.vim.python or true
-, rubySupport      ? config.vim.ruby or true
-, nlsSupport       ? config.vim.nls or false
-, tclSupport       ? config.vim.tcl or false
-, multibyteSupport ? config.vim.multibyte or false
-, cscopeSupport    ? config.vim.cscope or false
-, netbeansSupport  ? config.netbeans or true # eg envim is using it
-
-# by default, compile with darwin support if we're compiling on darwin, but
-# allow this to be disabled by setting config.vim.darwin to false
-, darwinSupport    ? stdenv.isDarwin && (config.vim.darwin or true)
-
-# add .nix filetype detection and minimal syntax highlighting support
-, ftNixSupport     ? config.vim.ftNix or true
-
-, ... }: with args;
-
-let tag = "20140827";
-    sha256 = "0ncgbcm23z25naicxqkblz0mcl1zar2qwgi37y5ar8q8884w9ml2";
-in {
-
-  name = "qvim-7.4." + tag;
-
-  enableParallelBuilding = true; # test this
-
-  src = fetchgit {
-    url = "https://bitbucket.org/equalsraf/vim-qt.git";
-    rev = "refs/tags/package-" + tag;
-    inherit sha256;
-  };
-
-  # FIXME: adopt Darwin fixes from vim/default.nix, then chage meta.platforms.linux
-  # to meta.platforms.unix
-  preConfigure = assert (! stdenv.isDarwin); "";
-
-  configureFlags = [
-    "--with-vim-name=qvim"
-    "--enable-gui=qt"
-    "--with-features=${features}"
-    "--disable-xsmp"
-    "--disable-xsmp_interact"
-    "--disable-workshop"          # Sun Visual Workshop support
-    "--disable-sniff"             # Sniff interface
-    "--disable-hangulinput"       # Hangul input support
-    "--disable-fontset"           # X fontset output support
-    "--disable-acl"               # ACL support
-    "--disable-gpm"               # GPM (Linux mouse daemon)
-    "--disable-mzscheme"
-  ]
-  ++ stdenv.lib.optionals luaSupport [
-    "--with-lua-prefix=${lua}"
-    "--enable-luainterp"
-  ]
-  ++ stdenv.lib.optional pythonSupport      "--enable-pythoninterp"
-  ++ stdenv.lib.optional (pythonSupport && stdenv.isDarwin) "--with-python-config-dir=${python}/lib"
-  ++ stdenv.lib.optional nlsSupport         "--enable-nls"
-  ++ stdenv.lib.optional perlSupport        "--enable-perlinterp"
-  ++ stdenv.lib.optional rubySupport        "--enable-rubyinterp"
-  ++ stdenv.lib.optional tclSupport         "--enable-tcl"
-  ++ stdenv.lib.optional multibyteSupport   "--enable-multibyte"
-  ++ stdenv.lib.optional darwinSupport      "--enable-darwin"
-  ++ stdenv.lib.optional cscopeSupport      "--enable-cscope";
-
-  nativeBuildInputs = [ ncurses pkgconfig libX11 libXext libSM libXpm libXt libXaw
-    libXau libXmu libICE qt4
-  ]
-  ++ stdenv.lib.optional nlsSupport gettext
-  ++ stdenv.lib.optional perlSupport perl
-  ++ stdenv.lib.optional pythonSupport python
-  ++ stdenv.lib.optional tclSupport tcl
-  ++ stdenv.lib.optional rubySupport ruby
-  ++ stdenv.lib.optional luaSupport lua
-  ;
-
-  postPatch = ''
-  '' + stdenv.lib.optionalString ftNixSupport ''
-    # because we cd to src in the main patch phase, we can't just add this
-    # patch to the list, we have to apply it manually
-    cd runtime
-    patch -p2 < ${./ft-nix-support.patch}
-    cd ..
-  '';
-
-  postInstall = stdenv.lib.optionalString stdenv.isLinux ''
-    rpath=`patchelf --print-rpath $out/bin/qvim`;
-    for i in $nativeBuildInputs; do
-      echo adding $i/lib
-      rpath=$rpath:$i/lib
-    done
-    echo $nativeBuildInputs
-    echo $rpath
-    patchelf --set-rpath $rpath $out/bin/qvim
-  '';
-
-  dontStrip = 1;
-
-  meta = with stdenv.lib; {
-    description = "The most popular clone of the VI editor (Qt GUI fork)";
-    homepage    = "https://bitbucket.org/equalsraf/vim-qt/wiki/Home";
-    license = licenses.vim;
-    maintainers = with maintainers; [ smironov ttuegel ];
-    platforms   = platforms.linux;
-  };
-}
-
diff --git a/pkgs/applications/gis/gmt/default.nix b/pkgs/applications/gis/gmt/default.nix
index 8c7c7687f3dd7..f045ec067fee3 100644
--- a/pkgs/applications/gis/gmt/default.nix
+++ b/pkgs/applications/gis/gmt/default.nix
@@ -9,10 +9,10 @@
 
 stdenv.mkDerivation rec {
   pname = "gmt";
-  version = "6.1.0";
+  version = "6.1.1";
   src = fetchurl {
     url = "https://github.com/GenericMappingTools/gmt/releases/download/${version}/gmt-${version}-src.tar.gz";
-    sha256 = "0vzxzpvbf1sqma2airsibxvqb9m4sajm7jsfr7rrv6q7924c7ijw";
+    sha256 = "04mdxxcild56jhg9ax522xh78v1wl1x8iqv2f6wv32x9b2lgy1lp";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/graphics/lightburn/default.nix b/pkgs/applications/graphics/lightburn/default.nix
index 1ed5f07c5f0af..7fcec93446d0f 100644
--- a/pkgs/applications/graphics/lightburn/default.nix
+++ b/pkgs/applications/graphics/lightburn/default.nix
@@ -6,7 +6,7 @@
 
 stdenv.mkDerivation rec {
   pname = "lightburn";
-  version = "0.9.15";
+  version = "0.9.16";
 
   nativeBuildInputs = [
     p7zip
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://github.com/LightBurnSoftware/deployment/releases/download/${version}/LightBurn-Linux64-v${version}.7z";
-    sha256 = "1dwmrili4jfw55gnlnda3imgli7f4jqz9smwlynf7k87lxrhppmh";
+    sha256 = "0xmpglfzff3jpxbr304czsa24fbp497b69yd8kjkjdp2cd0l70qc";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/graphics/meshlab/default.nix b/pkgs/applications/graphics/meshlab/default.nix
index 8e8032a1f31bf..bde8999eb41cc 100644
--- a/pkgs/applications/graphics/meshlab/default.nix
+++ b/pkgs/applications/graphics/meshlab/default.nix
@@ -1,4 +1,6 @@
-{ mkDerivation, lib, fetchFromGitHub
+{ mkDerivation
+, lib
+, fetchFromGitHub
 , fetchpatch
 , libGLU
 , qtbase
@@ -17,13 +19,13 @@
 
 mkDerivation rec {
   pname = "meshlab";
-  version = "2020.03";
+  version = "2020.07";
 
   src = fetchFromGitHub {
     owner = "cnr-isti-vclab";
     repo = "meshlab";
-    rev = "f3568e75c9aed6da8bb105a1c8ac7ebbe00e4536";
-    sha256 = "17g9icgy1w67afxiljzxk94dyhj4f336gjxn0bhppd58xfqh8w4g";
+    rev = "Meshlab-${version}";
+    sha256 = "0vj849b57zk3k6lx35zzcjhr9gdy4hxqnnkb8chwy7hw262cm3ri";
     fetchSubmodules = true; # for vcglib
   };
 
@@ -44,12 +46,13 @@ mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
-  patches = [ ./no-build-date.patch ];
-
-  # MeshLab computes the version based on the build date, remove when https://github.com/cnr-isti-vclab/meshlab/issues/622 is fixed.
-  postPatch = ''
-    substituteAll ${./fix-version.patch} /dev/stdout | patch -p1 --binary
-  '';
+  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
@@ -62,7 +65,7 @@ mkDerivation rec {
     "-DALLOW_BUNDLED_LIB3DS=OFF"
     "-DALLOW_BUNDLED_MUPARSER=OFF"
     "-DALLOW_BUNDLED_QHULL=OFF"
-     # disable when available in nixpkgs
+    # disable when available in nixpkgs
     "-DALLOW_BUNDLED_OPENCTM=ON"
     "-DALLOW_BUNDLED_SSYNTH=ON"
     # some plugins are disabled unless these are on
@@ -70,6 +73,11 @@ mkDerivation rec {
     "-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)...);
@@ -82,7 +90,7 @@ mkDerivation rec {
     description = "A system for processing and editing 3D triangular meshes.";
     homepage = "http://www.meshlab.net/";
     license = lib.licenses.gpl3;
-    maintainers = with lib.maintainers; [viric];
+    maintainers = with lib.maintainers; [ viric ];
     platforms = with lib.platforms; linux;
   };
 }
diff --git a/pkgs/applications/graphics/meshlab/fix-version.patch b/pkgs/applications/graphics/meshlab/fix-version.patch
deleted file mode 100644
index 5184dfcba25d0..0000000000000
--- a/pkgs/applications/graphics/meshlab/fix-version.patch
+++ /dev/null
@@ -1,5 +0,0 @@
---- a/src/common/mlapplication.h

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

-@@ -23 +23 @@ public:

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

-+        return "@version@";

diff --git a/pkgs/applications/graphics/meshlab/meshlab.desktop b/pkgs/applications/graphics/meshlab/meshlab.desktop
index a9c7ef7978426..aa8de186440d5 100644
--- a/pkgs/applications/graphics/meshlab/meshlab.desktop
+++ b/pkgs/applications/graphics/meshlab/meshlab.desktop
@@ -10,6 +10,5 @@ Exec=@out@/bin/meshlab %U
 TryExec=@out@/bin/meshlab
 Icon=@out@/share/icons/hicolor/meshlab.png
 Terminal=false
-MimeType=model/mesh;application/x-3ds;image/x-3ds;application/sla;
+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;
-END_DESKTOP
\ No newline at end of file
diff --git a/pkgs/applications/graphics/meshlab/no-build-date.patch b/pkgs/applications/graphics/meshlab/no-build-date.patch
deleted file mode 100644
index 9588596e5b2c2..0000000000000
--- a/pkgs/applications/graphics/meshlab/no-build-date.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/src/meshlab/mainwindow_RunTime.cpp
-+++ b/src/meshlab/mainwindow_RunTime.cpp
-@@ -3312 +3312 @@ void MainWindow::about()
--    temp.labelMLName->setText(MeshLabApplication::completeName(MeshLabApplication::HW_ARCHITECTURE(QSysInfo::WordSize))+"   (built on "+__DATE__+")");
-+    temp.labelMLName->setText(MeshLabApplication::completeName(MeshLabApplication::HW_ARCHITECTURE(QSysInfo::WordSize)));
---- a/src/meshlabplugins/filter_plymc/plymc_main.cpp
-+++ b/src/meshlabplugins/filter_plymc/plymc_main.cpp
-@@ -121 +121 @@ int main(int argc, char *argv[])
--  printf(   "\n                  PlyMC "_PLYMC_VER" ("__DATE__")\n"
-+  printf(   "\n                  PlyMC "_PLYMC_VER"\n"
diff --git a/pkgs/applications/graphics/shotwell/default.nix b/pkgs/applications/graphics/shotwell/default.nix
index 3549a16e27059..c041d2dde8ccd 100644
--- a/pkgs/applications/graphics/shotwell/default.nix
+++ b/pkgs/applications/graphics/shotwell/default.nix
@@ -40,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 = [
diff --git a/pkgs/applications/graphics/xfractint/default.nix b/pkgs/applications/graphics/xfractint/default.nix
index 5c7b4c22a38bf..08ef0cd7b5844 100644
--- a/pkgs/applications/graphics/xfractint/default.nix
+++ b/pkgs/applications/graphics/xfractint/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, libX11, libXft}:
 stdenv.mkDerivation rec {
   pname = "xfractint";
-  version = "20.04p15";
+  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 = "1wv2hgyjvrjxzqxb55vz65ra80p24j8sd34llykk2qlx73x8f3nk";
+    sha256 = "1ba77jifxv8jql044mdydh4p4ms4w5vw3qrqmcfzlvqfxk7h2m2f";
   };
 
   buildInputs = [libX11 libXft];
diff --git a/pkgs/applications/kde/akonadi/default.nix b/pkgs/applications/kde/akonadi/default.nix
index 2c163445d5b05..7bb4e92179424 100644
--- a/pkgs/applications/kde/akonadi/default.nix
+++ b/pkgs/applications/kde/akonadi/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, copyPathsToStore, lib, kdepimTeam,
+  mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, shared-mime-info,
   boost, kcompletion, kconfigwidgets, kcrash, kdbusaddons, kdesignerplugin,
   ki18n, kiconthemes, kio, kitemmodels, kwindowsystem, mysql, qttools,
diff --git a/pkgs/applications/kde/fetch.sh b/pkgs/applications/kde/fetch.sh
index f0ce412cff114..90e1cf43f6b11 100644
--- a/pkgs/applications/kde/fetch.sh
+++ b/pkgs/applications/kde/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=(http://download.kde.org/stable/release-service/20.08.0/src)
+WGET_ARGS=(http://download.kde.org/stable/release-service/20.08.1/src)
diff --git a/pkgs/applications/kde/grantleetheme/default.nix b/pkgs/applications/kde/grantleetheme/default.nix
index 0e815127fa1d7..6204919a32858 100644
--- a/pkgs/applications/kde/grantleetheme/default.nix
+++ b/pkgs/applications/kde/grantleetheme/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, copyPathsToStore, lib, kdepimTeam,
+  mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
   grantlee, ki18n, kiconthemes, knewstuff, kservice, kxmlgui, qtbase,
 }:
diff --git a/pkgs/applications/kde/kdepim-apps-libs/default.nix b/pkgs/applications/kde/kdepim-apps-libs/default.nix
index a9b906b7b238d..57c02ea4e84ce 100644
--- a/pkgs/applications/kde/kdepim-apps-libs/default.nix
+++ b/pkgs/applications/kde/kdepim-apps-libs/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, copyPathsToStore, lib, kdepimTeam,
+  mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
   akonadi, akonadi-contacts, grantlee, grantleetheme, kconfig, kconfigwidgets,
   kcontacts, ki18n, kiconthemes, kio, libkleo, pimcommon, prison,
diff --git a/pkgs/applications/kde/kdepim-runtime/default.nix b/pkgs/applications/kde/kdepim-runtime/default.nix
index 27ca6ff9aaf42..e0a5d43e654fd 100644
--- a/pkgs/applications/kde/kdepim-runtime/default.nix
+++ b/pkgs/applications/kde/kdepim-runtime/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, copyPathsToStore, lib, kdepimTeam,
+  mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
   shared-mime-info,
   akonadi, akonadi-calendar, akonadi-contacts, akonadi-mime, akonadi-notes,
diff --git a/pkgs/applications/kde/srcs.nix b/pkgs/applications/kde/srcs.nix
index 78674306e2fad..5bcb48acc1816 100644
--- a/pkgs/applications/kde/srcs.nix
+++ b/pkgs/applications/kde/srcs.nix
@@ -4,1731 +4,1731 @@
 
 {
   akonadi = {
-    version = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/akonadi-20.08.0.tar.xz";
-      sha256 = "a18ce2d8c9e9fc7f195a7546ee5b7c2541e37ceb7afa0aa25e9ade4f54de2813";
-      name = "akonadi-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/akonadi-calendar-20.08.0.tar.xz";
-      sha256 = "4664e2dc6bc0762d999662188c64410fa70be2cef1be221569ec3b9270f80fd8";
-      name = "akonadi-calendar-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/akonadi-calendar-tools-20.08.0.tar.xz";
-      sha256 = "f994db29d374b0fbfd3328fc618df44680b0dfaec1cf9f842a7a9c6ecbb841fa";
-      name = "akonadi-calendar-tools-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/akonadiconsole-20.08.0.tar.xz";
-      sha256 = "a43c6b756a69301f7756464deea58c72aaefaa1b47f1136959588e8f41b7b91b";
-      name = "akonadiconsole-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/akonadi-contacts-20.08.0.tar.xz";
-      sha256 = "206f0704768a789201ead784e78d7138aba6b50b8f3880369df8799730fca8b4";
-      name = "akonadi-contacts-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/akonadi-import-wizard-20.08.0.tar.xz";
-      sha256 = "d742ced3b498f39edff33f7fc73db1e882bf4b1e17b35d5f734f8732cb1e7bde";
-      name = "akonadi-import-wizard-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/akonadi-mime-20.08.0.tar.xz";
-      sha256 = "c0a709e25fef86f778ef21adbf78c6beab203f4f4a8d9f5e17a4d3175fe01d33";
-      name = "akonadi-mime-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/akonadi-notes-20.08.0.tar.xz";
-      sha256 = "aeb348d6af30e8775d60cab0894634c6e5ac95a3baf97f69407602dea5944525";
-      name = "akonadi-notes-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/akonadi-search-20.08.0.tar.xz";
-      sha256 = "06974398ddd6cbd42d0cb9dc3cac4b6ad6bdc8062d1f94523a973ed702b40e2f";
-      name = "akonadi-search-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/akregator-20.08.0.tar.xz";
-      sha256 = "e8dbef1b8e8c165e824f108a33f9d2a6a0ea8668299f808fcc2ce2b4d398dcf5";
-      name = "akregator-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/analitza-20.08.0.tar.xz";
-      sha256 = "51bc5ecd31e557fcf5660e57458aa866ee44e386550bb2c37c22fae252405aa1";
-      name = "analitza-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/ark-20.08.0.tar.xz";
-      sha256 = "7627ffa17466d31dfdedabaa07b491ce14b46041d04f8b20316a0fa731fab098";
-      name = "ark-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/artikulate-20.08.0.tar.xz";
-      sha256 = "30ef4eedabebccfb600eec1ba7bc691e8ad4e0de8d7fdcf56a630714d6b9848b";
-      name = "artikulate-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/audiocd-kio-20.08.0.tar.xz";
-      sha256 = "7a01d5b89f5271ee1eba203e15c46b146879e4651643ec6348e1033c0ffdc8c7";
-      name = "audiocd-kio-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/baloo-widgets-20.08.0.tar.xz";
-      sha256 = "37800c3cde7e2a9cfbab2e11f21dd1ae76b2a31b687802bc45027966a8734985";
-      name = "baloo-widgets-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/blinken-20.08.0.tar.xz";
-      sha256 = "0a08f5fc8e0c100956bb99910265d9630191e462f8f812842e79b64e76055c1c";
-      name = "blinken-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/bomber-20.08.0.tar.xz";
-      sha256 = "91b4ff0e0615cd42e36c6755d30ee62b74d6c5ae309512b9f8f347c34786ec47";
-      name = "bomber-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/bovo-20.08.0.tar.xz";
-      sha256 = "f66997324d596095b30442b2446a3c581834ad60d1a27fd7f7f394549f2418a8";
-      name = "bovo-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/calendarsupport-20.08.0.tar.xz";
-      sha256 = "1c1682d46f248b092062a461cdefec9da3733cb0ee1a590b7c48c4977028e977";
-      name = "calendarsupport-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/cantor-20.08.0.tar.xz";
-      sha256 = "1d4babf783f53929f0ea42380dacdb7ab989b66383dd3c37ab22787a26715082";
-      name = "cantor-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/cervisia-20.08.0.tar.xz";
-      sha256 = "6e10acc196661b7d1873e370eb67486386e25e4d6b7946ade8479b70fba34d66";
-      name = "cervisia-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/dolphin-20.08.0.tar.xz";
-      sha256 = "fe5a68d9afd0771ba9ffc2d5d79e7bc43da85fd3ee3c2493a9a2d5c359c3cd6f";
-      name = "dolphin-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/dolphin-plugins-20.08.0.tar.xz";
-      sha256 = "a8a0c35f75eb8e63ee90f44ce930babceff86676b8bba213c82b7ffb29e526bb";
-      name = "dolphin-plugins-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/dragon-20.08.0.tar.xz";
-      sha256 = "0e3a540b3f93118a9a17f2c6f675d0f007b123266c6e71a27b5ddb6b9a7e14a8";
-      name = "dragon-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/elisa-20.08.0.tar.xz";
-      sha256 = "acbff9f3c3d26c2a2c249974ccd8ff0bdeb22148a8a5b72e1199f1ec2f9d712e";
-      name = "elisa-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/eventviews-20.08.0.tar.xz";
-      sha256 = "205607d89d739f1efa4472303206647d04fba4e9d80610800a4a229676ede732";
-      name = "eventviews-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/ffmpegthumbs-20.08.0.tar.xz";
-      sha256 = "84c3a8f064423d7e51a57b9ed32a9f4fdbca73f7fa7e47a6289d9b516f1ba9ff";
-      name = "ffmpegthumbs-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/filelight-20.08.0.tar.xz";
-      sha256 = "29ea650f7b0f1863ea6caeca39362eff652edee755963967eb4653665a2499b4";
-      name = "filelight-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/granatier-20.08.0.tar.xz";
-      sha256 = "9fd034875c2ac80a089145c47f36b3b97ed69eaa1693aa83bc5bd76561096efd";
-      name = "granatier-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/grantlee-editor-20.08.0.tar.xz";
-      sha256 = "08aeac1c6bacabdeb4e4273efc5c5f4995454c45bd51069b3ef6105237b84afa";
-      name = "grantlee-editor-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/grantleetheme-20.08.0.tar.xz";
-      sha256 = "7e86d2f9f5a725f988211f676da2c4191ed6df55418135f3a54da5d687d63e8e";
-      name = "grantleetheme-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/gwenview-20.08.0.tar.xz";
-      sha256 = "e7a6d96801bfc41156292faac915691b929d4da641cf04839c74a68debc95c44";
-      name = "gwenview-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/incidenceeditor-20.08.0.tar.xz";
-      sha256 = "5f23343959cd672570a4a3439be0e8b27c413b9747a17bd04138359c43dac678";
-      name = "incidenceeditor-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/juk-20.08.0.tar.xz";
-      sha256 = "ec00ef054768efc64b5b0da69fba90104689b314a064f52989d1c6dbd73dad1b";
-      name = "juk-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/k3b-20.08.0.tar.xz";
-      sha256 = "d10ac6bfa89744ec857ce7c65d5d7eae5f26ce151341d6f393b9a141cc05540a";
-      name = "k3b-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kaccounts-integration-20.08.0.tar.xz";
-      sha256 = "b1d0912ec7771be6c04f4cf635d9196acee1c63f47fe1814a5da2002196125a0";
-      name = "kaccounts-integration-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kaccounts-providers-20.08.0.tar.xz";
-      sha256 = "5a2293e124839dec3ca5cbe72548ff01ce3c0f7edc5c6dd78ca4d8a27054f574";
-      name = "kaccounts-providers-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kaddressbook-20.08.0.tar.xz";
-      sha256 = "e34b4515a5721b9dd1d9d391acb81905bc2b6a0d219347c7dac87ebbb5b7b921";
-      name = "kaddressbook-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kajongg-20.08.0.tar.xz";
-      sha256 = "1813ff2d960f96d63c5680b4a7e7dca6249146876c7a6d203eb0f9768eca244b";
-      name = "kajongg-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kalarm-20.08.0.tar.xz";
-      sha256 = "02c1a62f603cc6917d0f95eff4aaa23cf808395bed9b1dad21817f6c32256748";
-      name = "kalarm-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kalarmcal-20.08.0.tar.xz";
-      sha256 = "bd4f048a976829ee5768b9d26aebe4efbbfa0a2991486c8f57f250fe4198532c";
-      name = "kalarmcal-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kalgebra-20.08.0.tar.xz";
-      sha256 = "658fd3eae218b6b73dbf3ff2edb59c511bfb11d549b7e41a5224c62b4bfedc2c";
-      name = "kalgebra-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kalzium-20.08.0.tar.xz";
-      sha256 = "e9b402ea91ac87a19cef6e686bfb8507f6afac0d19c5dc7de777475d5db1b06f";
-      name = "kalzium-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kamera-20.08.0.tar.xz";
-      sha256 = "ca4194b99703a1908d4991538419c49fc28f5df8cb32f7c07a20454f4918f12a";
-      name = "kamera-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kamoso-20.08.0.tar.xz";
-      sha256 = "c27ea592a70d7634740973e860acdf8cda49c0880a13f623c315fbc02cc3d592";
-      name = "kamoso-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kanagram-20.08.0.tar.xz";
-      sha256 = "d7fc300883bb5420ce1f9bc2ec52324a74b775a8ecea12b904afedc0a6af6ca3";
-      name = "kanagram-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kapman-20.08.0.tar.xz";
-      sha256 = "24ad6ae146c0770fe4498983604b25ced25eab98b4a94898311553f7e4a97475";
-      name = "kapman-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kapptemplate-20.08.0.tar.xz";
-      sha256 = "ef92d56a155f1218d28a63167e67f4fc7bbdf9ba63344bef9512b2e1435f322d";
-      name = "kapptemplate-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kate-20.08.0.tar.xz";
-      sha256 = "aa0695f40cf9d491a08338f1c9b4331dfbb63cb311cf815ed0499b38940fa0db";
-      name = "kate-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/katomic-20.08.0.tar.xz";
-      sha256 = "006c55f3f688f70b51cf89589843037f09d30e826cf1a30ec441e84724ad27ab";
-      name = "katomic-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kbackup-20.08.0.tar.xz";
-      sha256 = "5d5882df3dfa6a078940ea6e292fd1c1aba7c016426e36d87f0d7f8c149bcd59";
-      name = "kbackup-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kblackbox-20.08.0.tar.xz";
-      sha256 = "0f6d0341e5bbc16d2d0ec9dc14027ebc91fdda2b9eb2ac6061055a60541db358";
-      name = "kblackbox-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kblocks-20.08.0.tar.xz";
-      sha256 = "041904451ce1aec7da113ed4fb442abd92083b8d7522b1c91e05933d574fba8e";
-      name = "kblocks-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kbounce-20.08.0.tar.xz";
-      sha256 = "7949b9ea43ca93b13378c018d8a532c200233f5f3d2acaba3c74d90f3ed79ccb";
-      name = "kbounce-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kbreakout-20.08.0.tar.xz";
-      sha256 = "0aa63a16d45ca432065777352f69a7fc0993fd0077f14e05cb89b06a1b69ad69";
-      name = "kbreakout-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kbruch-20.08.0.tar.xz";
-      sha256 = "9e0c51ec0e32a8b46b567c7d275acb3845e09aef446c27324d872fc3a096113e";
-      name = "kbruch-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kcachegrind-20.08.0.tar.xz";
-      sha256 = "94b3963e9eebc0bf67644de1666cf019649f5eaf924ac01c1af6e48619a11f87";
-      name = "kcachegrind-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kcalc-20.08.0.tar.xz";
-      sha256 = "3b6dee02e43ddb85ae6748cd8aefb422112be411e778c56372e97de0046bfca2";
-      name = "kcalc-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kcalutils-20.08.0.tar.xz";
-      sha256 = "82504223fe3a0f6149204aa5f3b38dc7fb05a25048e4a0159ba6e1923c24c1f8";
-      name = "kcalutils-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kcharselect-20.08.0.tar.xz";
-      sha256 = "91b17c42286c3a715dcde764057364bada6d07ae163f9b5cdc7daec338ee3a72";
-      name = "kcharselect-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kcolorchooser-20.08.0.tar.xz";
-      sha256 = "df1bfd346bfcdea7a585f489f62ab2f76993ce07f83c47cb8202be981b8a3829";
-      name = "kcolorchooser-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kcron-20.08.0.tar.xz";
-      sha256 = "e45d06ed0665d8f1cad3d44cc43035d50fc533bf9ab6e10fe53ab23f2ed5e708";
-      name = "kcron-20.08.0.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";
     };
   };
   kdebugsettings = {
-    version = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kdebugsettings-20.08.0.tar.xz";
-      sha256 = "21914b67dfc654ed525118afeda74e6a0539af9a0f3be05c490e9edbf13b2328";
-      name = "kdebugsettings-20.08.0.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";
     };
   };
   kdeconnect-kde = {
-    version = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kdeconnect-kde-20.08.0.tar.xz";
-      sha256 = "3de16bf165b68635919e68fa2460a5d14139cd9a63cb27573a7b2b2a5b0044a1";
-      name = "kdeconnect-kde-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kde-dev-scripts-20.08.0.tar.xz";
-      sha256 = "2c3120e63ebcd41e30acfd53063bad659e1982f79b81429e0541b0100bc25ad3";
-      name = "kde-dev-scripts-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kde-dev-utils-20.08.0.tar.xz";
-      sha256 = "7998afa4ac1b293eb3ba8f48ea77cd0bc22d2c2eda84e291d8c9cf2a5e719547";
-      name = "kde-dev-utils-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kdeedu-data-20.08.0.tar.xz";
-      sha256 = "c863f72c8dacb47dc8c82f966f4b70d33f75c2b9f6d63c174e9f3a2c73241943";
-      name = "kdeedu-data-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kdegraphics-mobipocket-20.08.0.tar.xz";
-      sha256 = "2c11b6efe2c5f7725341c861dd9ba8e919ba3734866e808225c13bb2f2d90a2d";
-      name = "kdegraphics-mobipocket-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kdegraphics-thumbnailers-20.08.0.tar.xz";
-      sha256 = "d466c08b4a5e4ccc36907dd38e82019f9060c2ea1931f336f9fbb2f79036566e";
-      name = "kdegraphics-thumbnailers-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kdenetwork-filesharing-20.08.0.tar.xz";
-      sha256 = "8fabf6b5eae8c32bf75db911ae76d35aa9fee66355964cf0ad8150f960b83256";
-      name = "kdenetwork-filesharing-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kdenlive-20.08.0.tar.xz";
-      sha256 = "89914ee37f5bbdd16051b0db4a6cfb6f8c3d748f47c9e28e5349920ca133c0bd";
-      name = "kdenlive-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kdepim-addons-20.08.0.tar.xz";
-      sha256 = "4045f7879cc47829a82a4ada18a35cb3bdf89a489a15cd0bd48441c305b3cb06";
-      name = "kdepim-addons-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kdepim-apps-libs-20.08.0.tar.xz";
-      sha256 = "bf7ac0af294510e4127808f3f2c1e25368c97b78ff0a5405219abb67173598a0";
-      name = "kdepim-apps-libs-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kdepim-runtime-20.08.0.tar.xz";
-      sha256 = "f6e4ff70b9cb85e8590ab8d7432abe1b6a2daa14d09a2974f8902b882b16409d";
-      name = "kdepim-runtime-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kdesdk-kioslaves-20.08.0.tar.xz";
-      sha256 = "0ab8188c1746ec5786d94e5988487b766a04a9df1c275b25778ab2948e302776";
-      name = "kdesdk-kioslaves-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kdesdk-thumbnailers-20.08.0.tar.xz";
-      sha256 = "8f2adb38ca24b82119eb52ef879f5fd6a5d48b9c012956a518cefefd86fbd6d3";
-      name = "kdesdk-thumbnailers-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kdf-20.08.0.tar.xz";
-      sha256 = "2f5fddbaf09d3cfdfb3e18b0a9292ecb6bcf14969e4d031a4215f22fecda0892";
-      name = "kdf-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kdialog-20.08.0.tar.xz";
-      sha256 = "669da86bebf2cfac4cda7c873bb57417aac8d293cee8c5950968495520954ed5";
-      name = "kdialog-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kdiamond-20.08.0.tar.xz";
-      sha256 = "56efcb8b2bf81d62324911f404e918f7bcd62f6fa2ee9d4e513df54e37631889";
-      name = "kdiamond-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/keditbookmarks-20.08.0.tar.xz";
-      sha256 = "7fab031ae4d62e3c9d37dce671af4580afe01e6e3411ef199115568e893b7df5";
-      name = "keditbookmarks-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kfind-20.08.0.tar.xz";
-      sha256 = "f47f1ee0dc1c75b90d70027eb0ce2b470912aff9db2c18a0380eb65b16e6c842";
-      name = "kfind-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kfloppy-20.08.0.tar.xz";
-      sha256 = "85732b804ee19c1a1db82845d7ab8c1ba1872d8d40737ee5b6beef8798c457f3";
-      name = "kfloppy-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kfourinline-20.08.0.tar.xz";
-      sha256 = "9b1d520d61ddd98ce629a50355a190bded41d6abea100d87f3650e15e0c358b6";
-      name = "kfourinline-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kgeography-20.08.0.tar.xz";
-      sha256 = "7fd2b7449309d6c42e01038c93ce8dda9c7a8acb806b27b9ff58d4556711ff5e";
-      name = "kgeography-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kget-20.08.0.tar.xz";
-      sha256 = "de46cbe0a53c7246d1aeb4f15d24b90633eaf37e236d67882e1454b61fea1a09";
-      name = "kget-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kgoldrunner-20.08.0.tar.xz";
-      sha256 = "29caf1637daea69013061d170a749411b18f543af7e2f8a0f295f1eb5cb62586";
-      name = "kgoldrunner-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kgpg-20.08.0.tar.xz";
-      sha256 = "102cc0d44b7621ebad1d5914bbb44a598689ebb95093e4a76713679996c2af0c";
-      name = "kgpg-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/khangman-20.08.0.tar.xz";
-      sha256 = "11f442e24f0a428c0338000f66687bc021f4290bcd8cc0acc3fd882ce3cf4b0b";
-      name = "khangman-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/khelpcenter-20.08.0.tar.xz";
-      sha256 = "2c45fb76c5503441dcf9ab1cae386dd2e10a2ad1af08f60090d362e82364e98c";
-      name = "khelpcenter-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kidentitymanagement-20.08.0.tar.xz";
-      sha256 = "4c7dca3e27f87203b27af219ebe07701e641a56dd7a8c1d7a3fa7cef2fe1c5af";
-      name = "kidentitymanagement-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kig-20.08.0.tar.xz";
-      sha256 = "fa9754f5a67e35fdfd8b836d423001fc48fe5c41fadbfceece834fb3f5b6cccd";
-      name = "kig-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kigo-20.08.0.tar.xz";
-      sha256 = "5e787cad2370b479feeae3be81b0972314429e0e896b9943445653731c9c6040";
-      name = "kigo-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/killbots-20.08.0.tar.xz";
-      sha256 = "3b647fd8af007619acdfc7c72d572a3184a8e8c5ecbeb472559c5e40e9d53257";
-      name = "killbots-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kimagemapeditor-20.08.0.tar.xz";
-      sha256 = "17d3ccfc35aecd802729da6c78a78cb358cf68bd5079bcae6d83af0874e86a00";
-      name = "kimagemapeditor-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kimap-20.08.0.tar.xz";
-      sha256 = "4ebb75312aac29274d8faa68f885c78a77c1173fc0200c08825670ac263cbec6";
-      name = "kimap-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kio-extras-20.08.0.tar.xz";
-      sha256 = "6bfbb92dd56755ec0b2dee0cd889d6081ae00df339c05b4cb7a173a463275e2d";
-      name = "kio-extras-20.08.0.tar.xz";
+      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.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kio-gdrive-20.08.0.tar.xz";
-      sha256 = "c08f809d575a24887aacd1a046b01cf2c3df7b77813fecf89cb6cdbec13ab299";
-      name = "kio-gdrive-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kipi-plugins-20.08.0.tar.xz";
-      sha256 = "f8f03a9797b4855839693ffca93245460e78fd2f6eeb763d16dd159711f40683";
-      name = "kipi-plugins-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kirigami-gallery-20.08.0.tar.xz";
-      sha256 = "8cabcee747152b41b558c0a9eb1fd0d55fb155b3b807a57d2176023806a59f2b";
-      name = "kirigami-gallery-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kiriki-20.08.0.tar.xz";
-      sha256 = "56db705674a43c249f2374eb1ce2c20e4b3e22223348959b3f5db67c0f52db4f";
-      name = "kiriki-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kiten-20.08.0.tar.xz";
-      sha256 = "17cb8344d679040b5c7be99049f73b88517cf127e3d045d469cdae9602945263";
-      name = "kiten-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kitinerary-20.08.0.tar.xz";
-      sha256 = "a87ce5dd8e978dad8bcac7d92d89c4a5eeaa847e8819c2aa84ebce51dfe95f50";
-      name = "kitinerary-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kjumpingcube-20.08.0.tar.xz";
-      sha256 = "5ea4187326a0ff0a77c0aef774d9ba9c3c20b438def85abe9e4b0822a8350a70";
-      name = "kjumpingcube-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kldap-20.08.0.tar.xz";
-      sha256 = "db358a6ec50f5d3988583096ccc5fe1389999b4dd3a3c787d7797f6e0b32ee53";
-      name = "kldap-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kleopatra-20.08.0.tar.xz";
-      sha256 = "776fbb8d06edc83834745a8af05b23297aeba89b8dce3410a2d48f37a91b5a87";
-      name = "kleopatra-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/klettres-20.08.0.tar.xz";
-      sha256 = "55748999e29ecec5fb3ce206c74bc44f7e83f4f239edd61c161e4df4e597bca2";
-      name = "klettres-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/klickety-20.08.0.tar.xz";
-      sha256 = "0b6d71d54a5521ae8cc66eca1d397289a35733af2fc686b82bc01dd6777fa926";
-      name = "klickety-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/klines-20.08.0.tar.xz";
-      sha256 = "778928fc55fe551eb836beba3f74b0f20602a0fae7366c71fa84a95ad6ca803a";
-      name = "klines-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kmag-20.08.0.tar.xz";
-      sha256 = "b1a8fe75a03dbeac8f2080808f580bea588bf39c97534ddfa0cbf7d0de20efb7";
-      name = "kmag-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kmahjongg-20.08.0.tar.xz";
-      sha256 = "05538c97613d6e3547161136b9d7aec9bb2918c9f4033a084e1576041b83d4e6";
-      name = "kmahjongg-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kmail-20.08.0.tar.xz";
-      sha256 = "0432ec1fd68868e9385dd3f6b9e2429feb5b5057317ef3940eb0e67a63e0c0f0";
-      name = "kmail-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kmail-account-wizard-20.08.0.tar.xz";
-      sha256 = "9f4eac46049acbc7452bbbf84569031d91f86c2577beecacb3a6200deefcc253";
-      name = "kmail-account-wizard-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kmailtransport-20.08.0.tar.xz";
-      sha256 = "af337017b884519065fea520fd66a8fc2e553d84ca3d8afc35739c18e67b4d73";
-      name = "kmailtransport-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kmbox-20.08.0.tar.xz";
-      sha256 = "58a2ecc7222a8ee5697102ca2bc871e7e30c823dcd906ac4160323fd1ba14d85";
-      name = "kmbox-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kmime-20.08.0.tar.xz";
-      sha256 = "55f2160fa78202cf45a4b08b9bb2fec1bc54a3700f6c9aceeec8d7fc3a64a317";
-      name = "kmime-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kmines-20.08.0.tar.xz";
-      sha256 = "d8d0f1a82fe279ed208a9005e8ffbe1277e25b33e9e0a1301013820e559ba750";
-      name = "kmines-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kmix-20.08.0.tar.xz";
-      sha256 = "4553362d4d14fdaf019b1fc55b98aac16c2db56542996a3c2f87603c41bc2859";
-      name = "kmix-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kmousetool-20.08.0.tar.xz";
-      sha256 = "285d947548ee863de6274888b097e19aff39ed2bb8cdd33e37707c39c8417863";
-      name = "kmousetool-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kmouth-20.08.0.tar.xz";
-      sha256 = "a783e73e8087d090cf4eba89fabcb9aee8c6b0858a6dea8a137323c1bbc110b1";
-      name = "kmouth-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kmplot-20.08.0.tar.xz";
-      sha256 = "f2d31d8c9091c74c6d0e65a0cba77bac23eb6f78913b31d049a0e2c9ca4ec8c0";
-      name = "kmplot-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/knavalbattle-20.08.0.tar.xz";
-      sha256 = "887d2f4e24d522ab66c2a4e183b9d5359213d67382fa2350f2edff6478666aa8";
-      name = "knavalbattle-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/knetwalk-20.08.0.tar.xz";
-      sha256 = "83fdf150c1c14f7c1807b73ce1d4bacfd10469f565541a379daa828755ddf5c6";
-      name = "knetwalk-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/knights-20.08.0.tar.xz";
-      sha256 = "b754af5da0ee922834644c578f2133695cc446dfb8ac327fae357e7a6c027bf7";
-      name = "knights-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/knotes-20.08.0.tar.xz";
-      sha256 = "35454e609c6ea2f805c8976d2897d2b2b9137a61ad8d396be2b510881bbd7cf3";
-      name = "knotes-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kolf-20.08.0.tar.xz";
-      sha256 = "dbc0d129e1d1fc8c597979c5ec96d612014aa56b0b0825be653b410995987305";
-      name = "kolf-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kollision-20.08.0.tar.xz";
-      sha256 = "a7d59d6f4132a669ce4fe74b3b58168ce6f2036a27d37cc6362b471b58a70fe4";
-      name = "kollision-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kolourpaint-20.08.0.tar.xz";
-      sha256 = "f2b5dee4e8c2b8245b2fd652c5ead015f637f62bc4b799735af255e2c5831629";
-      name = "kolourpaint-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kompare-20.08.0.tar.xz";
-      sha256 = "712d248edc6eae8dd94d41efccde94ccbc5753ecd01eb69cb3d80757a63805a3";
-      name = "kompare-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/konqueror-20.08.0.tar.xz";
-      sha256 = "4db172cff4bd3fd06ee1905dcf87013059e02902808e77acfc4bf2734d6ff73f";
-      name = "konqueror-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/konquest-20.08.0.tar.xz";
-      sha256 = "e6938230c2fdd94903d13ed34f8d1e8db8221c9ceb571c5737f429291d4cca04";
-      name = "konquest-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/konsole-20.08.0.tar.xz";
-      sha256 = "b641bc2f66195887a25ec588b638a78a0d00e6d2d41c126bca9a45f30f70aee9";
-      name = "konsole-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kontact-20.08.0.tar.xz";
-      sha256 = "d759b475938079f87d5042d4fc6608c0263800cfc2156e83c874faa77c488646";
-      name = "kontact-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kontactinterface-20.08.0.tar.xz";
-      sha256 = "6b20e160642063b966f359ecf2e1946db161728d42f4e6b15a77f6a19f151048";
-      name = "kontactinterface-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kopete-20.08.0.tar.xz";
-      sha256 = "44805238ed04620101d3921e3eab0bb89d329c4d216b9cb49589459a3e4ea7e6";
-      name = "kopete-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/korganizer-20.08.0.tar.xz";
-      sha256 = "c99470c92327e9e6c91276b4141bb36b08e3a9726e40edba6656d1014ee46b82";
-      name = "korganizer-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kpat-20.08.0.tar.xz";
-      sha256 = "feaca3a018a8b2a94a183915b29ff671474911b1da3a149bf3ba70fdcd0a6f53";
-      name = "kpat-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kpimtextedit-20.08.0.tar.xz";
-      sha256 = "3ae3b9f8a980d10e366351efaf2b186fd911402da5b5ee634f4687d43586ce34";
-      name = "kpimtextedit-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kpkpass-20.08.0.tar.xz";
-      sha256 = "553b841cf3fdf4809251941997f7dee8e09360a5b7df386e3540c73d176ba055";
-      name = "kpkpass-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kqtquickcharts-20.08.0.tar.xz";
-      sha256 = "f17807dfa20de202615c56779ef6e4d355a275b576d6e0969357fdb359b1b235";
-      name = "kqtquickcharts-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/krdc-20.08.0.tar.xz";
-      sha256 = "96f4411dc80e746142796745c3b7fca4663aa37878391a00d1e70f2ba3be652c";
-      name = "krdc-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kreversi-20.08.0.tar.xz";
-      sha256 = "341603d23ffaf94af6c246540bbe7ba86aca3e5afe3135a0511aca22cd6a4d7f";
-      name = "kreversi-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/krfb-20.08.0.tar.xz";
-      sha256 = "f7ca46cc216ecd3790d045a36a642c834a9af4024409075e7a5bf8b498c67e4b";
-      name = "krfb-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kross-interpreters-20.08.0.tar.xz";
-      sha256 = "7a27547b150d686524578fc256e1282f64554513d2724994020caf89e7a60b10";
-      name = "kross-interpreters-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kruler-20.08.0.tar.xz";
-      sha256 = "71ca2308b8cee2fdd01faac526d20c813cab3664443b78e751f9d7d024e4e2c0";
-      name = "kruler-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kshisen-20.08.0.tar.xz";
-      sha256 = "5b3cc83d3cd427dcbaa98e2536f58deb36ee4eefe0a35e6d5c9613a64abad0d8";
-      name = "kshisen-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/ksirk-20.08.0.tar.xz";
-      sha256 = "7e4acd8586a2c8619c3ca08138ca22cee46b4c46d5972a571665b09c6468cd06";
-      name = "ksirk-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/ksmtp-20.08.0.tar.xz";
-      sha256 = "3fe08534bdb7037a8fd9a8c1a37456abe80252994232cfe31c368dcdc3c328c2";
-      name = "ksmtp-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/ksnakeduel-20.08.0.tar.xz";
-      sha256 = "ebc5353ea2e5d16f2d966859b0ea081c81ed7d10c1975054e441545b79f60e5e";
-      name = "ksnakeduel-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kspaceduel-20.08.0.tar.xz";
-      sha256 = "6cd633521091ac8a1eed28b234657ba2db287c3b29ee2d071005f3438bbb1b07";
-      name = "kspaceduel-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/ksquares-20.08.0.tar.xz";
-      sha256 = "84b459e6c1058f637b4894a4f97dfd95b0c9bb70954059d24538f80918b45ed3";
-      name = "ksquares-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/ksudoku-20.08.0.tar.xz";
-      sha256 = "0dbe6e03ca8b7203a307f97dad4a8035c20f3172d3e005b047557c2334c04a92";
-      name = "ksudoku-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/ksystemlog-20.08.0.tar.xz";
-      sha256 = "359eaa1cc34fa06b2ef3788c249c2b3355d6d39cddbf809df07179c10630e9a4";
-      name = "ksystemlog-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kteatime-20.08.0.tar.xz";
-      sha256 = "c7142cd0329cf23fdb79d3c2d508cb00cb70c517db1f832d2a39ba7c4e103fd3";
-      name = "kteatime-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/ktimer-20.08.0.tar.xz";
-      sha256 = "4a3722945f26df087158a5af69cc81ba10054a778f04fecd32ff816732dff0dd";
-      name = "ktimer-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/ktnef-20.08.0.tar.xz";
-      sha256 = "69d18a052cc522161821f98fb4103d38e1ff566622915b7138866e7737ffa62f";
-      name = "ktnef-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/ktouch-20.08.0.tar.xz";
-      sha256 = "c4b218f672c0cb86930cdadf622d758a42b54732319e8ea86405b7f9b3281802";
-      name = "ktouch-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/ktp-accounts-kcm-20.08.0.tar.xz";
-      sha256 = "912552aa0df62298323c5eaaf36975b71ef50be56a5b69ceddcd5f00d4acb4f9";
-      name = "ktp-accounts-kcm-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/ktp-approver-20.08.0.tar.xz";
-      sha256 = "463a9009599b6e18b2e30793b6bce408e4c9a0edb2de458fb588204eb0aa2f3a";
-      name = "ktp-approver-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/ktp-auth-handler-20.08.0.tar.xz";
-      sha256 = "d2f1dd4c5f4043eebeb178dd20eedc95dea47a4c75f2df13cd1d9cd0288b699a";
-      name = "ktp-auth-handler-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/ktp-call-ui-20.08.0.tar.xz";
-      sha256 = "2744e739456fd3aba322eb3c47be84511450dd713838e133be4f1957a3b9a0bf";
-      name = "ktp-call-ui-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/ktp-common-internals-20.08.0.tar.xz";
-      sha256 = "9ee962e2afd5db0fc23da69468f008ff239e97ef77d8930f7e5960d732d8a4b2";
-      name = "ktp-common-internals-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/ktp-contact-list-20.08.0.tar.xz";
-      sha256 = "ec00bf525450c972634e60dfb423f9cd2be7caa4181e84efa7d88fc6f079a995";
-      name = "ktp-contact-list-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/ktp-contact-runner-20.08.0.tar.xz";
-      sha256 = "1123adbdfdbdb8bb524ba39ab175f39964cef2ecf5eed9a0a1d0129d7ae8ecbc";
-      name = "ktp-contact-runner-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/ktp-desktop-applets-20.08.0.tar.xz";
-      sha256 = "6a6eb5090f6273abb9ff1b70777c32bd4ba5fd0d270dfa0490ac370c31d0cab5";
-      name = "ktp-desktop-applets-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/ktp-filetransfer-handler-20.08.0.tar.xz";
-      sha256 = "df16a920a233eaec25c73514e951f5f569a0f0f6d4ba46b60a0c2bc3da4ab6cd";
-      name = "ktp-filetransfer-handler-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/ktp-kded-module-20.08.0.tar.xz";
-      sha256 = "f321a7db60b0fcd9dd207c38c8097e6cdb3a22aba6730bc03f9ea67bc8d9bb2e";
-      name = "ktp-kded-module-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/ktp-send-file-20.08.0.tar.xz";
-      sha256 = "86d3ca20eb3c3fbfa169a355c0e64d1574433c6985d5188697ef18e521d82104";
-      name = "ktp-send-file-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/ktp-text-ui-20.08.0.tar.xz";
-      sha256 = "a1f5c4c98761f61abd62b6e788a8ec5c4e2b4020e92f3c0c75770c0f01386676";
-      name = "ktp-text-ui-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/ktuberling-20.08.0.tar.xz";
-      sha256 = "8d56e4330b68d8597d502db311282a9d59f8ad91f8acfa7f029d354ac399b702";
-      name = "ktuberling-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kturtle-20.08.0.tar.xz";
-      sha256 = "9c086a0aec74d9d5aa5792f026e6b44b8fdc613cfdeba060fb4694fb3e9b27f9";
-      name = "kturtle-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kubrick-20.08.0.tar.xz";
-      sha256 = "2cf725a96d52d7be157690fb9ce6fe0dcc2cb853fe6e1f9d56ae6c23c09974cc";
-      name = "kubrick-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kwalletmanager-20.08.0.tar.xz";
-      sha256 = "4dea2e1b08cc996d6d4961393d9c8f24051b0a7f6373c4cf575ddf8324804b7a";
-      name = "kwalletmanager-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kwave-20.08.0.tar.xz";
-      sha256 = "7291122e5112eea9b8026937682f77d78e43153c4dc38005ac31fd7235a18e69";
-      name = "kwave-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/kwordquiz-20.08.0.tar.xz";
-      sha256 = "c8350fcf5b4ed61a43d3d72aabfef645e7d1908ef753df36c0124601873b4951";
-      name = "kwordquiz-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/libgravatar-20.08.0.tar.xz";
-      sha256 = "9faf1ab53cebf2f54fb851ec5bcffc65b18a846a50e3d890b66b947ab93d6397";
-      name = "libgravatar-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/libkcddb-20.08.0.tar.xz";
-      sha256 = "516723e29ae37c84865eaf86f82481c4275ea8507e172fc8a0279572705fbc6a";
-      name = "libkcddb-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/libkcompactdisc-20.08.0.tar.xz";
-      sha256 = "043a0ca6dd5d85b4313495d0ae530fe96448da2f472a8af2a633d646be0c065c";
-      name = "libkcompactdisc-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/libkdcraw-20.08.0.tar.xz";
-      sha256 = "8e2e1577a751eb0c570e5f6ad394d459ef3d127ee8950eee25a4ebf62a2eece7";
-      name = "libkdcraw-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/libkdegames-20.08.0.tar.xz";
-      sha256 = "d77f5e2d913c68286014fe1438b9909826931aaa944a0ce1753d1a449766d99c";
-      name = "libkdegames-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/libkdepim-20.08.0.tar.xz";
-      sha256 = "4f5f0688529d13c10c1c3509f64874a069a5d6cae84f81b258b1d081e86771e0";
-      name = "libkdepim-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/libkeduvocdocument-20.08.0.tar.xz";
-      sha256 = "21ee64628a012478eb8c53ce2374a57d587f6160f32f09231c78e9fac7600d5d";
-      name = "libkeduvocdocument-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/libkexiv2-20.08.0.tar.xz";
-      sha256 = "d4e3fcdaf160c70165b1217931484d544d56ca7630d5f2c85484caebb2afe399";
-      name = "libkexiv2-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/libkgapi-20.08.0.tar.xz";
-      sha256 = "215d21a89887522bbac09774723098dac1602bfc39e4ca23306d08b11d0cd89d";
-      name = "libkgapi-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/libkgeomap-20.08.0.tar.xz";
-      sha256 = "bf39da71ec7cc40e536bf071abda61569acec4ae027d896738ae1ace74eaddf7";
-      name = "libkgeomap-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/libkipi-20.08.0.tar.xz";
-      sha256 = "2a66512b9c840e7e19f943066197a4ef68aea8cd059427732dec9cf5de84294e";
-      name = "libkipi-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/libkleo-20.08.0.tar.xz";
-      sha256 = "44100f7a001ca7eb8cc4b2b9eeab5e8806a5d4eb2a01a69eeaf1843f4e023f85";
-      name = "libkleo-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/libkmahjongg-20.08.0.tar.xz";
-      sha256 = "1792a04f59fe188a7707c0f77e9ef598e9dfb6444c7aba574a4a46760aeaf63a";
-      name = "libkmahjongg-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/libkomparediff2-20.08.0.tar.xz";
-      sha256 = "0571d016675496341d6e841d88b2ff8682b2958d91a38a69a6130a0766ff6a1b";
-      name = "libkomparediff2-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/libksane-20.08.0.tar.xz";
-      sha256 = "536e0f914095ddfeee132e227d9d2a840186da512b82d95fc9a7262a3a912ea6";
-      name = "libksane-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/libksieve-20.08.0.tar.xz";
-      sha256 = "af6b4a1b787efdf20792a8ded6ae4d8f49d4cef129b4b3fd7048441bb879b586";
-      name = "libksieve-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/lokalize-20.08.0.tar.xz";
-      sha256 = "dd05509386b816aeb02797769c28e12cf8b3f38d88f722a699a77db94c9ab71e";
-      name = "lokalize-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/lskat-20.08.0.tar.xz";
-      sha256 = "9a6af851f0fb0b7e6f6d1983bf3c7f12a74022977e879a525424d2867762b471";
-      name = "lskat-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/mailcommon-20.08.0.tar.xz";
-      sha256 = "fa110a41d5e4848d203d3c17fe18c584d892bf78f750c36a5e88a80c80dcd04a";
-      name = "mailcommon-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/mailimporter-20.08.0.tar.xz";
-      sha256 = "5263fdc50b772458cb584f799f80da765e0ac3c4f2e0fecee15305db829cd851";
-      name = "mailimporter-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/marble-20.08.0.tar.xz";
-      sha256 = "0f61c29acc3f88a0eeb0e0923f8c5138188712aad6aa4d9445add186d5962381";
-      name = "marble-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/mbox-importer-20.08.0.tar.xz";
-      sha256 = "075afd543bec9c8c2d056b96704fbfd2fbc4498b289596d4fbb0cd49ff5c720b";
-      name = "mbox-importer-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/messagelib-20.08.0.tar.xz";
-      sha256 = "13aa522b8ff8cf2d7ac7ca6ae4c92e1bd2379d13fc23cabaa36fd6d6bda261cd";
-      name = "messagelib-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/minuet-20.08.0.tar.xz";
-      sha256 = "f3e57e225ec6a0515d39bf868cdd934a6823071527f6da9910b839abc96c8fdb";
-      name = "minuet-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/okular-20.08.0.tar.xz";
-      sha256 = "8d775292cc6b2cb703e5ff716337a49352cd6d3faa90d6d7ac2f4e9d006a4047";
-      name = "okular-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/palapeli-20.08.0.tar.xz";
-      sha256 = "bbbf4d6c0a2048e2bb5e2483acf1970748d9f109e25f3c5cbf6f04709a61aeab";
-      name = "palapeli-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/parley-20.08.0.tar.xz";
-      sha256 = "b1c8d5f39a563ddcc6a00a7e1008608bd58bdcdfc23c11c822b15625f5a48d60";
-      name = "parley-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/picmi-20.08.0.tar.xz";
-      sha256 = "5003bcf33c08eebe24fb689790aef56eb418990a7c6588e2bd1c94ec6f398a5a";
-      name = "picmi-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/pimcommon-20.08.0.tar.xz";
-      sha256 = "4280d7116d392dff4febbadbca6fa20c38b787da7af537ce4e64af28509bd82e";
-      name = "pimcommon-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/pim-data-exporter-20.08.0.tar.xz";
-      sha256 = "42f070d3aea3871004bea3fa712f01ef307ba12328495ded06d3115e7e8ed894";
-      name = "pim-data-exporter-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/pim-sieve-editor-20.08.0.tar.xz";
-      sha256 = "65167f716ce2cc70a4ccbf7f9a5b2a873f36df54984dcc46af1d5694973e709a";
-      name = "pim-sieve-editor-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/poxml-20.08.0.tar.xz";
-      sha256 = "07f5e8f0b215d864d48523c9a1b689f7434dfc0a561d5cf253ad69698770e096";
-      name = "poxml-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/print-manager-20.08.0.tar.xz";
-      sha256 = "6fe74bc4555f92b7d372d01878cbf25b4339f3f0047b52bd0c92571a2b835271";
-      name = "print-manager-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/rocs-20.08.0.tar.xz";
-      sha256 = "447fecd5e87171cae444e70146b5ce99ac94a558db5f7e1ff9053c31953ba48e";
-      name = "rocs-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/signon-kwallet-extension-20.08.0.tar.xz";
-      sha256 = "ec65a9b05dd014ec541ba87e39b6ae8a7af8bf4017f58c7b566960e452f99493";
-      name = "signon-kwallet-extension-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/spectacle-20.08.0.tar.xz";
-      sha256 = "8712c8fc19bc2cc39c5e51cf62dedfba423ad53225b629d667d7ffb8d3900692";
-      name = "spectacle-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/step-20.08.0.tar.xz";
-      sha256 = "8415f807de351b85bc3c4feb9ac45b01300210b9517987c617cd49ba6d472418";
-      name = "step-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/svgpart-20.08.0.tar.xz";
-      sha256 = "3ebb9140ac13c7ece171622ead8c7fd1b1128cccde9635cbc912ca7f8da767a7";
-      name = "svgpart-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/sweeper-20.08.0.tar.xz";
-      sha256 = "b0d7b983a5bb8ceb2454863181c6a2d55c42114f58f66241f46c3365d90a52ec";
-      name = "sweeper-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/umbrello-20.08.0.tar.xz";
-      sha256 = "49e9f7e0748b8f103f72bbc3fbe0ab7b3605646b5024512118dd9beafd64a041";
-      name = "umbrello-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/yakuake-20.08.0.tar.xz";
-      sha256 = "1c13334e0e4c1a6a3f8e11ed6cd05b2cecdd0eb29201c41bd26ca62e22cc084a";
-      name = "yakuake-20.08.0.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 = "20.08.0";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.0/src/zeroconf-ioslave-20.08.0.tar.xz";
-      sha256 = "78bdd0b377132abf30f1ed40c15eae3f0726d7075b311c3b23c71ad59725dc22";
-      name = "zeroconf-ioslave-20.08.0.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/zeroconf-ioslave-20.08.1.tar.xz";
+      sha256 = "ca1685a22922057ba89510d71a11218bf47db0d0313aec2b55aca21932564866";
+      name = "zeroconf-ioslave-20.08.1.tar.xz";
     };
   };
 }
diff --git a/pkgs/applications/misc/adobe-reader/default.nix b/pkgs/applications/misc/adobe-reader/default.nix
index b67e514ce54d1..ecd130426de17 100644
--- a/pkgs/applications/misc/adobe-reader/default.nix
+++ b/pkgs/applications/misc/adobe-reader/default.nix
@@ -28,5 +28,9 @@ stdenv.mkDerivation {
     description = "Adobe Reader, a viewer for PDF documents";
     homepage = "http://www.adobe.com/products/reader";
     license = stdenv.lib.licenses.unfree;
+    knownVulnerabilities = [
+      "Numerous unresolved vulnerabilities"
+      "See: https://www.cvedetails.com/product/497/Adobe-Acrobat-Reader.html?vendor_id=53"
+    ];
   };
 }
diff --git a/pkgs/applications/misc/ausweisapp2/default.nix b/pkgs/applications/misc/ausweisapp2/default.nix
index 1dbcdf31ed19b..9f157798a7d2e 100644
--- a/pkgs/applications/misc/ausweisapp2/default.nix
+++ b/pkgs/applications/misc/ausweisapp2/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "AusweisApp2";
-  version = "1.20.1";
+  version = "1.20.2";
 
   src = fetchFromGitHub {
     owner = "Governikus";
     repo = "AusweisApp2";
     rev = "${version}";
-    sha256 = "17ify6v4z8i8ps3s8qabnrqfkj0my4yzyqwk3q3nhrqilbnhr40x";
+    sha256 = "1vibk3wmn54qr2mwz537hrr959y0r1zabp0gsijhzj2mk68g9pnb";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/pkgs/applications/misc/dbeaver/default.nix b/pkgs/applications/misc/dbeaver/default.nix
index 70ac55ed5adfd..e8a04aa2e14f5 100644
--- a/pkgs/applications/misc/dbeaver/default.nix
+++ b/pkgs/applications/misc/dbeaver/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "dbeaver-ce";
-  version = "7.1.5";
+  version = "7.2.0";
 
   desktopItem = makeDesktopItem {
     name = "dbeaver";
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://dbeaver.io/files/${version}/dbeaver-ce-${version}-linux.gtk.x86_64.tar.gz";
-    sha256 = "14pdkg9xxnldr7qwpb61hp2dgsd5h9scjn59ajqsqn4f4sgcpba0";
+    sha256 = "0zpxsdzhn5fsrlq04v5kvkrgf4dsj5zmpypj9awsd2mjcbp6yxd7";
   };
 
   installPhase = ''
diff --git a/pkgs/applications/misc/electrum/default.nix b/pkgs/applications/misc/electrum/default.nix
index ac296c1224acf..db6b6f2e18137 100644
--- a/pkgs/applications/misc/electrum/default.nix
+++ b/pkgs/applications/misc/electrum/default.nix
@@ -25,13 +25,7 @@ let
   # use the latest 1.x release instead
   py = python3.override {
     packageOverrides = self: super: {
-      dnspython = super.dnspython.overridePythonAttrs (oldAttrs: rec {
-        version = "1.16.0";
-        src = oldAttrs.src.override {
-          inherit version;
-          sha256 = "36c5e8e38d4369a08b6780b7f27d790a292b2b08eea01607865bf0936c558e01";
-        };
-      });
+      dnspython = super.dnspython_1;
     };
   };
 
diff --git a/pkgs/applications/misc/etesync-dav/default.nix b/pkgs/applications/misc/etesync-dav/default.nix
index a27e6e4851638..5e3a85c3b93fc 100644
--- a/pkgs/applications/misc/etesync-dav/default.nix
+++ b/pkgs/applications/misc/etesync-dav/default.nix
@@ -9,6 +9,10 @@ python3Packages.buildPythonApplication rec {
     sha256 = "1q8h89hqi4kxphn1g5nbcia0haz5k57is9rycwaabm55mj9s9fah";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py --replace "Radicale==" "Radicale>="
+  '';
+
   propagatedBuildInputs = with python3Packages; [
     etesync
     flask
diff --git a/pkgs/applications/misc/googleearth/default.nix b/pkgs/applications/misc/googleearth/default.nix
index dff69130c18ac..db38810634541 100644
--- a/pkgs/applications/misc/googleearth/default.nix
+++ b/pkgs/applications/misc/googleearth/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, glibc, libGLU, libGL, freetype, glib, libSM, libICE, libXi, libXv
 , libXrender, libXrandr, libXfixes, libXcursor, libXinerama, libXext, libX11
-, zlib, fontconfig, dpkg, libproxy, libxml2, gstreamer, gst_all_1, dbus }:
+, zlib, fontconfig, dpkg, libproxy, libxml2, gst_all_1, dbus }:
 
 let
   arch =
@@ -33,7 +33,6 @@ let
     fontconfig
     libproxy
     libxml2
-    gstreamer
     dbus
     gst_all_1.gstreamer
     gst_all_1.gst-plugins-base
@@ -80,7 +79,7 @@ stdenv.mkDerivation rec {
     for a in $out/opt/google/earth/free/*.so* ; do
       patchelf --set-rpath "${fullPath}:\$ORIGIN" $a
     done
-    
+
     # Add desktop config file and icons
     mkdir -p $out/share/{applications,icons/hicolor/{16x16,22x22,24x24,32x32,48x48,64x64,128x128,256x256}/apps,pixmaps}
     ln -s $out/opt/google/earth/free/google-earth.desktop $out/share/applications/google-earth.desktop
diff --git a/pkgs/applications/misc/k2pdfopt/0001-Fix-CMakeLists.patch b/pkgs/applications/misc/k2pdfopt/0001-Fix-CMakeLists.patch
new file mode 100644
index 0000000000000..8f9271ac996b2
--- /dev/null
+++ b/pkgs/applications/misc/k2pdfopt/0001-Fix-CMakeLists.patch
@@ -0,0 +1,49 @@
+From 2629af4ed00d7ca65359178203d80fb146901cdb Mon Sep 17 00:00:00 2001
+From: Daniel Fullmer <danielrf12@gmail.com>
+Date: Fri, 3 Jul 2020 21:00:45 -0700
+Subject: [PATCH 1/2] Fix CMakeLists
+
+---
+ CMakeLists.txt | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e218279..4341de9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -57,6 +57,7 @@ endif(JPEG_FOUND)
+ include(FindJasper)
+ if(JASPER_FOUND)
+   set(HAVE_JASPER_LIB 1)
++  set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${JASPER_LIBRARY})
+ endif(JASPER_FOUND)
+ 
+ # paths from willuslib/wgs.c
+@@ -71,9 +72,12 @@ else()
+   message(STATUS "Could NOT find ghostscript executable")
+ endif(GHOSTSCRIPT_EXECUTABLE)
+ 
+-# willus.h
+-# HAVE_GSL_LIB
+-
++pkg_check_modules(GSL gsl)
++if(GSL_FOUND)
++  set(HAVE_GSL_LIB 1)
++  include_directories(SYSTEM ${GSL_INCLUDEDIR})
++  set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${GSL_LDFLAGS})
++endif(GSL_FOUND)
+ 
+ # libfreetype6 (>= 2.3.9), libjbig2dec0, libjpeg8 (>= 8c), libx11-6, libxext6, zlib1g (>= 1:1.2.0)
+ # MUPDF_STATIC_LDFLAGS misses mupdf-js-none, and doubles libs ...
+@@ -85,7 +89,7 @@ if(MUPDF_FOUND)
+   include_directories(SYSTEM ${MUPDF_INCLUDEDIR})
+   message(STATUS "mupdf libraries: ${MUPDF_LDFLAGS}")
+   set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${MUPDF_LDFLAGS} 
+-    -lmupdf-js-none -lopenjpeg -ljbig2dec -ljpeg -lfreetype
++
+   )
+ endif(MUPDF_FOUND)
+ 
+-- 
+2.27.0
+
diff --git a/pkgs/applications/misc/k2pdfopt/default.nix b/pkgs/applications/misc/k2pdfopt/default.nix
index 8899654cc4c88..431426e55fbd8 100644
--- a/pkgs/applications/misc/k2pdfopt/default.nix
+++ b/pkgs/applications/misc/k2pdfopt/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchzip, fetchurl, fetchpatch, cmake, pkgconfig
-, zlib, libpng
+{ stdenv, runCommand, fetchzip, fetchurl, fetchpatch, fetchFromGitHub
+, cmake, pkgconfig, zlib, libpng, makeWrapper
 , enableGSL ? true, gsl
 , enableGhostScript ? true, ghostscript
 , enableMuPDF ? true, mupdf
@@ -11,44 +11,132 @@
 
 with stdenv.lib;
 
-stdenv.mkDerivation rec {
-  pname = "k2pdfopt";
-  version = "2.51a";
+# k2pdfopt is a pain to package. It requires modified versions of mupdf,
+# leptonica, and tesseract.  Instead of shipping patches for these upstream
+# packages, k2pdfopt includes just the modified source files for these
+# packages.  The individual files from the {mupdf,leptonica,tesseract}_mod/
+# directories are intended to replace the corresponding source files in the
+# upstream packages, for a particular version of that upstream package.
+#
+# There are a few ways we could approach packaging these modified versions of
+# mupdf, leptonica, and mupdf:
+# 1) Override the upstream source with a new derivation that involves copying
+# the modified source files from k2pdfopt and replacing the corresponding
+# source files in the upstream packages. Since the files are intended for a
+# particular version of the upstream package, this would not allow us to easily
+# use updates to those packages in nixpkgs.
+# 2) Manually produce patches which can be applied against the upstream
+# project, and have the same effect as replacing those files.  This is what I
+# believe k2pdfopt should do this for us anyway.  The benefit of creating and
+# applying patches in this way is that minor updates (esp. security fixes) to
+# upstream packages might still allow these patches to apply successfully.
+# 3) Automatically produce these patches inside a nix derivation. This is the
+# approach taken here, using the "mkPatch" provided below.  This has the
+# benefit of easier review and should hopefully be simpler to update in the
+# future.
+
+let
+  # Create a patch against src based on changes applied in patchCommands
+  mkPatch = { name, src, patchCommands }: runCommand "${name}-k2pdfopt.patch" { inherit src; } ''
+    source $stdenv/setup
+    unpackPhase
 
-  src = (fetchzip {
-    url = "http://www.willus.com/k2pdfopt/src/k2pdfopt_v2.51_src.zip";
-    sha256 = "133l7xkvi67s6sfk8cfh7rmavbsf7ib5fyksk1ci6b6sch3z2sw9";
-  });
+    orig=$sourceRoot
+    new=$sourceRoot-modded
+    cp -r $orig/. $new/
 
-  # Note: the v2.51a zip contains only files to be replaced in the v2.50 zip.
-  v251a_src = (fetchzip {
-    url = "http://www.willus.com/k2pdfopt/src/k2pdfopt_v2.51a_src.zip";
-    sha256 = "0vvwblii7kgdwfxw8dzk6jbmz4dv94d7rkv18i60y8wkayj6yhl6";
-  });
+    pushd $new >/dev/null
+    ${patchCommands}
+    popd >/dev/null
 
-  postUnpack = ''
-    cp -r ${v251a_src}/* $sourceRoot
+    diff -Naur $orig $new > $out || true
   '';
 
-  patches = [ ./k2pdfopt.patch ./k2pdfopt-mupdf-1.16.1.patch ];
+  pname = "k2pdfopt";
+  version = "2.53";
+  k2pdfopt_src = fetchzip {
+    url = "http://www.willus.com/${pname}/src/${pname}_v${version}_src.zip";
+    sha256 = "1fna8bg3pascjfc3hmc6xn0xi2yh7f1qp0d344mw9hqanbnykyy8";
+  };
+in stdenv.mkDerivation rec {
+  inherit pname version;
+  src = k2pdfopt_src;
+
+  patches = [
+    ./0001-Fix-CMakeLists.patch
+  ];
+
+  postPatch = ''
+    substituteInPlace willuslib/bmpdjvu.c \
+      --replace "<djvu.h>" "<libdjvu/ddjvuapi.h>"
+  '';
 
-  nativeBuildInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig makeWrapper ];
 
   buildInputs =
   let
-    #  The patches below were constructed by taking the files from k2pdfopt in
-    #  the {mupdf,leptonica,tesseract}_mod/ directories, replacing the
-    #  corresponding files in the respective source trees, resolving any errors
-    #  with more recent versions of these depencencies, and running diff.
-    mupdf_modded = mupdf.overrideAttrs (attrs: {
-      patches = attrs.patches ++ [ ./mupdf.patch ]; # Last verified with mupdf 1.16.1
+    # We use specific versions of these sources below to match the versions
+    # used in the k2pdfopt source. Note that this does _not_ need to match the
+    # version used elsewhere in nixpkgs, since it is only used to create the
+    # patch that can then be applied to the version in nixpkgs.
+    mupdf_patch = mkPatch {
+      name = "mupdf";
+      src = fetchurl {
+        url = "https://mupdf.com/downloads/archive/mupdf-1.17.0-source.tar.gz";
+        sha256 = "13nl9nrcx2awz9l83mlv2psi1lmn3hdnfwxvwgwiwbxlkjl3zqq0";
+      };
+      patchCommands = ''
+        cp ${k2pdfopt_src}/mupdf_mod/{filter-basic,font,stext-device,string}.c ./source/fitz/
+        cp ${k2pdfopt_src}/mupdf_mod/pdf-* ./source/pdf/
+      '';
+    };
+    mupdf_modded = mupdf.overrideAttrs ({ patches ? [], ... }: {
+      patches = patches ++ [ mupdf_patch ];
+      # This function is missing in font.c, see font-win32.c
+      postPatch = ''
+        echo "void pdf_install_load_system_font_funcs(fz_context *ctx) {}" >> source/fitz/font.c
+      '';
     });
-    leptonica_modded = leptonica.overrideAttrs (attrs: {
-      patches = [ ./leptonica.patch ]; # Last verified with leptonica 1.78.0
+
+    leptonica_patch = mkPatch {
+      name = "leptonica";
+      src = fetchurl {
+        url = "http://www.leptonica.org/source/leptonica-1.79.0.tar.gz";
+        sha256 = "1n004gv1dj3pq1fcnfdclvvx5nang80336aa67nvs3nnqp4ncn84";
+      };
+      patchCommands = "cp -r ${k2pdfopt_src}/leptonica_mod/. ./src/";
+    };
+    leptonica_modded = leptonica.overrideAttrs ({ patches ? [], ... }: {
+      patches = patches ++ [ leptonica_patch ];
     });
+
+    tesseract_patch = mkPatch {
+      name = "tesseract";
+      src = fetchFromGitHub {
+        owner = "tesseract-ocr";
+        repo = "tesseract";
+        rev = "4.1.1";
+        sha256 = "1ca27zbjpx35nxh9fha410z3jskwyj06i5hqiqdc08s2d7kdivwn";
+      };
+      patchCommands = ''
+        cp ${k2pdfopt_src}/tesseract_mod/{baseapi,tesscapi,tesseract}.* src/api/
+        cp ${k2pdfopt_src}/tesseract_mod/{tesscapi,tessedit,tesseract}.* src/ccmain/
+        cp ${k2pdfopt_src}/tesseract_mod/dotproduct{avx,fma,sse}.* src/arch/
+        cp ${k2pdfopt_src}/tesseract_mod/{intsimdmatrixsse,simddetect}.* src/arch/
+        cp ${k2pdfopt_src}/tesseract_mod/{errcode,genericvector,mainblk,params,serialis,tessdatamanager,tess_version,tprintf,unicharset}.* src/ccutil/
+        cp ${k2pdfopt_src}/tesseract_mod/{input,lstmrecognizer}.* src/lstm/
+        cp ${k2pdfopt_src}/tesseract_mod/openclwrapper.* src/opencl/
+      '';
+    };
     tesseract_modded = tesseract4.override {
-      tesseractBase = tesseract4.tesseractBase.overrideAttrs (_: {
-        patches = [ ./tesseract.patch ]; # Last verified with tesseract 1.4
+      tesseractBase = tesseract4.tesseractBase.overrideAttrs ({ patches ? [], ... }: {
+        patches = patches ++ [ tesseract_patch ];
+        # Additional compilation fixes
+        postPatch = ''
+          echo libtesseract_api_la_SOURCES += tesscapi.cpp >> src/api/Makefile.am
+          substituteInPlace src/api/tesseract.h \
+            --replace "#include <leptonica.h>" "//#include <leptonica.h>"
+        '';
       });
     };
   in
@@ -71,6 +159,10 @@ stdenv.mkDerivation rec {
     install -D -m 755 k2pdfopt $out/bin/k2pdfopt
   '';
 
+  preFixup = optionalString enableTesseract ''
+    wrapProgram $out/bin/k2pdfopt --set-default TESSDATA_PREFIX ${tesseract4}/share/tessdata
+  '';
+
   meta = with stdenv.lib; {
     description = "Optimizes PDF/DJVU files for mobile e-readers (e.g. the Kindle) and smartphones";
     homepage = "http://www.willus.com/k2pdfopt";
diff --git a/pkgs/applications/misc/k2pdfopt/k2pdfopt-mupdf-1.16.1.patch b/pkgs/applications/misc/k2pdfopt/k2pdfopt-mupdf-1.16.1.patch
deleted file mode 100644
index 3a9eca30e751a..0000000000000
--- a/pkgs/applications/misc/k2pdfopt/k2pdfopt-mupdf-1.16.1.patch
+++ /dev/null
@@ -1,151 +0,0 @@
-diff --git a/willuslib/wmupdf.c b/willuslib/wmupdf.c
-index 81627ef..f14a96c 100644
---- a/willuslib/wmupdf.c
-+++ b/willuslib/wmupdf.c
-@@ -189,8 +189,6 @@ int wmupdf_remake_pdf(char *infile,char *outfile,WPDFPAGEINFO *pageinfo,int use_
-     pdf_write_opts.do_compress=1;
-     pdf_write_opts.do_linear=0;
-     pdf_write_opts.do_garbage=1; /* 2 and 3 don't work for this. */
--    pdf_write_opts.continue_on_error=0;
--    pdf_write_opts.errors=NULL;
-     write_failed=0;
-     wpdfpageinfo_sort(pageinfo);
-     xref=NULL;
-@@ -1687,8 +1685,8 @@ WPDFOUTLINE *wpdfoutline_read_from_pdf_file(char *filename)
-         /* Sumatra version of MuPDF v1.4 -- use locally installed fonts */
-         pdf_install_load_system_font_funcs(ctx);
-         fz_try(ctx) { doc=fz_open_document(ctx,filename); }
--        fz_catch(ctx) 
--            { 
-+        fz_catch(ctx)
-+            {
-             fz_drop_context(ctx);
-             return(NULL);
-             }
-@@ -1890,5 +1888,5 @@ static pdf_obj *pdf_new_string_utf8(fz_context *ctx,char *string)
-     willus_mem_free((double **)&utfbuf,funcname);
-     return(pdfobj);
-     }
--    
-+
- #endif /* HAVE_MUPDF_LIB */
-diff --git a/willuslib/wmupdfinfo.c b/willuslib/wmupdfinfo.c
-index 5c7f38c..9b9e6fd 100644
---- a/willuslib/wmupdfinfo.c
-+++ b/willuslib/wmupdfinfo.c
-@@ -237,23 +237,22 @@ static void showglobalinfo(fz_context *ctx, globals *glo,char *filename)
-         pdf_obj *robj;
- 
-         robj=pdf_resolve_indirect(ctx,obj);
--        n=pdf_sprint_obj(ctx,NULL,0,robj,1);
--        buf=malloc(n+2);
-+        buf=pdf_sprint_obj(ctx,NULL,0,&n,robj,1,0);
-         if (buf==NULL)
-             {
-             fz_write_printf(ctx,out,"Info object (%d %d R):\n",pdf_to_num(ctx,obj),pdf_to_gen(ctx,obj));
--		    pdf_print_obj(ctx,out,robj,1);
-+		    pdf_print_obj(ctx,out,robj,1,0);
-             }
-         else
-             {
--            pdf_sprint_obj(ctx,buf,n+2,robj,1);
-+            pdf_sprint_obj(ctx,buf,n+2,&n,robj,1,0);
-             display_pdf_field(ctx,out,buf,"Title","TITLE");
-             display_pdf_field(ctx,out,buf,"CreationDate","CREATED");
-             display_pdf_field(ctx,out,buf,"ModDate","LAST MODIFIED");
-             display_pdf_field(ctx,out,buf,"Producer","PDF PRODUCER");
-             display_pdf_field(ctx,out,buf,"Creator","CREATOR");
-             display_file_size(ctx,out,filename);
--            free(buf);
-+            fz_free(ctx,buf);
-             }
- 	    }
-     if (glo->dims==1)
-@@ -275,7 +274,7 @@ static void showglobalinfo(fz_context *ctx, globals *glo,char *filename)
- 	if (obj)
-         {
- 		fz_write_printf(ctx,out, "\nEncryption object (%d %d R):\n", pdf_to_num(ctx,obj), pdf_to_gen(ctx,obj));
--		pdf_print_obj(ctx,out, pdf_resolve_indirect(ctx,obj), 1);
-+		pdf_print_obj(ctx,out, pdf_resolve_indirect(ctx,obj), 1, 0);
-         }
-     }
- 
-@@ -396,7 +395,7 @@ gatherdimensions(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_
- 	if (j < glo->dims)
- 		return;
- 
--	glo->dim = fz_resize_array(ctx, glo->dim, glo->dims+1, sizeof(struct info));
-+	glo->dim = fz_realloc_array(ctx, glo->dim, glo->dims+1, struct info);
- 	glo->dims++;
- 
- 	glo->dim[glo->dims - 1].page = page;
-@@ -441,7 +440,7 @@ gatherfonts(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_obj *
- 		if (k < glo->fonts)
- 			continue;
- 
--		glo->font = fz_resize_array(ctx, glo->font, glo->fonts+1, sizeof(struct info));
-+		glo->font = fz_realloc_array(ctx, glo->font, glo->fonts+1, struct info);
- 		glo->fonts++;
- 
- 		glo->font[glo->fonts - 1].page = page;
-@@ -510,7 +509,7 @@ gatherimages(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_obj
- 		if (k < glo->images)
- 			continue;
- 
--		glo->image = fz_resize_array(ctx, glo->image, glo->images+1, sizeof(struct info));
-+		glo->image = fz_realloc_array(ctx, glo->image, glo->images+1, struct info);
- 		glo->images++;
- 
- 		glo->image[glo->images - 1].page = page;
-@@ -568,7 +567,7 @@ gatherforms(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_obj *
- 		if (k < glo->forms)
- 			continue;
- 
--		glo->form = fz_resize_array(ctx, glo->form, glo->forms+1, sizeof(struct info));
-+		glo->form = fz_realloc_array(ctx, glo->form, glo->forms+1, struct info);
- 		glo->forms++;
- 
- 		glo->form[glo->forms - 1].page = page;
-@@ -613,7 +612,7 @@ gatherpsobjs(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_obj
- 		if (k < glo->psobjs)
- 			continue;
- 
--		glo->psobj = fz_resize_array(ctx, glo->psobj, glo->psobjs+1, sizeof(struct info));
-+		glo->psobj = fz_realloc_array(ctx, glo->psobj, glo->psobjs+1, struct info);
- 		glo->psobjs++;
- 
- 		glo->psobj[glo->psobjs - 1].page = page;
-@@ -656,7 +655,7 @@ gathershadings(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_ob
- 		if (k < glo->shadings)
- 			continue;
- 
--		glo->shading = fz_resize_array(ctx, glo->shading, glo->shadings+1, sizeof(struct info));
-+		glo->shading = fz_realloc_array(ctx, glo->shading, glo->shadings+1, struct info);
- 		glo->shadings++;
- 
- 		glo->shading[glo->shadings - 1].page = page;
-@@ -724,7 +723,7 @@ gatherpatterns(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_ob
- 		if (k < glo->patterns)
- 			continue;
- 
--		glo->pattern = fz_resize_array(ctx, glo->pattern, glo->patterns+1, sizeof(struct info));
-+		glo->pattern = fz_realloc_array(ctx, glo->pattern, glo->patterns+1, struct info);
- 		glo->patterns++;
- 
- 		glo->pattern[glo->patterns - 1].page = page;
-@@ -1216,7 +1215,7 @@ void wmupdfinfo_get(char *filename,int *pagelist,char **buf)
-     if (fout==NULL)
-         return;
-     */
--    
-+
-     ctx = fz_new_context(NULL, NULL, FZ_STORE_UNLIMITED);
-     if (!ctx)
-         {
-@@ -1307,5 +1306,5 @@ static void date_convert(char *dst,char *src)
-     else if (src[i]!='\0')
-         sprintf(&dst[strlen(dst)]," %s",&src[i]);
-     }
--    
-+
- #endif /* HAVE_MUPDF_LIB */
diff --git a/pkgs/applications/misc/k2pdfopt/k2pdfopt.patch b/pkgs/applications/misc/k2pdfopt/k2pdfopt.patch
deleted file mode 100644
index cf7e4896b803c..0000000000000
--- a/pkgs/applications/misc/k2pdfopt/k2pdfopt.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 4a2378b..502c477 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -52,6 +52,7 @@ endif(JPEG_FOUND)
- include(FindJasper)
- if(JASPER_FOUND)
-   set(HAVE_JASPER_LIB 1)
-+  set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${JASPER_LIBRARY})
- endif(JASPER_FOUND)
- 
- # paths from willuslib/wgs.c
-@@ -66,8 +67,12 @@ else()
-   message(STATUS "Could NOT find ghostscript executable")
- endif(GHOSTSCRIPT_EXECUTABLE)
- 
--# willus.h
--# HAVE_GSL_LIB
-+pkg_check_modules(GSL gsl)
-+if(GSL_FOUND)
-+  set(HAVE_GSL_LIB 1)
-+  include_directories(SYSTEM ${GSL_INCLUDEDIR})
-+  set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${GSL_LDFLAGS})
-+endif(GSL_FOUND)
- 
- 
- # libfreetype6 (>= 2.3.9), libjbig2dec0, libjpeg8 (>= 8c), libx11-6, libxext6, zlib1g (>= 1:1.2.0)
-@@ -80,7 +85,7 @@ if(MUPDF_FOUND)
-   include_directories(SYSTEM ${MUPDF_INCLUDEDIR})
-   message(STATUS "mupdf libraries: ${MUPDF_LDFLAGS}")
-   set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${MUPDF_LDFLAGS} 
--    -lmupdf-js-none -lopenjpeg -ljbig2dec -ljpeg -lfreetype
-+ 
-   )
- endif(MUPDF_FOUND)
- 
-@@ -91,9 +96,25 @@ if(DJVU_FOUND)
-   set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${DJVU_LDFLAGS})
- endif(DJVU_FOUND)
- 
--# HAVE_GOCR_LIB
--# HAVE_LEPTONICA_LIB
--# HAVE_TESSERACT_LIB
-+find_library(GOCR_LIB NAMES Pgm2asc)
-+if(GOCR_LIB)
-+  set(HAVE_GOCR_LIB 1)
-+  set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${GOCR_LIB})
-+endif(GOCR_LIB)
-+
-+pkg_check_modules(LEPTONICA lept)
-+if(LEPTONICA_FOUND)
-+  set(HAVE_LEPTONICA_LIB 1)
-+  include_directories(SYSTEM ${LEPTONICA_INCLUDEDIR})
-+  set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${LEPTONICA_LDFLAGS})
-+endif(LEPTONICA_FOUND)
-+
-+pkg_check_modules(TESSERACT tesseract)
-+if(TESSERACT_FOUND)
-+  set(HAVE_TESSERACT_LIB 1)
-+  include_directories(SYSTEM ${TESSERACT_INCLUDEDIR})
-+  set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${TESSERACT_LDFLAGS})
-+endif(TESSERACT_FOUND)
- 
- # ---- Describe project
- 
-diff --git a/willuslib/CMakeLists.txt b/willuslib/CMakeLists.txt
-index 463bbc9..8043db5 100644
---- a/willuslib/CMakeLists.txt
-+++ b/willuslib/CMakeLists.txt
-@@ -6,7 +6,7 @@ include_directories(..)
- set(WILLUSLIB_SRC
-     ansi.c array.c bmp.c bmpdjvu.c bmpmupdf.c dtcompress.c filelist.c
-     fontdata.c fontrender.c gslpolyfit.c linux.c math.c mem.c ocr.c
--    ocrjocr.c ocrtess.c pdfwrite.c point2d.c render.c strbuf.c string.c
-+    ocrgocr.c ocrtess.c pdfwrite.c point2d.c render.c strbuf.c string.c
-     token.c wfile.c wgs.c wgui.c willusversion.c win.c winbmp.c
-     wincomdlg.c winmbox.c winshell.c wmupdf.c wmupdfinfo.c wpdf.c wsys.c
-     wzfile.c wleptonica.c
-diff --git a/willuslib/ocrgocr.c b/willuslib/ocrgocr.c
-index 6027e9a..fbe10f0 100644
---- a/willuslib/ocrgocr.c
-+++ b/willuslib/ocrgocr.c
-@@ -29,6 +29,8 @@
- #ifdef HAVE_GOCR_LIB
- #include <gocr.h>
- 
-+job_t *OCR_JOB;
-+
- /*
- ** bmp8 must be grayscale
- ** (x1,y1) and (x2,y2) from top left of bitmap
-@@ -63,6 +65,7 @@ void gocr_single_word_from_bmp8(char *text,int maxlen,WILLUSBITMAP *bmp8,
-     h=y2-y1+1;
-     dh=h+bw*2;
-     job=&_job;
-+    OCR_JOB=job;
-     job_init(job);
-     job_init_image(job);
-     // willus_mem_alloc_warn((void **)&job->src.p.p,w*h,funcname,10);
diff --git a/pkgs/applications/misc/k2pdfopt/leptonica.patch b/pkgs/applications/misc/k2pdfopt/leptonica.patch
deleted file mode 100644
index dfab99fd0130d..0000000000000
--- a/pkgs/applications/misc/k2pdfopt/leptonica.patch
+++ /dev/null
@@ -1,254 +0,0 @@
-From 8c11a20925686855023df90ed477957c7d7fe91e Mon Sep 17 00:00:00 2001
-From: Daniel Fullmer <danielrf12@gmail.com>
-Date: Fri, 13 Sep 2019 15:54:21 -0400
-Subject: [PATCH] Willus mod for k2pdfopt
-
----
- src/allheaders.h |   4 ++
- src/dewarp2.c    | 106 ++++++++++++++++++++++++++++++++++++++++++-----
- src/leptwin.c    |   6 ++-
- 3 files changed, 104 insertions(+), 12 deletions(-)
-
-diff --git a/src/allheaders.h b/src/allheaders.h
-index e68eff1..b3cc729 100644
---- a/src/allheaders.h
-+++ b/src/allheaders.h
-@@ -669,6 +669,10 @@ LEPT_DLL extern L_DEWARPA * dewarpaReadMem ( const l_uint8 *data, size_t size );
- LEPT_DLL extern l_ok dewarpaWrite ( const char *filename, L_DEWARPA *dewa );
- LEPT_DLL extern l_ok dewarpaWriteStream ( FILE *fp, L_DEWARPA *dewa );
- LEPT_DLL extern l_ok dewarpaWriteMem ( l_uint8 **pdata, size_t *psize, L_DEWARPA *dewa );
-+/* WILLUS MOD */
-+    LEPT_DLL extern l_int32 dewarpBuildPageModel_ex ( L_DEWARP *dew, const char *debugfile,l_int32 fit_order );
-+    LEPT_DLL extern l_int32 dewarpFindVertDisparity_ex ( L_DEWARP *dew, PTAA *ptaa, l_int32 rotflag,l_int32 fit_order );
-+    LEPT_DLL extern l_int32 dewarpBuildLineModel_ex ( L_DEWARP *dew, l_int32 opensize, const char *debugfile,l_int32 fit_order );
- LEPT_DLL extern l_ok dewarpBuildPageModel ( L_DEWARP *dew, const char *debugfile );
- LEPT_DLL extern l_ok dewarpFindVertDisparity ( L_DEWARP *dew, PTAA *ptaa, l_int32 rotflag );
- LEPT_DLL extern l_ok dewarpFindHorizDisparity ( L_DEWARP *dew, PTAA *ptaa );
-diff --git a/src/dewarp2.c b/src/dewarp2.c
-index 220eec1..2e29500 100644
---- a/src/dewarp2.c
-+++ b/src/dewarp2.c
-@@ -144,9 +144,17 @@ static const l_float32   L_ALLOWED_W_FRACT = 0.05;  /* no bigger */
-  *          longest textlines.
-  * </pre>
-  */
-+/* WILLUS MOD */
- l_ok
--dewarpBuildPageModel(L_DEWARP    *dew,
--                     const char  *debugfile)
-+dewarpBuildPageModel(L_DEWARP *dew,const char *debugfile)
-+{
-+return(dewarpBuildPageModel_ex(dew,debugfile,2));
-+}
-+
-+l_ok
-+dewarpBuildPageModel_ex(L_DEWARP    *dew,
-+                     const char  *debugfile,
-+                     l_int32 fit_order)
- {
- l_int32  linecount, topline, botline, ret;
- PIX     *pixs, *pix1, *pix2, *pix3;
-@@ -225,7 +233,7 @@ PTAA    *ptaa1, *ptaa2;
-         /* Get the sampled vertical disparity from the textline centers.
-          * The disparity array will push pixels vertically so that each
-          * textline is flat and centered at the y-position of the mid-point. */
--    if (dewarpFindVertDisparity(dew, ptaa2, 0) != 0) {
-+    if (dewarpFindVertDisparity_ex(dew, ptaa2, 0, fit_order) != 0) {
-         L_WARNING("vertical disparity not built\n", procName);
-         ptaaDestroy(&ptaa2);
-         return 1;
-@@ -290,13 +298,24 @@ PTAA    *ptaa1, *ptaa2;
-  *          a pdf.  Non-pix debug output goes to /tmp.
-  * </pre>
-  */
-+/* WILLUS MOD */
- l_ok
- dewarpFindVertDisparity(L_DEWARP  *dew,
-                         PTAA      *ptaa,
-                         l_int32    rotflag)
- {
-+return(dewarpFindVertDisparity_ex(dew,ptaa,rotflag,2));
-+}
-+/* WILLUS MOD -- add cubic and quartic fits and ..._ex functions */
-+l_int32
-+dewarpFindVertDisparity_ex(L_DEWARP  *dew,
-+                        PTAA      *ptaa,
-+                        l_int32    rotflag,
-+                        l_int32    fit_order)
-+{
- l_int32     i, j, nlines, npts, nx, ny, sampling;
--l_float32   c0, c1, c2, x, y, midy, val, medval, meddev, minval, maxval;
-+/* WILLUS MOD */
-+l_float32   c0, c1, c2, c3, c4, x, y, midy, val, medval, meddev, minval, maxval;
- l_float32  *famidys;
- NUMA       *nax, *nafit, *nacurve0, *nacurve1, *nacurves;
- NUMA       *namidy, *namidys, *namidysi;
-@@ -304,11 +323,22 @@ PIX        *pix1, *pix2, *pixcirc, *pixdb;
- PTA        *pta, *ptad, *ptacirc;
- PTAA       *ptaa0, *ptaa1, *ptaa2, *ptaa3, *ptaa4, *ptaa5, *ptaat;
- FPIX       *fpix;
-+/* WILLUS MOD */
-+l_int32 fit_order1,fit_order2;
- 
-     PROCNAME("dewarpFindVertDisparity");
- 
-     if (!dew)
-         return ERROR_INT("dew not defined", procName, 1);
-+/* WILLUS MOD */
-+    if (fit_order < 10)
-+        fit_order1 = fit_order2 = fit_order;
-+    else
-+        {
-+        fit_order1=fit_order % 10;
-+        fit_order2=fit_order / 10;
-+        fit_order2=fit_order2 % 10;
-+        }
-     dew->vsuccess = 0;
-     if (!ptaa)
-         return ERROR_INT("ptaa not defined", procName, 1);
-@@ -331,12 +361,32 @@ FPIX       *fpix;
-     pixdb = (rotflag) ? pixRotateOrth(dew->pixs, 1) : pixClone(dew->pixs);
-     for (i = 0; i < nlines; i++) {  /* for each line */
-         pta = ptaaGetPta(ptaa, i, L_CLONE);
--        ptaGetQuadraticLSF(pta, &c2, &c1, &c0, NULL);
--        numaAddNumber(nacurve0, c2);
-+/* WILLUS MOD */
-+if (fit_order1>3)
-+    {
-+    ptaGetQuarticLSF(pta, &c4, &c3, &c2, &c1, &c0, NULL);
-+    numaAddNumber(nacurve0, c4);
-+    }
-+else if (fit_order1==3)
-+    {
-+    ptaGetCubicLSF(pta, &c3, &c2, &c1, &c0, NULL);
-+    numaAddNumber(nacurve0, c3);
-+    }
-+else
-+    {
-+    ptaGetQuadraticLSF(pta, &c2, &c1, &c0, NULL);
-+    numaAddNumber(nacurve0, c2);
-+    }
-         ptad = ptaCreate(nx);
-         for (j = 0; j < nx; j++) {  /* uniformly sampled in x */
-              x = j * sampling;
--             applyQuadraticFit(c2, c1, c0, x, &y);
-+/* WILLUS MOD */
-+if (fit_order1>3)
-+    applyQuarticFit(c4, c3, c2, c1, c0, x, &y);
-+else if (fit_order1==3)
-+    applyCubicFit(c3, c2, c1, c0, x, &y);
-+else
-+    applyQuadraticFit(c2, c1, c0, x, &y);
-              ptaAddPt(ptad, x, y);
-         }
-         ptaaAddPta(ptaa0, ptad, L_INSERT);
-@@ -350,7 +400,13 @@ FPIX       *fpix;
-         for (i = 0; i < nlines; i++) {
-             pta = ptaaGetPta(ptaa, i, L_CLONE);
-             ptaGetArrays(pta, &nax, NULL);
--            ptaGetQuadraticLSF(pta, NULL, NULL, NULL, &nafit);
-+/* WILLUS MOD */
-+if (fit_order1>3)
-+ptaGetQuarticLSF(pta, NULL, NULL, NULL, NULL, NULL, &nafit);
-+else if (fit_order1==3)
-+ptaGetCubicLSF(pta, NULL, NULL, NULL, NULL, &nafit);
-+else
-+ptaGetQuadraticLSF(pta, NULL, NULL, NULL, &nafit);
-             ptad = ptaCreateFromNuma(nax, nafit);
-             ptaaAddPta(ptaat, ptad, L_INSERT);
-             ptaDestroy(&pta);
-@@ -494,11 +550,24 @@ FPIX       *fpix;
-     ptaa5 = ptaaCreate(nx);  /* uniformly sampled across full height of image */
-     for (j = 0; j < nx; j++) {  /* for each column */
-         pta = ptaaGetPta(ptaa4, j, L_CLONE);
--        ptaGetQuadraticLSF(pta, &c2, &c1, &c0, NULL);
-+/* WILLUS MOD */
-+/* Order higher than 2 can cause a little craziness here. */
-+if (fit_order2>3)
-+    ptaGetQuarticLSF(pta, &c4, &c3, &c2, &c1, &c0, NULL);
-+else if (fit_order2==3)
-+    ptaGetCubicLSF(pta, &c3, &c2, &c1, &c0, NULL);
-+else
-+    ptaGetQuadraticLSF(pta, &c2, &c1, &c0, NULL);
-         ptad = ptaCreate(ny);
-         for (i = 0; i < ny; i++) {  /* uniformly sampled in y */
-              y = i * sampling;
--             applyQuadraticFit(c2, c1, c0, y, &val);
-+/* WILLUS MOD */
-+if (fit_order2>3)
-+    applyQuarticFit(c4, c3, c2, c1, c0, y, &val);
-+else if (fit_order2==3)
-+    applyCubicFit(c3, c2, c1, c0, y, &val);
-+else
-+    applyQuadraticFit(c2, c1, c0, y, &val);
-              ptaAddPt(ptad, y, val);
-         }
-         ptaaAddPta(ptaa5, ptad, L_INSERT);
-@@ -1602,11 +1671,21 @@ FPIX      *fpix;
-  *          See notes there.
-  * </pre>
-  */
-+/* WILLUS MOD */
- l_ok
- dewarpBuildLineModel(L_DEWARP    *dew,
-                      l_int32      opensize,
-                      const char  *debugfile)
- {
-+return(dewarpBuildLineModel_ex(dew,opensize,debugfile,2));
-+}
-+
-+l_int32
-+dewarpBuildLineModel_ex(L_DEWARP    *dew,
-+                     l_int32      opensize,
-+                     const char  *debugfile,
-+                     l_int32 fit_order)
-+{
- char     buf[64];
- l_int32  i, j, bx, by, ret, nlines;
- BOXA    *boxa;
-@@ -1695,6 +1774,8 @@ PTAA    *ptaa1, *ptaa2;
- 
-             /* Remove all lines that are not at least 0.75 times the length
-              * of the longest line. */
-+/* WILLUS MOD */
-+/*
-         ptaa2 = dewarpRemoveShortLines(pix, ptaa1, 0.75, DEBUG_SHORT_LINES);
-         if (debugfile) {
-             pix1 = pixConvertTo32(pix);
-@@ -1704,6 +1785,8 @@ PTAA    *ptaa1, *ptaa2;
-             pixDestroy(&pix1);
-             pixDestroy(&pix2);
-         }
-+*/
-+ptaa2=ptaa1;
-         ptaaDestroy(&ptaa1);
-         nlines = ptaaGetCount(ptaa2);
-         if (nlines < dew->minlines) {
-@@ -1717,7 +1800,8 @@ PTAA    *ptaa1, *ptaa2;
-              * centers.  The disparity array will push pixels vertically
-              * so that each line is flat and centered at the y-position
-              * of the mid-point. */
--        ret = dewarpFindVertDisparity(dew, ptaa2, 1 - i);
-+/* WILLUS MOD */
-+        ret = dewarpFindVertDisparity_ex(dew, ptaa2, 1 - i, fit_order);
- 
-             /* If i == 0, move the result to the horizontal disparity,
-              * rotating it back by -90 degrees. */
-diff --git a/src/leptwin.c b/src/leptwin.c
-index 72643a0..573d33e 100644
---- a/src/leptwin.c
-+++ b/src/leptwin.c
-@@ -364,5 +364,9 @@ PIXCMAP   *cmap;
- 
-     return hBitmap;
- }
--
-+#else
-+/* willus mod: Avoid weird issue with OS/X library archiver when there are no symbols */
-+int leptwin_my_empty_func(void);
-+int leptwin_my_empty_func(void)
-+{return(0);}
- #endif   /* _WIN32 */
--- 
-2.22.0
-
diff --git a/pkgs/applications/misc/k2pdfopt/mupdf.patch b/pkgs/applications/misc/k2pdfopt/mupdf.patch
deleted file mode 100644
index 0c59a1d201630..0000000000000
--- a/pkgs/applications/misc/k2pdfopt/mupdf.patch
+++ /dev/null
@@ -1,1060 +0,0 @@
-From d8927c969e3387ca2669a616c0ba53bce918a031 Mon Sep 17 00:00:00 2001
-From: Daniel Fullmer <danielrf12@gmail.com>
-Date: Fri, 13 Sep 2019 15:11:45 -0400
-Subject: [PATCH] Willus mod for k2pdfopt
-
----
- source/fitz/filter-basic.c |   3 +
- source/fitz/font-win32.c   | 866 +++++++++++++++++++++++++++++++++++++
- source/fitz/font.c         |   3 +
- source/fitz/stext-device.c |   5 +
- source/fitz/string.c       |   5 +
- source/pdf/pdf-annot.c     |  14 +-
- source/pdf/pdf-link.c      |   3 +
- source/pdf/pdf-parse.c     |   5 +
- source/pdf/pdf-xref.c      |   9 +
- 9 files changed, 912 insertions(+), 1 deletion(-)
- create mode 100644 source/fitz/font-win32.c
-
-diff --git a/source/fitz/filter-basic.c b/source/fitz/filter-basic.c
-index 0713a62e7..b8ef4d292 100644
---- a/source/fitz/filter-basic.c
-+++ b/source/fitz/filter-basic.c
-@@ -259,7 +259,10 @@ look_for_endstream:
- 	if (!state->warned)
- 	{
- 		state->warned = 1;
-+/* willus mod -- no warning */
-+/*
- 		fz_warn(ctx, "PDF stream Length incorrect");
-+*/
- 	}
- 	return *stm->rp++;
- }
-diff --git a/source/fitz/font-win32.c b/source/fitz/font-win32.c
-new file mode 100644
-index 000000000..45de8cfd3
---- /dev/null
-+++ b/source/fitz/font-win32.c
-@@ -0,0 +1,866 @@
-+/*
-+** Routines to access MS Windows system fonts.
-+** From sumatra PDF distro.
-+** Modified for MuPDF v1.9a by willus.com
-+*/
-+#include "mupdf/pdf.h"
-+
-+/*
-+	Which fonts are embedded is based on a few preprocessor definitions.
-+
-+	The base 14 fonts are always embedded.
-+	For CJK font substitution we embed DroidSansFallback.
-+
-+	Set NOCJK to skip all CJK support (this also omits embedding the CJK CMaps)
-+	Set NOCJKFONT to skip the embedded CJK font.
-+	Set NOCJKFULL to embed a smaller CJK font without CJK Extension A support.
-+*/
-+
-+#ifdef NOCJK
-+#define NOCJKFONT
-+#endif
-+
-+/* SumatraPDF: also load fonts included with Windows */
-+#ifdef _WIN32
-+
-+#ifndef UNICODE
-+#define UNICODE
-+#endif
-+#ifndef _UNICODE
-+#define _UNICODE
-+#endif
-+
-+#include <windows.h>
-+
-+// TODO: Use more of FreeType for TTF parsing (for performance reasons,
-+//       the fonts can't be parsed completely, though)
-+#include <ft2build.h>
-+#include FT_TRUETYPE_IDS_H
-+#include FT_TRUETYPE_TAGS_H
-+
-+#define TTC_VERSION1	0x00010000
-+#define TTC_VERSION2	0x00020000
-+
-+#define MAX_FACENAME	128
-+
-+// Note: the font face must be the first field so that the structure
-+//       can be treated like a simple string for searching
-+typedef struct pdf_fontmapMS_s
-+{
-+	char fontface[MAX_FACENAME];
-+	char fontpath[MAX_PATH];
-+	int index;
-+} pdf_fontmapMS;
-+
-+typedef struct pdf_fontlistMS_s
-+{
-+	pdf_fontmapMS *fontmap;
-+	int len;
-+	int cap;
-+} pdf_fontlistMS;
-+
-+typedef struct _tagTT_OFFSET_TABLE
-+{
-+	ULONG	uVersion;
-+	USHORT	uNumOfTables;
-+	USHORT	uSearchRange;
-+	USHORT	uEntrySelector;
-+	USHORT	uRangeShift;
-+} TT_OFFSET_TABLE;
-+
-+typedef struct _tagTT_TABLE_DIRECTORY
-+{
-+	ULONG	uTag;				//table name
-+	ULONG	uCheckSum;			//Check sum
-+	ULONG	uOffset;			//Offset from beginning of file
-+	ULONG	uLength;			//length of the table in bytes
-+} TT_TABLE_DIRECTORY;
-+
-+typedef struct _tagTT_NAME_TABLE_HEADER
-+{
-+	USHORT	uFSelector;			//format selector. Always 0
-+	USHORT	uNRCount;			//Name Records count
-+	USHORT	uStorageOffset;		//Offset for strings storage, from start of the table
-+} TT_NAME_TABLE_HEADER;
-+
-+typedef struct _tagTT_NAME_RECORD
-+{
-+	USHORT	uPlatformID;
-+	USHORT	uEncodingID;
-+	USHORT	uLanguageID;
-+	USHORT	uNameID;
-+	USHORT	uStringLength;
-+	USHORT	uStringOffset;	//from start of storage area
-+} TT_NAME_RECORD;
-+
-+typedef struct _tagFONT_COLLECTION
-+{
-+	ULONG	Tag;
-+	ULONG	Version;
-+	ULONG	NumFonts;
-+} FONT_COLLECTION;
-+
-+static struct {
-+	char *name;
-+	char *pattern;
-+} baseSubstitutes[] = {
-+	{ "Courier", "CourierNewPSMT" },
-+	{ "Courier-Bold", "CourierNewPS-BoldMT" },
-+	{ "Courier-Oblique", "CourierNewPS-ItalicMT" },
-+	{ "Courier-BoldOblique", "CourierNewPS-BoldItalicMT" },
-+	{ "Helvetica", "ArialMT" },
-+	{ "Helvetica-Bold", "Arial-BoldMT" },
-+	{ "Helvetica-Oblique", "Arial-ItalicMT" },
-+	{ "Helvetica-BoldOblique", "Arial-BoldItalicMT" },
-+	{ "Times-Roman", "TimesNewRomanPSMT" },
-+	{ "Times-Bold", "TimesNewRomanPS-BoldMT" },
-+	{ "Times-Italic", "TimesNewRomanPS-ItalicMT" },
-+	{ "Times-BoldItalic", "TimesNewRomanPS-BoldItalicMT" },
-+	{ "Symbol", "SymbolMT" },
-+};
-+static const char *base_font_names[][10] =
-+{
-+	{ "Courier", "CourierNew", "CourierNewPSMT", NULL },
-+	{ "Courier-Bold", "CourierNew,Bold", "Courier,Bold",
-+		"CourierNewPS-BoldMT", "CourierNew-Bold", NULL },
-+	{ "Courier-Oblique", "CourierNew,Italic", "Courier,Italic",
-+		"CourierNewPS-ItalicMT", "CourierNew-Italic", NULL },
-+	{ "Courier-BoldOblique", "CourierNew,BoldItalic", "Courier,BoldItalic",
-+		"CourierNewPS-BoldItalicMT", "CourierNew-BoldItalic", NULL },
-+	{ "Helvetica", "ArialMT", "Arial", NULL },
-+	{ "Helvetica-Bold", "Arial-BoldMT", "Arial,Bold", "Arial-Bold",
-+		"Helvetica,Bold", NULL },
-+	{ "Helvetica-Oblique", "Arial-ItalicMT", "Arial,Italic", "Arial-Italic",
-+		"Helvetica,Italic", "Helvetica-Italic", NULL },
-+	{ "Helvetica-BoldOblique", "Arial-BoldItalicMT",
-+		"Arial,BoldItalic", "Arial-BoldItalic",
-+		"Helvetica,BoldItalic", "Helvetica-BoldItalic", NULL },
-+	{ "Times-Roman", "TimesNewRomanPSMT", "TimesNewRoman",
-+		"TimesNewRomanPS", NULL },
-+	{ "Times-Bold", "TimesNewRomanPS-BoldMT", "TimesNewRoman,Bold",
-+		"TimesNewRomanPS-Bold", "TimesNewRoman-Bold", NULL },
-+	{ "Times-Italic", "TimesNewRomanPS-ItalicMT", "TimesNewRoman,Italic",
-+		"TimesNewRomanPS-Italic", "TimesNewRoman-Italic", NULL },
-+	{ "Times-BoldItalic", "TimesNewRomanPS-BoldItalicMT",
-+		"TimesNewRoman,BoldItalic", "TimesNewRomanPS-BoldItalic",
-+		"TimesNewRoman-BoldItalic", NULL },
-+	{ "Symbol", "Symbol,Italic", "Symbol,Bold", "Symbol,BoldItalic",
-+		"SymbolMT", "SymbolMT,Italic", "SymbolMT,Bold", "SymbolMT,BoldItalic", NULL },
-+	{ "ZapfDingbats", NULL }
-+};
-+
-+static pdf_fontlistMS fontlistMS =
-+{
-+	NULL,
-+	0,
-+	0,
-+};
-+static int strcmp_ignore_space(const char *a, const char *b);
-+static const char *clean_font_name(const char *fontname);
-+static const char *pdf_clean_base14_name(const char *fontname);
-+
-+static inline USHORT BEtoHs(USHORT x)
-+{
-+	BYTE *data = (BYTE *)&x;
-+	return (data[0] << 8) | data[1];
-+}
-+
-+static inline ULONG BEtoHl(ULONG x)
-+{
-+	BYTE *data = (BYTE *)&x;
-+	return (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | data[3];
-+}
-+
-+static int strcmp_ignore_space(const char *a, const char *b)
-+{
-+	while (1)
-+	{
-+		while (*a == ' ')
-+			a++;
-+		while (*b == ' ')
-+			b++;
-+		if (*a != *b)
-+			return 1;
-+		if (*a == 0)
-+			return *a != *b;
-+		if (*b == 0)
-+			return *a != *b;
-+		a++;
-+		b++;
-+	}
-+}
-+
-+/* A little bit more sophisticated name matching so that e.g. "EurostileExtended"
-+   matches "EurostileExtended-Roman" or "Tahoma-Bold,Bold" matches "Tahoma-Bold" */
-+static int
-+lookup_compare(const void *elem1, const void *elem2)
-+{
-+	const char *val1 = elem1;
-+	const char *val2 = elem2;
-+	int len1 = strlen(val1);
-+	int len2 = strlen(val2);
-+
-+	if (len1 != len2)
-+	{
-+		const char *rest = len1 > len2 ? val1 + len2 : val2 + len1;
-+		if (',' == *rest || !_stricmp(rest, "-roman"))
-+			return _strnicmp(val1, val2, fz_mini(len1, len2));
-+	}
-+
-+	return _stricmp(val1, val2);
-+}
-+
-+static void
-+remove_spaces(char *srcDest)
-+{
-+	char *dest;
-+
-+	for (dest = srcDest; *srcDest; srcDest++)
-+		if (*srcDest != ' ')
-+			*dest++ = *srcDest;
-+	*dest = '\0';
-+}
-+
-+static int
-+str_ends_with(const char *str, const char *end)
-+{
-+	size_t len1 = strlen(str);
-+	size_t len2 = strlen(end);
-+
-+	return len1 >= len2 && !strcmp(str + len1 - len2, end);
-+}
-+
-+static pdf_fontmapMS *
-+pdf_find_windows_font_path(const char *fontname)
-+{
-+	return bsearch(fontname, fontlistMS.fontmap, fontlistMS.len, sizeof(pdf_fontmapMS), lookup_compare);
-+}
-+
-+/* source and dest can be same */
-+static void
-+decode_unicode_BE(fz_context *ctx, char *source, int sourcelen, char *dest, int destlen)
-+{
-+	WCHAR *tmp;
-+	int converted, i;
-+
-+	if (sourcelen % 2 != 0)
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : invalid unicode string");
-+
-+	tmp = fz_malloc_array(ctx, sourcelen / 2 + 1, sizeof(WCHAR));
-+	for (i = 0; i < sourcelen / 2; i++)
-+		tmp[i] = BEtoHs(((WCHAR *)source)[i]);
-+	tmp[sourcelen / 2] = '\0';
-+
-+	converted = WideCharToMultiByte(CP_UTF8, 0, tmp, -1, dest, destlen, NULL, NULL);
-+	fz_free(ctx, tmp);
-+	if (!converted)
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : invalid unicode string");
-+}
-+
-+static void
-+decode_platform_string(fz_context *ctx, int platform, int enctype, char *source, int sourcelen, char *dest, int destlen)
-+{
-+	switch (platform)
-+	{
-+	case TT_PLATFORM_APPLE_UNICODE:
-+		switch (enctype)
-+		{
-+		case TT_APPLE_ID_DEFAULT:
-+		case TT_APPLE_ID_UNICODE_2_0:
-+			decode_unicode_BE(ctx, source, sourcelen, dest, destlen);
-+			return;
-+		}
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : unsupported encoding (%d/%d)", platform, enctype);
-+	case TT_PLATFORM_MACINTOSH:
-+		switch (enctype)
-+		{
-+		case TT_MAC_ID_ROMAN:
-+			if (sourcelen + 1 > destlen)
-+				fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : overlong fontname: %s", source);
-+			// TODO: Convert to UTF-8 from what encoding?
-+			memcpy(dest, source, sourcelen);
-+			dest[sourcelen] = 0;
-+			return;
-+		}
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : unsupported encoding (%d/%d)", platform, enctype);
-+	case TT_PLATFORM_MICROSOFT:
-+		switch (enctype)
-+		{
-+		case TT_MS_ID_SYMBOL_CS:
-+		case TT_MS_ID_UNICODE_CS:
-+		case TT_MS_ID_UCS_4:
-+			decode_unicode_BE(ctx, source, sourcelen, dest, destlen);
-+			return;
-+		}
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : unsupported encoding (%d/%d)", platform, enctype);
-+	default:
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : unsupported encoding (%d/%d)", platform, enctype);
-+	}
-+}
-+
-+static void
-+grow_system_font_list(fz_context *ctx, pdf_fontlistMS *fl)
-+{
-+	int newcap;
-+	pdf_fontmapMS *newitems;
-+
-+	if (fl->cap == 0)
-+		newcap = 1024;
-+	else
-+		newcap = fl->cap * 2;
-+
-+	// use realloc/free for the fontmap, since the list can
-+	// remain in memory even with all fz_contexts destroyed
-+	newitems = realloc(fl->fontmap, newcap * sizeof(pdf_fontmapMS));
-+	if (!newitems)
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "OOM in grow_system_font_list");
-+	memset(newitems + fl->cap, 0, sizeof(pdf_fontmapMS) * (newcap - fl->cap));
-+
-+	fl->fontmap = newitems;
-+	fl->cap = newcap;
-+}
-+
-+static void
-+append_mapping(fz_context *ctx, pdf_fontlistMS *fl, const char *facename, const char *path, int index)
-+{
-+	if (fl->len == fl->cap)
-+		grow_system_font_list(ctx, fl);
-+
-+	if (fl->len >= fl->cap)
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : fontlist overflow");
-+
-+	fz_strlcpy(fl->fontmap[fl->len].fontface, facename, sizeof(fl->fontmap[0].fontface));
-+	fz_strlcpy(fl->fontmap[fl->len].fontpath, path, sizeof(fl->fontmap[0].fontpath));
-+	fl->fontmap[fl->len].index = index;
-+
-+	++fl->len;
-+}
-+
-+static void
-+safe_read(fz_context *ctx, fz_stream *file, int offset, char *buf, int size)
-+{
-+	int n;
-+	fz_seek(ctx, file, offset, 0);
-+	n = fz_read(ctx, file, (unsigned char *)buf, size);
-+	if (n != size)
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "safe_read: read %d, expected %d", n, size);
-+}
-+
-+static void
-+read_ttf_string(fz_context *ctx, fz_stream *file, int offset, TT_NAME_RECORD *ttRecordBE, char *buf, int size)
-+{
-+	char szTemp[MAX_FACENAME * 2];
-+	// ignore empty and overlong strings
-+	int stringLength = BEtoHs(ttRecordBE->uStringLength);
-+	if (stringLength == 0 || stringLength >= sizeof(szTemp))
-+		return;
-+
-+	safe_read(ctx, file, offset + BEtoHs(ttRecordBE->uStringOffset), szTemp, stringLength);
-+	decode_platform_string(ctx, BEtoHs(ttRecordBE->uPlatformID),
-+		BEtoHs(ttRecordBE->uEncodingID), szTemp, stringLength, buf, size);
-+}
-+
-+static void
-+makeFakePSName(char szName[MAX_FACENAME], const char *szStyle)
-+{
-+	// append the font's subfamily, unless it's a Regular font
-+	if (*szStyle && _stricmp(szStyle, "Regular") != 0)
-+	{
-+		fz_strlcat(szName, "-", MAX_FACENAME);
-+		fz_strlcat(szName, szStyle, MAX_FACENAME);
-+	}
-+	remove_spaces(szName);
-+}
-+
-+static void
-+parseTTF(fz_context *ctx, fz_stream *file, int offset, int index, const char *path)
-+{
-+	TT_OFFSET_TABLE ttOffsetTableBE;
-+	TT_TABLE_DIRECTORY tblDirBE;
-+	TT_NAME_TABLE_HEADER ttNTHeaderBE;
-+	TT_NAME_RECORD ttRecordBE;
-+
-+	char szPSName[MAX_FACENAME] = { 0 };
-+	char szTTName[MAX_FACENAME] = { 0 };
-+	char szStyle[MAX_FACENAME] = { 0 };
-+	char szCJKName[MAX_FACENAME] = { 0 };
-+	int i, count, tblOffset;
-+
-+	safe_read(ctx, file, offset, (char *)&ttOffsetTableBE, sizeof(TT_OFFSET_TABLE));
-+
-+	// check if this is a TrueType font of version 1.0 or an OpenType font
-+	if (BEtoHl(ttOffsetTableBE.uVersion) != TTC_VERSION1 &&
-+		BEtoHl(ttOffsetTableBE.uVersion) != TTAG_OTTO)
-+	{
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : invalid font version %x", (unsigned int)BEtoHl(ttOffsetTableBE.uVersion));
-+	}
-+
-+	// determine the name table's offset by iterating through the offset table
-+	count = BEtoHs(ttOffsetTableBE.uNumOfTables);
-+	for (i = 0; i < count; i++)
-+	{
-+		int entryOffset = offset + sizeof(TT_OFFSET_TABLE) + i * sizeof(TT_TABLE_DIRECTORY);
-+		safe_read(ctx, file, entryOffset, (char *)&tblDirBE, sizeof(TT_TABLE_DIRECTORY));
-+		if (!BEtoHl(tblDirBE.uTag) || BEtoHl(tblDirBE.uTag) == TTAG_name)
-+			break;
-+	}
-+	if (count == i || !BEtoHl(tblDirBE.uTag))
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : nameless font");
-+	tblOffset = BEtoHl(tblDirBE.uOffset);
-+
-+	// read the 'name' table for record count and offsets
-+	safe_read(ctx, file, tblOffset, (char *)&ttNTHeaderBE, sizeof(TT_NAME_TABLE_HEADER));
-+	offset = tblOffset + sizeof(TT_NAME_TABLE_HEADER);
-+	tblOffset += BEtoHs(ttNTHeaderBE.uStorageOffset);
-+
-+	// read through the strings for PostScript name and font family
-+	count = BEtoHs(ttNTHeaderBE.uNRCount);
-+	for (i = 0; i < count; i++)
-+	{
-+		short langId, nameId;
-+		BOOL isCJKName;
-+
-+		safe_read(ctx, file, offset + i * sizeof(TT_NAME_RECORD), (char *)&ttRecordBE, sizeof(TT_NAME_RECORD));
-+
-+		langId = BEtoHs(ttRecordBE.uLanguageID);
-+		nameId = BEtoHs(ttRecordBE.uNameID);
-+		isCJKName = TT_NAME_ID_FONT_FAMILY == nameId && LANG_CHINESE == PRIMARYLANGID(langId);
-+
-+		// ignore non-English strings (except for Chinese font names)
-+		if (langId && langId != TT_MS_LANGID_ENGLISH_UNITED_STATES && !isCJKName)
-+			continue;
-+		// ignore names other than font (sub)family and PostScript name
-+		fz_try(ctx)
-+		{
-+			if (isCJKName)
-+				read_ttf_string(ctx, file, tblOffset, &ttRecordBE, szCJKName, sizeof(szCJKName));
-+			else if (TT_NAME_ID_FONT_FAMILY == nameId)
-+				read_ttf_string(ctx, file, tblOffset, &ttRecordBE, szTTName, sizeof(szTTName));
-+			else if (TT_NAME_ID_FONT_SUBFAMILY == nameId)
-+				read_ttf_string(ctx, file, tblOffset, &ttRecordBE, szStyle, sizeof(szStyle));
-+			else if (TT_NAME_ID_PS_NAME == nameId)
-+				read_ttf_string(ctx, file, tblOffset, &ttRecordBE, szPSName, sizeof(szPSName));
-+		}
-+		fz_catch(ctx)
-+		{
-+			fz_warn(ctx, "ignoring face name decoding fonterror");
-+		}
-+	}
-+
-+	// try to prevent non-Arial fonts from accidentally substituting Arial
-+	if (!strcmp(szPSName, "ArialMT"))
-+	{
-+		// cf. https://code.google.com/p/sumatrapdf/issues/detail?id=2471
-+		if (strcmp(szTTName, "Arial") != 0)
-+			szPSName[0] = '\0';
-+		// TODO: is there a better way to distinguish Arial Caps from Arial proper?
-+		// cf. http://code.google.com/p/sumatrapdf/issues/detail?id=1290
-+		else if (strstr(path, "caps") || strstr(path, "Caps"))
-+			fz_throw(ctx, FZ_ERROR_GENERIC, "ignore %s, as it can't be distinguished from Arial,Regular", path);
-+	}
-+
-+	if (szPSName[0])
-+		append_mapping(ctx, &fontlistMS, szPSName, path, index);
-+	if (szTTName[0])
-+	{
-+		// derive a PostScript-like name and add it, if it's different from the font's
-+		// included PostScript name; cf. http://code.google.com/p/sumatrapdf/issues/detail?id=376
-+		makeFakePSName(szTTName, szStyle);
-+		// compare the two names before adding this one
-+		if (lookup_compare(szTTName, szPSName))
-+			append_mapping(ctx, &fontlistMS, szTTName, path, index);
-+	}
-+	if (szCJKName[0])
-+	{
-+		makeFakePSName(szCJKName, szStyle);
-+		if (lookup_compare(szCJKName, szPSName) && lookup_compare(szCJKName, szTTName))
-+			append_mapping(ctx, &fontlistMS, szCJKName, path, index);
-+	}
-+}
-+
-+static void
-+parseTTFs(fz_context *ctx, const char *path)
-+{
-+	fz_stream *file = fz_open_file(ctx, path);
-+	/* "fonterror : %s not found", path */
-+	fz_try(ctx)
-+	{
-+		parseTTF(ctx, file, 0, 0, path);
-+	}
-+	fz_always(ctx)
-+	{
-+		fz_drop_stream(ctx,file);
-+	}
-+	fz_catch(ctx)
-+	{
-+		fz_rethrow(ctx);
-+	}
-+}
-+
-+static void
-+parseTTCs(fz_context *ctx, const char *path)
-+{
-+	FONT_COLLECTION fontcollectionBE;
-+	ULONG i, numFonts, *offsettableBE = NULL;
-+
-+	fz_stream *file = fz_open_file(ctx, path);
-+	/* "fonterror : %s not found", path */
-+
-+	fz_var(offsettableBE);
-+
-+	fz_try(ctx)
-+	{
-+		safe_read(ctx, file, 0, (char *)&fontcollectionBE, sizeof(FONT_COLLECTION));
-+		if (BEtoHl(fontcollectionBE.Tag) != TTAG_ttcf)
-+			fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : wrong format %x", (unsigned int)BEtoHl(fontcollectionBE.Tag));
-+		if (BEtoHl(fontcollectionBE.Version) != TTC_VERSION1 &&
-+			BEtoHl(fontcollectionBE.Version) != TTC_VERSION2)
-+		{
-+			fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : invalid version %x", (unsigned int)BEtoHl(fontcollectionBE.Version));
-+		}
-+
-+		numFonts = BEtoHl(fontcollectionBE.NumFonts);
-+		offsettableBE = fz_malloc_array(ctx, numFonts, sizeof(ULONG));
-+
-+		safe_read(ctx, file, sizeof(FONT_COLLECTION), (char *)offsettableBE, numFonts * sizeof(ULONG));
-+		for (i = 0; i < numFonts; i++)
-+			parseTTF(ctx, file, BEtoHl(offsettableBE[i]), i, path);
-+	}
-+	fz_always(ctx)
-+	{
-+		fz_free(ctx, offsettableBE);
-+		fz_drop_stream(ctx,file);
-+	}
-+	fz_catch(ctx)
-+	{
-+		fz_rethrow(ctx);
-+	}
-+}
-+
-+static void
-+extend_system_font_list(fz_context *ctx, const WCHAR *path)
-+{
-+	WCHAR szPath[MAX_PATH], *lpFileName;
-+	WIN32_FIND_DATA FileData;
-+	HANDLE hList;
-+
-+	GetFullPathName(path, nelem(szPath), szPath, &lpFileName);
-+
-+	hList = FindFirstFile(szPath, &FileData);
-+	if (hList == INVALID_HANDLE_VALUE)
-+	{
-+		// Don't complain about missing directories
-+		if (GetLastError() == ERROR_FILE_NOT_FOUND)
-+			return;
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "extend_system_font_list: unknown error %d", (int)GetLastError());
-+	}
-+	do
-+	{
-+		if (!(FileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
-+		{
-+			char szPathUtf8[MAX_PATH], *fileExt;
-+			int res;
-+			lstrcpyn(lpFileName, FileData.cFileName, szPath + MAX_PATH - lpFileName);
-+			res = WideCharToMultiByte(CP_UTF8, 0, szPath, -1, szPathUtf8, sizeof(szPathUtf8), NULL, NULL);
-+			if (!res)
-+			{
-+				fz_warn(ctx, "WideCharToMultiByte failed for %S", szPath);
-+				continue;
-+			}
-+			fileExt = szPathUtf8 + strlen(szPathUtf8) - 4;
-+			fz_try(ctx)
-+			{
-+				if (!_stricmp(fileExt, ".ttc"))
-+					parseTTCs(ctx, szPathUtf8);
-+				else if (!_stricmp(fileExt, ".ttf") || !_stricmp(fileExt, ".otf"))
-+					parseTTFs(ctx, szPathUtf8);
-+			}
-+			fz_catch(ctx)
-+			{
-+				// ignore errors occurring while parsing a given font file
-+			}
-+		}
-+	} while (FindNextFile(hList, &FileData));
-+	FindClose(hList);
-+}
-+
-+static void
-+destroy_system_font_list(void)
-+{
-+	free(fontlistMS.fontmap);
-+	memset(&fontlistMS, 0, sizeof(fontlistMS));
-+}
-+
-+static void
-+create_system_font_list(fz_context *ctx)
-+{
-+	WCHAR szFontDir[MAX_PATH];
-+	UINT cch;
-+
-+	cch = GetWindowsDirectory(szFontDir, nelem(szFontDir) - 12);
-+	if (0 < cch && cch < nelem(szFontDir) - 12)
-+	{
-+        /* willus.com edit--Win XP default MSVCRT.DLL doesn't have wcscat_s */
-+#ifdef _WIN64
-+		wcscat_s(szFontDir, MAX_PATH, L"\\Fonts\\*.?t?");
-+#else
-+		wcscat(szFontDir,L"\\Fonts\\*.?t?");
-+#endif
-+		extend_system_font_list(ctx, szFontDir);
-+	}
-+
-+	if (fontlistMS.len == 0)
-+		fz_warn(ctx, "couldn't find any usable system fonts");
-+
-+#ifdef NOCJKFONT
-+	{
-+		// If no CJK fallback font is builtin but one has been shipped separately (in the same
-+		// directory as the main executable), add it to the list of loadable system fonts
-+		WCHAR szFile[MAX_PATH], *lpFileName;
-+		GetModuleFileName(0, szFontDir, MAX_PATH);
-+		GetFullPathName(szFontDir, MAX_PATH, szFile, &lpFileName);
-+		lstrcpyn(lpFileName, L"DroidSansFallback.ttf", szFile + MAX_PATH - lpFileName);
-+		extend_system_font_list(ctx, szFile);
-+	}
-+#endif
-+
-+	// sort the font list, so that it can be searched binarily
-+	qsort(fontlistMS.fontmap, fontlistMS.len, sizeof(pdf_fontmapMS), _stricmp);
-+
-+#ifdef DEBUG
-+	// allow to overwrite system fonts for debugging purposes
-+	// (either pass a full path or a search pattern such as "fonts\*.ttf")
-+	cch = GetEnvironmentVariable(L"MUPDF_FONTS_PATTERN", szFontDir, nelem(szFontDir));
-+	if (0 < cch && cch < nelem(szFontDir))
-+	{
-+		int i, prev_len = fontlistMS.len;
-+		extend_system_font_list(ctx, szFontDir);
-+		for (i = prev_len; i < fontlistMS.len; i++)
-+		{
-+			pdf_fontmapMS *entry = bsearch(fontlistMS.fontmap[i].fontface, fontlistMS.fontmap, prev_len, sizeof(pdf_fontmapMS), lookup_compare);
-+			if (entry)
-+				*entry = fontlistMS.fontmap[i];
-+		}
-+		qsort(fontlistMS.fontmap, fontlistMS.len, sizeof(pdf_fontmapMS), _stricmp);
-+	}
-+#endif
-+
-+	// make sure to clean up after ourselves
-+	atexit(destroy_system_font_list);
-+}
-+
-+static fz_font *
-+pdf_load_windows_font_by_name(fz_context *ctx, const char *orig_name)
-+{
-+	pdf_fontmapMS *found = NULL;
-+	char *comma, *fontname;
-+	fz_font *font;
-+
-+    /* WILLUS MOD--not multi-threaded for k2pdfopt */
-+	/* fz_synchronize_begin(); */
-+	if (fontlistMS.len == 0)
-+	{
-+		fz_try(ctx)
-+		{
-+			create_system_font_list(ctx);
-+		}
-+		fz_catch(ctx) { }
-+	}
-+    /* WILLUS MOD--not multi-threaded for k2pdfopt */
-+	/* fz_synchronize_end(); */
-+	if (fontlistMS.len == 0)
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror: couldn't find any fonts");
-+
-+	// work on a normalized copy of the font name
-+	fontname = fz_strdup(ctx, orig_name);
-+	remove_spaces(fontname);
-+
-+	// first, try to find the exact font name (including appended style information)
-+	comma = strchr(fontname, ',');
-+	if (comma)
-+	{
-+		*comma = '-';
-+		found = pdf_find_windows_font_path(fontname);
-+		*comma = ',';
-+	}
-+	// second, substitute the font name with a known PostScript name
-+	else
-+	{
-+		int i;
-+		for (i = 0; i < nelem(baseSubstitutes) && !found; i++)
-+			if (!strcmp(fontname, baseSubstitutes[i].name))
-+				found = pdf_find_windows_font_path(baseSubstitutes[i].pattern);
-+	}
-+	// third, search for the font name without additional style information
-+	if (!found)
-+		found = pdf_find_windows_font_path(fontname);
-+	// fourth, try to separate style from basename for prestyled fonts (e.g. "ArialBold")
-+	if (!found && !comma && (str_ends_with(fontname, "Bold") || str_ends_with(fontname, "Italic")))
-+	{
-+		int styleLen = str_ends_with(fontname, "Bold") ? 4 : str_ends_with(fontname, "BoldItalic") ? 10 : 6;
-+		fontname = fz_resize_array(ctx, fontname, strlen(fontname) + 2, sizeof(char));
-+		comma = fontname + strlen(fontname) - styleLen;
-+		memmove(comma + 1, comma, styleLen + 1);
-+		*comma = '-';
-+		found = pdf_find_windows_font_path(fontname);
-+		*comma = ',';
-+		if (!found)
-+			found = pdf_find_windows_font_path(fontname);
-+	}
-+	// fifth, try to convert the font name from the common Chinese codepage 936
-+	if (!found && fontname[0] < 0)
-+	{
-+		WCHAR cjkNameW[MAX_FACENAME];
-+		char cjkName[MAX_FACENAME];
-+		if (MultiByteToWideChar(936, MB_ERR_INVALID_CHARS, fontname, -1, cjkNameW, nelem(cjkNameW)) &&
-+			WideCharToMultiByte(CP_UTF8, 0, cjkNameW, -1, cjkName, nelem(cjkName), NULL, NULL))
-+		{
-+			comma = strchr(cjkName, ',');
-+			if (comma)
-+			{
-+				*comma = '-';
-+				found = pdf_find_windows_font_path(cjkName);
-+				*comma = ',';
-+			}
-+			if (!found)
-+				found = pdf_find_windows_font_path(cjkName);
-+		}
-+	}
-+
-+	fz_free(ctx, fontname);
-+	if (!found)
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "couldn't find system font '%s'", orig_name);
-+
-+    /*
-+	fz_warn(ctx, "loading non-embedded font '%s' from '%s'", orig_name, found->fontpath);
-+    */
-+
-+	font = fz_new_font_from_file(ctx, orig_name, found->fontpath, found->index,
-+		strcmp(found->fontface, "DroidSansFallback") != 0);
-+    /* willus mod for MuPDF v1.10, 10-21-2016 */
-+    {
-+    fz_font_flags_t *flags;
-+    flags=fz_font_flags(font);
-+    if (flags!=NULL)
-+    	flags->ft_substitute = 1;
-+    }
-+	return font;
-+}
-+
-+static fz_font *
-+pdf_load_windows_font(fz_context *ctx, const char *fontname, int bold, int italic, int needs_exact_metrics)
-+{
-+	if (needs_exact_metrics)
-+	{
-+		const char *clean_name;
-+        /* WILLUS: Declare pdf_clean_base14_name() */
-+        extern const char *pdf_clean_base14_name(const char *fontname);
-+
-+		/* TODO: the metrics for Times-Roman and Courier don't match
-+		   those of Windows' Times New Roman and Courier New; for
-+		   some reason, Poppler doesn't seem to have this problem */
-+		int len;
-+		if (fz_lookup_builtin_font(ctx,fontname, bold, italic, &len))
-+			return NULL;
-+
-+		/* cf. http://code.google.com/p/sumatrapdf/issues/detail?id=2173 */
-+		clean_name = pdf_clean_base14_name(fontname);
-+		if (clean_name != fontname && !strncmp(clean_name, "Times-", 6))
-+			return NULL;
-+	}
-+
-+	// TODO: unset font->ft_substitute for base14/needs_exact_metrics?
-+	return pdf_load_windows_font_by_name(ctx, fontname);
-+}
-+
-+static const char *clean_font_name(const char *fontname)
-+{
-+	int i, k;
-+	for (i = 0; i < nelem(base_font_names); i++)
-+		for (k = 0; base_font_names[i][k]; k++)
-+			if (!strcmp_ignore_space(base_font_names[i][k], fontname))
-+				return base_font_names[i][0];
-+	return fontname;
-+}
-+
-+
-+/* SumatraPDF: expose clean_font_name */
-+static const char * pdf_clean_base14_name(const char *fontname)
-+{
-+	return clean_font_name(fontname);
-+}
-+
-+static fz_font *
-+pdf_load_windows_cjk_font(fz_context *ctx, const char *fontname, int ros, int serif)
-+{
-+	fz_font *font;
-+
-+    font=NULL; /* WILLUS: Avoid compiler warning */
-+	/* try to find a matching system font before falling back to an approximate one */
-+	fz_try(ctx)
-+	{
-+		font = pdf_load_windows_font_by_name(ctx, fontname);
-+	}
-+	fz_catch(ctx)
-+	{
-+		font = NULL;
-+	}
-+	if (font)
-+		return font;
-+
-+	/* try to fall back to a reasonable system font */
-+	fz_try(ctx)
-+	{
-+		if (serif)
-+		{
-+			switch (ros)
-+			{
-+			case FZ_ADOBE_CNS: font = pdf_load_windows_font_by_name(ctx, "MingLiU"); break;
-+			case FZ_ADOBE_GB: font = pdf_load_windows_font_by_name(ctx, "SimSun"); break;
-+			case FZ_ADOBE_JAPAN: font = pdf_load_windows_font_by_name(ctx, "MS-Mincho"); break;
-+			case FZ_ADOBE_KOREA: font = pdf_load_windows_font_by_name(ctx, "Batang"); break;
-+			default: fz_throw(ctx, FZ_ERROR_GENERIC, "invalid serif ros");
-+			}
-+		}
-+		else
-+		{
-+			switch (ros)
-+			{
-+			case FZ_ADOBE_CNS: font = pdf_load_windows_font_by_name(ctx, "DFKaiShu-SB-Estd-BF"); break;
-+			case FZ_ADOBE_GB:
-+				fz_try(ctx)
-+				{
-+					font = pdf_load_windows_font_by_name(ctx, "KaiTi");
-+				}
-+				fz_catch(ctx)
-+				{
-+					font = pdf_load_windows_font_by_name(ctx, "KaiTi_GB2312");
-+				}
-+				break;
-+			case FZ_ADOBE_JAPAN: font = pdf_load_windows_font_by_name(ctx, "MS-Gothic"); break;
-+			case FZ_ADOBE_KOREA: font = pdf_load_windows_font_by_name(ctx, "Gulim"); break;
-+			default: fz_throw(ctx, FZ_ERROR_GENERIC, "invalid sans-serif ros");
-+			}
-+		}
-+	}
-+	fz_catch(ctx)
-+	{
-+#ifdef NOCJKFONT
-+		/* If no CJK fallback font is builtin, maybe one has been shipped separately */
-+		font = pdf_load_windows_font_by_name(ctx, "DroidSansFallback");
-+#else
-+		fz_rethrow(ctx);
-+#endif
-+	}
-+
-+	return font;
-+}
-+
-+#endif
-+
-+void pdf_install_load_system_font_funcs(fz_context *ctx)
-+{
-+#ifdef _WIN32
-+	fz_install_load_system_font_funcs(ctx, pdf_load_windows_font, pdf_load_windows_cjk_font, NULL);
-+#endif
-+}
-diff --git a/source/fitz/font.c b/source/fitz/font.c
-index 00c6e8f99..1448b4a56 100644
---- a/source/fitz/font.c
-+++ b/source/fitz/font.c
-@@ -4,8 +4,11 @@
- #include "draw-imp.h"
- 
- #include <ft2build.h>
-+/* willus mod -- remove hb includes */
-+/*
- #include "hb.h"
- #include "hb-ft.h"
-+*/
- 
- #include <assert.h>
- 
-diff --git a/source/fitz/stext-device.c b/source/fitz/stext-device.c
-index 2df90305e..b1f99e056 100644
---- a/source/fitz/stext-device.c
-+++ b/source/fitz/stext-device.c
-@@ -825,6 +825,11 @@ fz_new_stext_device(fz_context *ctx, fz_stext_page *page, const fz_stext_options
- 	dev->lastchar = ' ';
- 	dev->curdir = 1;
- 	dev->lasttext = NULL;
-+    /* willus mod -- seems like this should be here, but not sure. */
-+    if (opts)
-+        dev->flags = opts->flags;
-+    else
-+        dev->flags = 0;
- 
- 	return (fz_device*)dev;
- }
-diff --git a/source/fitz/string.c b/source/fitz/string.c
-index f8eedb682..7a767983d 100644
---- a/source/fitz/string.c
-+++ b/source/fitz/string.c
-@@ -560,6 +560,10 @@ fz_utflen(const char *s)
- */
- float fz_atof(const char *s)
- {
-+/* willus mod: atof(s), #if-#else-#endif */
-+#if (!defined(__SSE__))
-+    return(atof(s));
-+#else
- 	float result;
- 
- 	if (s == NULL)
-@@ -572,6 +576,7 @@ float fz_atof(const char *s)
- 		return 1;
- 	result = fz_clamp(result, -FLT_MAX, FLT_MAX);
- 	return result;
-+#endif
- }
- 
- /*
-diff --git a/source/pdf/pdf-annot.c b/source/pdf/pdf-annot.c
-index 4dfdf36fe..acff7d12a 100644
---- a/source/pdf/pdf-annot.c
-+++ b/source/pdf/pdf-annot.c
-@@ -5,8 +5,20 @@
- #include <string.h>
- #include <time.h>
- 
-+/* willus mod--don't use _mkgmtime--not available in Win XP */
- #ifdef _WIN32
--#define timegm _mkgmtime
-+static time_t timegm(struct tm *date);
-+static time_t timegm(struct tm *date)
-+
-+    {
-+    time_t t,z;
-+    struct tm gmz;
-+
-+    z=(time_t)0;
-+    gmz=(*gmtime(&z));
-+    t=mktime(date)-mktime(&gmz);
-+    return(t);
-+    }
- #endif
- 
- #define isdigit(c) (c >= '0' && c <= '9')
-diff --git a/source/pdf/pdf-link.c b/source/pdf/pdf-link.c
-index 37444b471..613cc05b9 100644
---- a/source/pdf/pdf-link.c
-+++ b/source/pdf/pdf-link.c
-@@ -345,6 +345,9 @@ pdf_resolve_link(fz_context *ctx, pdf_document *doc, const char *uri, float *xp,
- 		}
- 		return page;
- 	}
-+/* willus mod -- be quiet */
-+/*
- 	fz_warn(ctx, "unknown link uri '%s'", uri);
-+*/
- 	return -1;
- }
-diff --git a/source/pdf/pdf-parse.c b/source/pdf/pdf-parse.c
-index 04a772204..9dd0cd898 100644
---- a/source/pdf/pdf-parse.c
-+++ b/source/pdf/pdf-parse.c
-@@ -663,9 +663,14 @@ pdf_parse_ind_obj(fz_context *ctx, pdf_document *doc,
- 			if (c == '\r')
- 			{
- 				c = fz_peek_byte(ctx, file);
-+/* willus mod -- no warning */
-+/*
- 				if (c != '\n')
- 					fz_warn(ctx, "line feed missing after stream begin marker (%d %d R)", num, gen);
- 				else
-+*/
-+if (c=='\n')
-+/* willus mod -- end */
- 					fz_read_byte(ctx, file);
- 			}
- 			stm_ofs = fz_tell(ctx, file);
-diff --git a/source/pdf/pdf-xref.c b/source/pdf/pdf-xref.c
-index 8f888059b..08de7bfba 100644
---- a/source/pdf/pdf-xref.c
-+++ b/source/pdf/pdf-xref.c
-@@ -710,8 +710,11 @@ pdf_xref_size_from_old_trailer(fz_context *ctx, pdf_document *doc, pdf_lexbuf *b
- 		if (!s)
- 			fz_throw(ctx, FZ_ERROR_GENERIC, "xref subsection length missing");
- 		len = fz_atoi(fz_strsep(&s, " "));
-+/* willus mod -- no warning */
-+/*
- 		if (len < 0)
- 			fz_throw(ctx, FZ_ERROR_GENERIC, "xref subsection length must be positive");
-+*/
- 
- 		/* broken pdfs where the section is not on a separate line */
- 		if (s && *s != '\0')
-@@ -1378,7 +1381,10 @@ pdf_init_document(fz_context *ctx, pdf_document *doc)
- 	{
- 		pdf_drop_xref_sections(ctx, doc);
- 		fz_rethrow_if(ctx, FZ_ERROR_TRYLATER);
-+/* willus mod -- be quiet */
-+/*
- 		fz_warn(ctx, "trying to repair broken xref");
-+*/
- 		repaired = 1;
- 	}
- 
-@@ -1506,7 +1512,10 @@ pdf_drop_document_imp(fz_context *ctx, pdf_document *doc)
- 		/* Swallow error, but continue dropping */
- 	}
- 
-+/* willu smod -- no pdf_drop_js */
-+/*
- 	pdf_drop_js(ctx, doc->js);
-+*/
- 
- 	pdf_drop_xref_sections(ctx, doc);
- 	fz_free(ctx, doc->xref_index);
--- 
-2.22.0
-
diff --git a/pkgs/applications/misc/k2pdfopt/tesseract.patch b/pkgs/applications/misc/k2pdfopt/tesseract.patch
deleted file mode 100644
index adfee9ae282f3..0000000000000
--- a/pkgs/applications/misc/k2pdfopt/tesseract.patch
+++ /dev/null
@@ -1,675 +0,0 @@
-From 39aa8502eee7bb669a29d1a9b3bfe5c9595ad960 Mon Sep 17 00:00:00 2001
-From: Daniel Fullmer <danielrf12@gmail.com>
-Date: Fri, 13 Sep 2019 13:45:05 -0400
-Subject: [PATCH] Willus mod changes from k2pdfopt
-
----
- src/api/Makefile.am        |   1 +
- src/api/baseapi.cpp        |  87 +++++++++++
- src/api/baseapi.h          |   3 +
- src/api/tesscapi.cpp       | 311 +++++++++++++++++++++++++++++++++++++
- src/api/tesseract.h        |  29 ++++
- src/ccmain/tessedit.cpp    |   5 +-
- src/ccutil/ccutil.h        |   7 +
- src/ccutil/genericvector.h |  21 ++-
- src/ccutil/mainblk.cpp     |  17 +-
- src/ccutil/params.cpp      |   3 +-
- src/ccutil/serialis.cpp    |   3 +
- src/ccutil/serialis.h      |   2 +
- src/lstm/input.cpp         |   3 +
- 13 files changed, 488 insertions(+), 4 deletions(-)
- create mode 100644 src/api/tesscapi.cpp
- create mode 100644 src/api/tesseract.h
-
-diff --git a/src/api/Makefile.am b/src/api/Makefile.am
-index d9b76eb6..cd2dc30f 100644
---- a/src/api/Makefile.am
-+++ b/src/api/Makefile.am
-@@ -39,6 +39,7 @@ libtesseract_api_la_SOURCES += lstmboxrenderer.cpp
- libtesseract_api_la_SOURCES += pdfrenderer.cpp
- libtesseract_api_la_SOURCES += wordstrboxrenderer.cpp
- libtesseract_api_la_SOURCES += renderer.cpp
-+libtesseract_api_la_SOURCES += tesscapi.cpp
- 
- lib_LTLIBRARIES += libtesseract.la
- libtesseract_la_LDFLAGS = $(LEPTONICA_LIBS) $(OPENCL_LDFLAGS) $(libarchive_LIBS)
-diff --git a/src/api/baseapi.cpp b/src/api/baseapi.cpp
-index 9245d07c..ea964ee6 100644
---- a/src/api/baseapi.cpp
-+++ b/src/api/baseapi.cpp
-@@ -215,6 +215,14 @@ TessBaseAPI::TessBaseAPI()
-   // Use the current locale if building debug code.
-   std::locale::global(std::locale(""));
- #endif
-+  const char *locale;
-+  locale = std::setlocale(LC_ALL, nullptr);
-+/* willus mod Remove assertions--taken care of in tesscapi.cpp */
-+//  ASSERT_HOST(!strcmp(locale, "C"));
-+  locale = std::setlocale(LC_CTYPE, nullptr);
-+//  ASSERT_HOST(!strcmp(locale, "C"));
-+  locale = std::setlocale(LC_NUMERIC, nullptr);
-+//  ASSERT_HOST(!strcmp(locale, "C"));
- }
- 
- TessBaseAPI::~TessBaseAPI() {
-@@ -1333,6 +1341,85 @@ static void AddBoxToTSV(const PageIterator* it, PageIteratorLevel level,
-   text->add_str_int("\t", bottom - top);
- }
- 
-+/* willus mod */
-+int TessBaseAPI::GetOCRWords(int **x00,int **y00,int **x11,int **y11,int **ybaseline0,
-+                             char **utf8words)
-+
-+    {
-+    int iword,nwords,totlen,it8;
-+    int *x0,*y0,*x1,*y1,*ybaseline;
-+    char *tutf8;
-+
-+    ResultIterator *res_it = GetIterator();
-+    /* Count words */
-+    iword=0;
-+    totlen=0;
-+    while (!res_it->Empty(RIL_BLOCK))
-+        {
-+        if (res_it->Empty(RIL_WORD))
-+            {
-+            res_it->Next(RIL_WORD);
-+            continue;
-+            }
-+        iword++;
-+        STRING textstr=std::unique_ptr<const char[]>(res_it->GetUTF8Text(RIL_WORD)).get();
-+        totlen+=strlen(textstr.string())+1;
-+        res_it->Next(RIL_WORD);
-+        }
-+    nwords=iword;
-+/*
-+printf("\nnwords=%d, totlen=%d\n",nwords,totlen);
-+*/
-+    x0=(*x00)=(int *)malloc(sizeof(int)*5*nwords);
-+    y0=(*y00)=&x0[nwords];
-+    x1=(*x11)=&y0[nwords];
-+    y1=(*y11)=&x1[nwords];
-+    ybaseline=(*ybaseline0)=&y1[nwords];
-+    tutf8=(*utf8words)=(char *)malloc(totlen);
-+    iword=0;
-+    it8=0;
-+    res_it->Begin();
-+    while (!res_it->Empty(RIL_BLOCK))
-+        {
-+        if (res_it->Empty(RIL_WORD))
-+            {
-+            res_it->Next(RIL_WORD);
-+            continue;
-+            }
-+        STRING textstr=std::unique_ptr<const char[]>(res_it->GetUTF8Text(RIL_WORD)).get();
-+        strcpy(&tutf8[it8],textstr.string());
-+        it8 += strlen(&tutf8[it8])+1;
-+        /*
-+        STRING textstr("");
-+        textstr += std::unique_ptr<const char[]>(res_it->GetUTF8Text(RIL_WORD)).get();
-+        */
-+/*
-+printf("Word %d: '%s'\n",iword,textstr.string());
-+*/
-+        int left, top, right, bottom;
-+        int u1,v1,u2,v2;
-+        res_it->BoundingBox(RIL_WORD, &left, &top, &right, &bottom);
-+        res_it->Baseline(RIL_WORD, &u1, &v1, &u2, &v2);
-+        x0[iword]=left;
-+        x1[iword]=right;
-+        y0[iword]=top;
-+        y1[iword]=bottom;
-+        ybaseline[iword]=(v1+v2)/2;
-+        iword++;
-+/*
-+printf("BB: (%d,%d)-(%d,%d)  BL: (%d,%d)-(%d,%d)\n",left,bottom,right,top,x1,y1,x2,y2);
-+*/
-+        res_it->Next(RIL_WORD);
-+        }
-+/*
-+printf("iword=%d\n",iword);
-+*/
-+    return(iword);
-+    }
-+
-+/* willus mod */
-+int GetOCRWords(int **x0,int **y0,int **x1,int **y1,int **ybaseline,char **utf8words);
-+
- /**
-  * Make a TSV-formatted string from the internal data structures.
-  * page_number is 0-based but will appear in the output as 1-based.
-diff --git a/src/api/baseapi.h b/src/api/baseapi.h
-index 3724dd92..23be5920 100644
---- a/src/api/baseapi.h
-+++ b/src/api/baseapi.h
-@@ -575,6 +575,9 @@ class TESS_API TessBaseAPI {
-    */
-   char* GetHOCRText(ETEXT_DESC* monitor, int page_number);
- 
-+/* willus mod */
-+int GetOCRWords(int **x0,int **y0,int **x1,int **y1,int **ybaseline,char **utf8words);
-+
-   /**
-    * Make a HTML-formatted string with hOCR markup from the internal
-    * data structures.
-diff --git a/src/api/tesscapi.cpp b/src/api/tesscapi.cpp
-new file mode 100644
-index 00000000..1752fafe
---- /dev/null
-+++ b/src/api/tesscapi.cpp
-@@ -0,0 +1,311 @@
-+/*
-+** tesscapi.cpp    willus.com attempt at C wrapper for tesseract.
-+**                 (Butchered from tesseractmain.cpp)
-+**                 Last udpated 9-1-12
-+**
-+** Copyright (C) 2012  http://willus.com
-+**
-+** This program is free software: you can redistribute it and/or modify
-+** it under the terms of the GNU Affero General Public License as
-+** published by the Free Software Foundation, either version 3 of the
-+** License, or (at your option) any later version.
-+**
-+** This program is distributed in the hope that it will be useful,
-+** but WITHOUT ANY WARRANTY; without even the implied warranty of
-+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+** GNU Affero General Public License for more details.
-+**
-+** You should have received a copy of the GNU Affero General Public License
-+** along with this program.  If not, see <http://www.gnu.org/licenses/>.
-+**
-+*/
-+
-+/*
-+#include "mfcpch.h"
-+*/
-+// #define USE_VLD //Uncomment for Visual Leak Detector.
-+#if (defined _MSC_VER && defined USE_VLD)
-+#include <vld.h>
-+#endif
-+
-+// Include automatically generated configuration file if running autoconf
-+#ifdef HAVE_CONFIG_H
-+#include "config_auto.h"
-+#endif
-+#include <locale.h>
-+#ifdef USING_GETTEXT
-+#include <libintl.h>
-+#define _(x) gettext(x)
-+#else
-+#define _(x) (x)
-+#endif
-+
-+#include "allheaders.h"
-+#include "baseapi.h"
-+#include "strngs.h"
-+#include "params.h"
-+#include "blobs.h"
-+#include "simddetect.h"
-+#include "tesseractclass.h"
-+/*
-+#include "notdll.h"
-+*/
-+
-+/* C Wrappers */
-+#include "tesseract.h"
-+
-+// static tesseract::TessBaseAPI api[4];
-+
-+/*
-+** ocr_type=0:  OEM_DEFAULT
-+** ocr_type=1:  OEM_TESSERACT_ONLY
-+** ocr_type=2:  OEM_LSTM_ONLY
-+** ocr_type=3:  OEM_TESSERACT_LSTM_COMBINED
-+*/
-+void *tess_capi_init(char *datapath,char *language,int ocr_type,FILE *out,
-+                     char *initstr,int maxlen,int *status)
-+
-+    {
-+    char original_locale[256];
-+    tesseract::TessBaseAPI *api = new tesseract::TessBaseAPI;
-+/*
-+printf("@tess_capi_init\n");
-+printf("    datapath='%s'\n",datapath);
-+printf("    language='%s'\n",language);
-+printf("    ocr_type=%d\n",ocr_type);
-+*/
-+#ifdef USE_NLS
-+    setlocale (LC_ALL, "");
-+    bindtextdomain (PACKAGE, LOCALEDIR);
-+    textdomain (PACKAGE);
-+#endif
-+    /* willus mod, 11-24-16 */
-+    /* Tesseract needs "C" locale to correctly parse all data .traineddata files. */
-+/*
-+printf("locale='%s'\n",setlocale(LC_ALL,NULL));
-+printf("ctype='%s'\n",setlocale(LC_CTYPE,NULL));
-+printf("numeric='%s'\n",setlocale(LC_NUMERIC,NULL));
-+*/
-+    strncpy(original_locale,setlocale(LC_ALL,NULL),255);
-+    original_locale[255]='\0';
-+/*
-+printf("original_locale='%s'\n",original_locale);
-+*/
-+    setlocale(LC_ALL,"C");
-+/*
-+printf("new locale='%s'\n",setlocale(LC_ALL,NULL));
-+printf("new ctype='%s'\n",setlocale(LC_CTYPE,NULL));
-+printf("new numeric='%s'\n",setlocale(LC_NUMERIC,NULL));
-+*/
-+    // fprintf(stderr, "tesseract %s\n", tesseract::TessBaseAPI::Version());
-+    // Make the order of args a bit more forgiving than it used to be.
-+    const char* lang = "eng";
-+    tesseract::PageSegMode pagesegmode = tesseract::PSM_SINGLE_BLOCK;
-+    if (language!=NULL && language[0]!='\0')
-+        lang = language;
-+    /*
-+    if (output == NULL)
-+        {
-+        fprintf(stderr, _("Usage:%s imagename outputbase [-l lang] "
-+                      "[-psm pagesegmode] [configfile...]\n"), argv[0]);
-+        fprintf(stderr,
-+            _("pagesegmode values are:\n"
-+              "0 = Orientation and script detection (OSD) only.\n"
-+              "1 = Automatic page segmentation with OSD.\n"
-+              "2 = Automatic page segmentation, but no OSD, or OCR\n"
-+              "3 = Fully automatic page segmentation, but no OSD. (Default)\n"
-+              "4 = Assume a single column of text of variable sizes.\n"
-+              "5 = Assume a single uniform block of vertically aligned text.\n"
-+              "6 = Assume a single uniform block of text.\n"
-+              "7 = Treat the image as a single text line.\n"
-+              "8 = Treat the image as a single word.\n"
-+              "9 = Treat the image as a single word in a circle.\n"
-+              "10 = Treat the image as a single character.\n"));
-+        fprintf(stderr, _("-l lang and/or -psm pagesegmode must occur before any"
-+                      "configfile.\n"));
-+        exit(1);
-+        }
-+    */
-+/*
-+printf("SSE = %s\n",SIMDDetect::IsSSEAvailable() ? "AVAILABLE" : "NOT AVAILABLE");
-+printf("AVX = %s\n",SIMDDetect::IsAVXAvailable() ? "AVAILABLE" : "NOT AVAILABLE");
-+*/
-+/*
-+v4.00 loads either TESSERACT enginer, LSTM engine, or both.  No CUBE.
-+*/
-+    ocr_type=0; /* Ignore specified and use default */
-+    api->SetOutputName(NULL);
-+    (*status)=api->Init(datapath,lang,
-+              ocr_type==0 ? tesseract::OEM_DEFAULT :
-+                (ocr_type==1 ? tesseract::OEM_TESSERACT_ONLY :
-+                   (ocr_type==2 ? tesseract::OEM_LSTM_ONLY :
-+                                  (tesseract::OEM_TESSERACT_LSTM_COMBINED))));
-+    if ((*status)!=0)
-+        {
-+        /* willus mod, 11-24-16 */
-+        setlocale(LC_ALL,original_locale);
-+        api->End();
-+        delete api;
-+        return(NULL);
-+        }
-+    /*
-+    api.Init("tesscapi",lang,tesseract::OEM_DEFAULT,
-+           &(argv[arg]), argc - arg, NULL, NULL, false);
-+    */
-+    // We have 2 possible sources of pagesegmode: a config file and
-+    // the command line. For backwards compatability reasons, the
-+    // default in tesseract is tesseract::PSM_SINGLE_BLOCK, but the
-+    // default for this program is tesseract::PSM_AUTO. We will let
-+    // the config file take priority, so the command-line default
-+    // can take priority over the tesseract default, so we use the
-+    // value from the command line only if the retrieved mode
-+    // is still tesseract::PSM_SINGLE_BLOCK, indicating no change
-+    // in any config file. Therefore the only way to force
-+    // tesseract::PSM_SINGLE_BLOCK is from the command line.
-+    // It would be simpler if we could set the value before Init,
-+    // but that doesn't work.
-+    if (api->GetPageSegMode() == tesseract::PSM_SINGLE_BLOCK)
-+        api->SetPageSegMode(pagesegmode);
-+
-+    /*
-+    ** Initialization message
-+    */
-+    {
-+    char istr[1024];
-+    int sse,avx;
-+
-+// printf("tessedit_ocr_engine_mode = %d\n",tessedit_ocr_engine_mode);
-+    sprintf(istr,"%s",api->Version());
-+    sse=tesseract::SIMDDetect::IsSSEAvailable();
-+    avx=tesseract::SIMDDetect::IsAVXAvailable();
-+    if (sse || avx)
-+        sprintf(&istr[strlen(istr)]," [%s]",sse&&avx?"SSE+AVX":(sse?"SSE":"AVX"));
-+    sprintf(&istr[strlen(istr)],"\n    Tesseract data folder = '%s'",datapath==NULL?getenv("TESSDATA_PREFIX"):datapath);
-+    strcat(istr,"\n    Tesseract languages: ");
-+    GenericVector<STRING> languages;
-+    api->GetLoadedLanguagesAsVector(&languages);
-+/*
-+printf("OEM=%d\n",api->oem());
-+printf("Langs='%s'\n",api->GetInitLanguagesAsString());
-+printf("AnyTessLang()=%d\n",(int)api->tesseract()->AnyTessLang());
-+printf("AnyLSTMLang()=%d\n",(int)api->tesseract()->AnyLSTMLang());
-+printf("num_sub_langs()=%d\n",api->tesseract()->num_sub_langs());
-+printf("languages.size()=%d\n",(int)languages.size());
-+*/
-+
-+    for (int i=0;i<=api->tesseract()->num_sub_langs();i++)
-+        {
-+        tesseract::Tesseract *lang1;
-+        int eng;
-+        lang1 = i==0 ? api->tesseract() : api->tesseract()->get_sub_lang(i-1);
-+        eng=(int)lang1->tessedit_ocr_engine_mode;
-+        sprintf(&istr[strlen(istr)],"%s%s [%s]",i==0?"":", ",lang1->lang.string(),
-+                 eng==2?"LSTM+Tess":(eng==1?"LSTM":"Tess"));
-+        }
-+/*
-+printf("%d. '%s'\n",i+1,languages[i].string());
-+printf("    sublang[%d].oem_engine = %d\n",i+1,(int)api->tesseract()->get_sub_lang(i)->tessedit_ocr_engine_mode);
-+*/
-+
-+    /*
-+    if (ocr_type==0 || ocr_type==3)
-+        sprintf(&istr[strlen(istr)],"[LSTM+] (lang=");
-+    else if (ocr_type==2)
-+        sprintf(&istr[strlen(istr)],"[LSTM] (lang=");
-+    strncpy(&istr[strlen(istr)],language,253-strlen(istr));
-+    istr[253]='\0';
-+    strcat(istr,")");
-+    */
-+    if (out!=NULL)
-+        fprintf(out,"%s\n",istr);
-+    if (initstr!=NULL)
-+        {
-+        strncpy(initstr,istr,maxlen-1);
-+        initstr[maxlen-1]='\0';
-+        }
-+    }
-+
-+
-+    /* Turn off LSTM debugging output */
-+    api->SetVariable("lstm_debug_level","0");
-+#if (WILLUSDEBUG & 1)
-+    api->SetVariable("lstm_debug_level","9");
-+    api->SetVariable("paragraph_debug_level","9");
-+    api->SetVariable("tessdata_manager_debug_level","9");
-+    api->SetVariable("tosp_debug_level","9");
-+    api->SetVariable("wordrec_debug_level","9");
-+    api->SetVariable("segsearch_debug_level","9");
-+#endif
-+    /* willus mod, 11-24-16 */
-+    setlocale(LC_ALL,original_locale);
-+    return((void *)api);
-+    }
-+
-+
-+int tess_capi_get_ocr(void *vapi,PIX *pix,char *outstr,int maxlen,int segmode,FILE *out)
-+
-+    {
-+    tesseract::TessBaseAPI *api;
-+    static int old_segmode=-1;
-+
-+    api=(tesseract::TessBaseAPI *)vapi;
-+    if (old_segmode != segmode)
-+        {
-+        old_segmode=segmode;
-+        api->SetPageSegMode((tesseract::PageSegMode)segmode);
-+        }
-+    if (!api->ProcessPage(pix,0,NULL,NULL,0,NULL))
-+        {
-+        /* pixDestroy(&pix); */
-+        if (out!=NULL)
-+            fprintf(out,"tesscapi:  Error during bitmap processing.\n");
-+        api->Clear();
-+        return(-1);
-+        }
-+    strncpy(outstr,api->GetUTF8Text(),maxlen-1);
-+    outstr[maxlen-1]='\0';
-+    api->Clear();
-+    return(0);
-+    }
-+
-+
-+int tess_capi_get_ocr_multiword(void *vapi,PIX *pix,int segmode,
-+                                int **left,int **top,int **right,int **bottom,
-+                                int **ybase,char **text,int *nw,
-+                                FILE *out)
-+
-+    {
-+    tesseract::TessBaseAPI *api;
-+    static int old_segmode=-1;
-+
-+    api=(tesseract::TessBaseAPI *)vapi;
-+    if (old_segmode != segmode)
-+        {
-+        old_segmode=segmode;
-+        api->SetPageSegMode((tesseract::PageSegMode)segmode);
-+        }
-+    if (!api->ProcessPage(pix,0,NULL,NULL,0,NULL))
-+        {
-+        if (out!=NULL)
-+            fprintf(out,"tesscapi:  Error during bitmap processing.\n");
-+        api->Clear();
-+        (*nw)=0;
-+        return(-1);
-+        }
-+    (*nw)=api->GetOCRWords(left,top,right,bottom,ybase,text);
-+    api->Clear();
-+    return(0);
-+    }
-+
-+
-+void tess_capi_end(void *vapi)
-+
-+    {
-+    tesseract::TessBaseAPI *api;
-+
-+    if (vapi==NULL)
-+        return;
-+    api=(tesseract::TessBaseAPI *)vapi;
-+    api->End();
-+    delete api;
-+    }
-diff --git a/src/api/tesseract.h b/src/api/tesseract.h
-new file mode 100644
-index 00000000..575948cc
---- /dev/null
-+++ b/src/api/tesseract.h
-@@ -0,0 +1,29 @@
-+/*
-+** Willus.com's Tesseract C Wrappers
-+**
-+** 6-8-12
-+**
-+*/
-+
-+#ifndef           _TESSERACT_H_
-+#define           _TESSERACT_H_
-+
-+//#include <leptonica.h>
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+void *tess_capi_init(char *datapath,char *language,int ocr_type,FILE *out,
-+                    char *initstr,int maxlen,int *status);
-+int tess_capi_get_ocr(void *api,PIX *pix,char *outstr,int maxlen,int segmode,FILE *out);
-+int tess_capi_get_ocr_multiword(void *vapi,PIX *pix,int segmode,
-+                                int **left,int **top,int **right,int **bottom,
-+                                int **ybase,char **text,int *nw,
-+                                FILE *out);
-+void tess_capi_end(void *api);
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif
-diff --git a/src/ccmain/tessedit.cpp b/src/ccmain/tessedit.cpp
-index 17f0951b..7af94ee2 100644
---- a/src/ccmain/tessedit.cpp
-+++ b/src/ccmain/tessedit.cpp
-@@ -101,6 +101,10 @@ bool Tesseract::init_tesseract_lang_data(
-         " to your \"tessdata\" directory.\n");
-     return false;
-   }
-+  /* willus mod */
-+  TFile fp;
-+  strncpy(fp.tfile_filename,tessdata_path.string(),511);
-+  fp.tfile_filename[511]='\0';
- #ifndef DISABLED_LEGACY_ENGINE
-   if (oem == OEM_DEFAULT) {
-     // Set the engine mode from availability, which can then be overridden by
-@@ -116,7 +120,6 @@ bool Tesseract::init_tesseract_lang_data(
- #endif  // ndef DISABLED_LEGACY_ENGINE
- 
-   // If a language specific config file (lang.config) exists, load it in.
--  TFile fp;
-   if (mgr->GetComponent(TESSDATA_LANG_CONFIG, &fp)) {
-     ParamUtils::ReadParamsFromFp(SET_PARAM_CONSTRAINT_NONE, &fp,
-                                  this->params());
-diff --git a/src/ccutil/ccutil.h b/src/ccutil/ccutil.h
-index 71e89c60..bdeccc14 100644
---- a/src/ccutil/ccutil.h
-+++ b/src/ccutil/ccutil.h
-@@ -80,6 +80,13 @@ class CCUtil {
-   // Member parameters.
-   // These have to be declared and initialized after params_ member, since
-   // params_ should be initialized before parameters are added to it.
-+/* willus mod */
-+/*
-+  #ifdef _WIN32
-+  STRING_VAR_H(tessedit_module_name, WINDLLNAME,
-+               "Module colocated with tessdata dir");
-+  #endif
-+*/
-   INT_VAR_H(ambigs_debug_level, 0, "Debug level for unichar ambiguities");
-   BOOL_VAR_H(use_definite_ambigs_for_classifier, false,
-              "Use definite ambiguities when running character classifier");
-diff --git a/src/ccutil/genericvector.h b/src/ccutil/genericvector.h
-index 3556d153..3a5e8662 100644
---- a/src/ccutil/genericvector.h
-+++ b/src/ccutil/genericvector.h
-@@ -382,7 +382,26 @@ inline bool LoadDataFromFile(const char* filename, GenericVector<char>* data) {
-       // reserve an extra byte in case caller wants to append a '\0' character
-       data->reserve(size + 1);
-       data->resize_no_init(size);
--      result = static_cast<long>(fread(&(*data)[0], 1, size, fp)) == size;
-+    /* willus mod Dec 2018--weird issue with Win XP and MinGW gcc 7.3.0 */
-+    /* Can't read entire file at once -- need to break up into smaller blocksize reads */
-+    {
-+    int frs,n;
-+    int blocksize;
-+    blocksize=1024*1024;
-+    for (n=0;1;)
-+        {
-+        int bs;
-+        bs= size-n > blocksize ? blocksize : size-n;
-+        frs=(int)fread(&(*data)[n],1,bs,fp);
-+        n+=frs;
-+        if (frs<bs || bs<blocksize || n>=size)
-+            break;
-+        }
-+    result = static_cast<long>((long)n==size);
-+    }
-+    /*
-+    result = static_cast<long>(fread(&(*data)[0], 1, size, fp)) == size;
-+    */
-     }
-     fclose(fp);
-   }
-diff --git a/src/ccutil/mainblk.cpp b/src/ccutil/mainblk.cpp
-index 52b04b04..80b26044 100644
---- a/src/ccutil/mainblk.cpp
-+++ b/src/ccutil/mainblk.cpp
-@@ -55,8 +55,22 @@ void CCUtil::main_setup(const char *argv0, const char *basename) {
- #if defined(_WIN32)
-   } else if (datadir == nullptr || _access(datadir.string(), 0) != 0) {
-     /* Look for tessdata in directory of executable. */
-+    /*
-+    char drive[_MAX_DRIVE];
-+    char dir[_MAX_DIR];
-+    */
-     char path[_MAX_PATH];
--    DWORD length = GetModuleFileName(nullptr, path, sizeof(path));
-+    int i;
-+    /* DWORD length = */ GetModuleFileName(nullptr, path, sizeof(path));
-+    /* willus mod--avoid _splitpath_s -- not in XP */
-+    for (i=strlen(path)-1;i>=0 && path[i]!='/' && path[i]!='\\';i--);
-+    if (i>=0)
-+        {
-+        path[i]='\0';
-+        datadir=path;
-+        datadir += "/tessdata";
-+        }
-+    /*
-     if (length > 0 && length < sizeof(path)) {
-       char* separator = std::strrchr(path, '\\');
-       if (separator != nullptr) {
-@@ -65,6 +79,7 @@ void CCUtil::main_setup(const char *argv0, const char *basename) {
-         datadir += "/tessdata";
-       }
-     }
-+    */
- #endif /* _WIN32 */
- #if defined(TESSDATA_PREFIX)
-   } else {
-diff --git a/src/ccutil/params.cpp b/src/ccutil/params.cpp
-index 00bf2563..486c5ce0 100644
---- a/src/ccutil/params.cpp
-+++ b/src/ccutil/params.cpp
-@@ -82,7 +82,8 @@ bool ParamUtils::ReadParamsFromFp(SetParamConstraint constraint, TFile *fp,
- 
-       if (!foundit) {
-         anyerr = true;         // had an error
--        tprintf("Warning: Parameter not found: %s\n", line);
-+        /* willus mod */
-+        tprintf("Tesseract warning: Parameter %s not found in file %s.\n",line,fp->tfile_filename);
-       }
-     }
-   }
-diff --git a/src/ccutil/serialis.cpp b/src/ccutil/serialis.cpp
-index 7def011f..6107a494 100644
---- a/src/ccutil/serialis.cpp
-+++ b/src/ccutil/serialis.cpp
-@@ -201,6 +201,9 @@ bool TFile::Open(const STRING& filename, FileReader reader) {
-   offset_ = 0;
-   is_writing_ = false;
-   swap_ = false;
-+  /* willus mod */
-+  strncpy(tfile_filename,filename.string(),511);
-+  tfile_filename[511]='\0';
-   if (reader == nullptr)
-     return LoadDataFromFile(filename, data_);
-   else
-diff --git a/src/ccutil/serialis.h b/src/ccutil/serialis.h
-index 095b9227..4cc8251e 100644
---- a/src/ccutil/serialis.h
-+++ b/src/ccutil/serialis.h
-@@ -77,6 +77,8 @@ class TFile {
-  public:
-   TFile();
-   ~TFile();
-+  /* willus mod */
-+  char tfile_filename[512];
- 
-   // All the Open methods load the whole file into memory for reading.
-   // Opens a file with a supplied reader, or nullptr to use the default.
-diff --git a/src/lstm/input.cpp b/src/lstm/input.cpp
-index 73b584b3..0b0b54c3 100644
---- a/src/lstm/input.cpp
-+++ b/src/lstm/input.cpp
-@@ -93,8 +93,11 @@ Pix* Input::PrepareLSTMInputs(const ImageData& image_data,
-     return nullptr;
-   }
-   if (width < min_width || height < min_width) {
-+    /* willus mod -- no warning */
-+    /*
-     tprintf("Image too small to scale!! (%dx%d vs min width of %d)\n", width,
-             height, min_width);
-+    */
-     pixDestroy(&pix);
-     return nullptr;
-   }
--- 
-2.22.0
-
diff --git a/pkgs/applications/misc/minder/default.nix b/pkgs/applications/misc/minder/default.nix
index 52db4d0c6cc66..14b9ebfe4c7dd 100644
--- a/pkgs/applications/misc/minder/default.nix
+++ b/pkgs/applications/misc/minder/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "minder";
-  version = "1.9.1";
+  version = "1.9.2";
 
   src = fetchFromGitHub {
     owner = "phase1geo";
     repo = pname;
     rev = version;
-    sha256 = "1823nl9hgsa9l04ra1drj3c7r8s5ybx6c06d9ijpwqz191sz2jg2";
+    sha256 = "0lhwwx515f0ycpinkhgbjnik7dj2c7fckikbgzwkzzs25xqp9ayj";
   };
 
   nativeBuildInputs = [ pkgconfig meson ninja python3 wrapGAppsHook vala shared-mime-info ];
diff --git a/pkgs/applications/misc/octoprint/plugins.nix b/pkgs/applications/misc/octoprint/plugins.nix
index b5d52f5e5f895..ddf68b6f7c381 100644
--- a/pkgs/applications/misc/octoprint/plugins.nix
+++ b/pkgs/applications/misc/octoprint/plugins.nix
@@ -252,4 +252,42 @@ in {
       maintainers = with maintainers; [ WhittlesJr ];
     };
   };
+
+  displaylayerprogress = buildPlugin rec {
+    pname = "OctoPrint-DisplayLayerProgress";
+    version = "1.23.2";
+
+    src = fetchFromGitHub {
+      owner = "OllisGit";
+      repo = pname;
+      rev = version;
+      sha256 = "0yv8gy5dq0rl7zxkvqa98az391aiixl8wbzkyvbmpjar9r6whdzm";
+    };
+
+    meta = with stdenv.lib; {
+      description = "OctoPrint-Plugin that sends the current progress of a print via M117 command";
+      homepage = "https://github.com/OllisGit/OctoPrint-DisplayLayerProgress";
+      license = licenses.agpl3;
+      maintainers = with maintainers; [ j0hax ];
+    };
+  };
+
+  octoprint-dashboard = buildPlugin rec {
+    pname = "OctoPrint-Dashboard";
+    version = "1.13.0";
+
+    src = fetchFromGitHub {
+      owner = "StefanCohen";
+      repo = pname;
+      rev = version;
+      sha256 = "1879l05gkkryvhxkmhr3xvd10d4m7i0cr3jk1gdcv47xwyr6q9pf";
+    };
+
+    meta = with stdenv.lib; {
+      description = "A dashboard for Octoprint";
+      homepage = "https://github.com/StefanCohen/OctoPrint-Dashboard";
+      license = licenses.agpl3;
+      maintainers = with maintainers; [ j0hax ];
+    };
+  };
 }
diff --git a/pkgs/applications/misc/openambit/default.nix b/pkgs/applications/misc/openambit/default.nix
new file mode 100644
index 0000000000000..5ef6d4ae84d41
--- /dev/null
+++ b/pkgs/applications/misc/openambit/default.nix
@@ -0,0 +1,48 @@
+{ cmake
+, fetchFromGitHub
+, lib
+, libusb1
+, mkDerivation
+, python3
+, qtbase
+, qttools
+, udev
+, zlib
+}:
+
+mkDerivation rec {
+  pname = "openambit";
+  version = "0.5";
+
+  src = fetchFromGitHub {
+    owner = "openambitproject";
+    repo = pname;
+    rev = version;
+    sha256 = "1074kvkamwnlkwdajsw1799wddcfkjh2ay6l842r0s4cvrxrai85";
+  };
+
+  nativeBuildInputs = [ cmake qttools ];
+  buildInputs = [ libusb1 python3 qtbase udev zlib ];
+
+  cmakeFlags = [ "-DCMAKE_INSTALL_UDEVRULESDIR=${placeholder "out"}/lib/udev/rules.d" ];
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/openambit --version
+  '';
+
+  postInstall = ''
+    install -m755 -D $src/tools/openambit2gpx.py $out/bin/openambit2gpx
+
+    mv -v $out/lib/udev/rules.d/libambit.rules \
+          $out/lib/udev/rules.d/20-libambit.rules
+  '';
+
+  meta = with lib; {
+    description = "Helps fetch data from Suunto Ambit GPS watches";
+    homepage = "https://github.com/openambitproject/openambit/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ rycee ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/qcad/application-dir.patch b/pkgs/applications/misc/qcad/application-dir.patch
index 84782e1e7178f..0b8a29319eb3d 100644
--- a/pkgs/applications/misc/qcad/application-dir.patch
+++ b/pkgs/applications/misc/qcad/application-dir.patch
@@ -33,3 +33,16 @@ index c6c31cbf5..c51b59ce6 100644
  }
  
  int RSettings::getSnapRange() {
+diff --git a/qcad.desktop b/qcad.desktop
+index 93c5e9720..2d0e6bf32 100644
+--- a/qcad.desktop
++++ b/qcad.desktop
+@@ -48,7 +48,7 @@ Comment[sv]=2D CAD-system
+ Comment[sl]=Sistem 2D CAD
+ Comment[uk]=2D САПР
+ Comment[tr]=2D CAD Sistemi
+-Exec=qcad %F
++Exec=qcad-bin %F
+ X-MultipleArgs=true
+ Icon=qcad_icon
+ Terminal=false
diff --git a/pkgs/applications/misc/qcad/default.nix b/pkgs/applications/misc/qcad/default.nix
index 0079cd220bdeb..26b6f3297644b 100644
--- a/pkgs/applications/misc/qcad/default.nix
+++ b/pkgs/applications/misc/qcad/default.nix
@@ -11,13 +11,13 @@
 
 mkDerivationWith stdenv.mkDerivation rec {
   pname = "qcad";
-  version = "3.24.3.10";
+  version = "3.25.0.0";
 
   src = fetchFromGitHub {
     owner = "qcad";
     repo = "qcad";
     rev = "v${version}";
-    sha256 = "0izyn4y1ffq1mgxs5dymkrqih6n6v9ifrcpyk1z2vyhbm5xx4qsa";
+    sha256 = "07qph2645m1wi9yi04ixdvx8dli03q1vimj3laqdmnpipi54lljc";
   };
 
   patches = [
@@ -25,11 +25,13 @@ mkDerivationWith stdenv.mkDerivation rec {
   ];
 
   postPatch = ''
-    mkdir src/3rdparty/qt-labs-qtscriptgenerator-${qt5.qtbase.version}
-    cp \
-      src/3rdparty/qt-labs-qtscriptgenerator-5.12.3/qt-labs-qtscriptgenerator-5.12.3.pro \
-      src/3rdparty/qt-labs-qtscriptgenerator-${qt5.qtbase.version}/qt-labs-qtscriptgenerator-${qt5.qtbase.version}.pro
-  '';
+    if ! [ -d src/3rdparty/qt-labs-qtscriptgenerator-${qt5.qtbase.version} ]; then
+      mkdir src/3rdparty/qt-labs-qtscriptgenerator-${qt5.qtbase.version}
+      cp \
+        src/3rdparty/qt-labs-qtscriptgenerator-5.14.0/qt-labs-qtscriptgenerator-5.14.0.pro \
+        src/3rdparty/qt-labs-qtscriptgenerator-${qt5.qtbase.version}/qt-labs-qtscriptgenerator-${qt5.qtbase.version}.pro
+    fi
+ '';
 
   qmakeFlags = [
     "MUPARSER_DIR=${muparser}"
diff --git a/pkgs/applications/misc/qdirstat/default.nix b/pkgs/applications/misc/qdirstat/default.nix
index c57153fe0e0df..e9f049159bfa7 100644
--- a/pkgs/applications/misc/qdirstat/default.nix
+++ b/pkgs/applications/misc/qdirstat/default.nix
@@ -3,17 +3,19 @@
 , makeWrapper, perlPackages, mkDerivation }:
 
 let
-  version = "1.6.1";
-in mkDerivation rec {
   pname = "qdirstat";
-  inherit version;
+  version = "1.7";
 
   src = fetchFromGitHub {
     owner = "shundhammer";
-    repo = "qdirstat";
+    repo = pname;
     rev = version;
-    sha256 = "0q77a347qv1aka6sni6l03zh5jzyy9s74aygg554r73g01kxczpb";
+    sha256 = "163x3fxra0l3vvrzm25mh7jvcwjbmwsqlpppkxx76mkz9a1769fy";
   };
+in
+
+mkDerivation {
+  inherit pname version src;
 
   nativeBuildInputs = [ qmake makeWrapper ];
 
diff --git a/pkgs/applications/misc/sdcv/default.nix b/pkgs/applications/misc/sdcv/default.nix
index 997786fc10724..d220047a0a3b0 100644
--- a/pkgs/applications/misc/sdcv/default.nix
+++ b/pkgs/applications/misc/sdcv/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sdcv";
-  version = "0.5.2";
+  version = "0.5.3";
 
   src = fetchFromGitHub {
     owner = "Dushistov";
     repo = "sdcv";
     rev = "v${version}";
-    sha256 = "1b67s4nj0s5fh3cjk7858qvhiisc557xx72xwzrb8hq6ijpwx5k0";
+    sha256 = "144qpl9b8r2php0zhi9b7vg6flpvdgjy6yfaipydwwhxi4wy9600";
   };
 
   hardeningDisable = [ "format" ];
diff --git a/pkgs/applications/misc/timewarrior/default.nix b/pkgs/applications/misc/timewarrior/default.nix
index 25cd3a536700a..7b1d3c302b1db 100644
--- a/pkgs/applications/misc/timewarrior/default.nix
+++ b/pkgs/applications/misc/timewarrior/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "timewarrior";
-  version = "1.3.0";
+  version = "1.4.2";
 
   enableParallelBuilding = true;
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "GothenburgBitFactory";
     repo = "timewarrior";
     rev = "v${version}";
-    sha256 = "1aijh1ad7gpa61cn7b57w24vy7fyjj0zx5k9z8d6m1ldzbw589cl";
+    sha256 = "0qvhpva0hmhybn0c2aajndw5vnxar1jw4pjjajd2k2cr6vax29dw";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/misc/worker/default.nix b/pkgs/applications/misc/worker/default.nix
index 9e3022457a0e4..b19b1b86cf57f 100644
--- a/pkgs/applications/misc/worker/default.nix
+++ b/pkgs/applications/misc/worker/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "worker";
-  version = "4.4.0";
+  version = "4.5.0";
 
   src = fetchurl {
     url = "http://www.boomerangsworld.de/cms/worker/downloads/${pname}-${version}.tar.gz";
-    sha256 = "1k2svpzq01n1h9365nhi7r2k7dmsviczxi9m6fb80ccccdz7i530";
+    sha256 = "02xrdg1v784p4gfqjm1mlxqwi40qlbzhp68p5ksj96cjv6av5b5s";
   };
 
   buildInputs = [ libX11 ];
diff --git a/pkgs/applications/misc/zettlr/default.nix b/pkgs/applications/misc/zettlr/default.nix
new file mode 100644
index 0000000000000..3d762d9ab2a71
--- /dev/null
+++ b/pkgs/applications/misc/zettlr/default.nix
@@ -0,0 +1,38 @@
+{ appimageTools, lib, fetchurl, gtk3, gsettings-desktop-schemas}:
+
+# Based on https://gist.github.com/msteen/96cb7df66a359b827497c5269ccbbf94 and joplin-desktop nixpkgs.
+let
+  pname = "zettlr";
+  version = "1.7.5";
+  name = "${pname}-${version}";
+  src = fetchurl {
+    url = "https://github.com/Zettlr/Zettlr/releases/download/v${version}/Zettlr-${version}-x86_64.appimage";
+    sha256 = "040lx01ywdpla34d4abkmh51kchr11s17la6fk6yq77y8zb87xzi";
+  };
+  appimageContents = appimageTools.extractType2 {
+    inherit name src;
+  };
+in appimageTools.wrapType2 rec {
+  inherit name src;
+
+  profile = ''
+    export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
+  '';
+
+  multiPkgs = null; # no 32bit needed
+  extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
+  extraInstallCommands = ''
+    mv $out/bin/{${name},${pname}}
+    install -m 444 -D ${appimageContents}/zettlr.desktop $out/share/applications/zettlr.desktop
+    install -m 444 -D ${appimageContents}/zettlr.png $out/share/icons/hicolor/512x512/apps/zettlr.png
+    substituteInPlace $out/share/applications/zettlr.desktop --replace 'Exec=AppRun' 'Exec=${pname}'
+  '';
+
+  meta = with lib; {
+    description = "A markdown editor for writing academic texts and taking notes";
+    homepage = "https://www.zettlr.com";
+    platforms = [ "x86_64-linux" ];
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ tfmoraes ];
+  };
+}
diff --git a/pkgs/applications/misc/zola/default.nix b/pkgs/applications/misc/zola/default.nix
index 710d824df11f6..5c4df9880d9fd 100644
--- a/pkgs/applications/misc/zola/default.nix
+++ b/pkgs/applications/misc/zola/default.nix
@@ -1,22 +1,24 @@
-{ stdenv, fetchFromGitHub, rustPlatform, cmake, pkg-config, openssl, CoreServices }:
+{ stdenv, fetchFromGitHub, rustPlatform, cmake, pkg-config, openssl, oniguruma, CoreServices }:
 
 rustPlatform.buildRustPackage rec {
   pname = "zola";
-  version = "0.11.0";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "getzola";
     repo = pname;
     rev = "v${version}";
-    sha256 = "137ak9gzcn3689fmcb90wa4szw43rh2m51mf26l77a5gksn5y6cn";
+    sha256 = "119ikgall6bv1r6h1pqcmc6nxkxld2lch04gk860zzk54jragbrp";
   };
 
-  cargoSha256 = "0v40bcqh48dlhdc0kz7wm3q9r3i1m6j9s74bfiv237dqx5dymmsg";
+  cargoSha256 = "1jx5bgfmbv0wljps1yv6yir2pjlb0vwzzba4i2sv32awv9y0q3v6";
 
   nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ openssl ]
+  buildInputs = [ openssl oniguruma ]
     ++ stdenv.lib.optional stdenv.isDarwin CoreServices;
 
+  RUSTONIG_SYSTEM_LIBONIG = true;
+
   postInstall = ''
     install -D -m 444 completions/zola.bash \
       -t $out/share/bash-completion/completions
diff --git a/pkgs/applications/networking/browsers/amfora/default.nix b/pkgs/applications/networking/browsers/amfora/default.nix
index a06489f190bea..2772cb6d987de 100644
--- a/pkgs/applications/networking/browsers/amfora/default.nix
+++ b/pkgs/applications/networking/browsers/amfora/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "amfora";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "makeworld-the-better-one";
     repo = "amfora";
     rev = "v${version}";
-    sha256 = "1z4r1yqy5nkfa7yqcsqpqfdcghw8idryzb3s6d6ibca47r0qlcvw";
+    sha256 = "011h5xzwiafh3fdp9wil8n618p45ph9swa66lw6s82ijpiizz79s";
   };
 
-  vendorSha256 = "0xj2s14dq10fwqqxjn4d8x6zljd5d15gjbja2gb75rfv09s4fdgv";
+  vendorSha256 = "10f3bh3r3jc1185r8r1ihg8rprdpl8qwg5b6wqwsda96ydkbpi2b";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix
index d0937a9c6d467..4e3960ee72968 100644
--- a/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/pkgs/applications/networking/browsers/chromium/common.nix
@@ -1,7 +1,7 @@
-{ stdenv, lib, llvmPackages, gnChromium, ninja, which, nodejs, fetchpatch, gnutar
+{ stdenv, lib, llvmPackages, gnChromium, ninja, which, nodejs, fetchpatch, fetchurl
 
 # default dependencies
-, bzip2, flac, speex, libopus
+, gnutar, bzip2, flac, speex, libopus
 , libevent, expat, libjpeg, snappy
 , libpng, libcap
 , xdg_utils, yasm, nasm, minizip, libwebp
@@ -39,6 +39,7 @@
 , cupsSupport ? true
 , pulseSupport ? false, libpulseaudio ? null
 
+, channel
 , upstream-info
 }:
 
@@ -108,7 +109,7 @@ let
   versionRange = min-version: upto-version:
     let inherit (upstream-info) version;
         result = versionAtLeast version min-version && versionOlder version upto-version;
-        stable-version = (import ./upstream-info.nix).stable.version;
+        stable-version = (importJSON ./upstream-info.json).stable.version;
     in if versionAtLeast stable-version upto-version
        then warn "chromium: stable version ${stable-version} is newer than a patchset bounded at ${upto-version}. You can safely delete it."
             result
@@ -116,10 +117,13 @@ 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
@@ -344,9 +348,11 @@ let
       origRpath="$(patchelf --print-rpath "$chromiumBinary")"
       patchelf --set-rpath "${libGL}/lib:$origRpath" "$chromiumBinary"
     '';
+
+    passthru.updateScript = ./update.py;
   };
 
 # Remove some extraAttrs we supplied to the base attributes already.
 in stdenv.mkDerivation (base // removeAttrs extraAttrs [
   "name" "gnFlags" "buildTargets"
-])
+] // { passthru = base.passthru // (extraAttrs.passthru or {}); })
diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix
index efaaefce65a2a..1b3f284e1b3d7 100644
--- a/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/pkgs/applications/networking/browsers/chromium/default.nix
@@ -1,5 +1,5 @@
-{ newScope, config, stdenv, llvmPackages_10, llvmPackages_11
-, makeWrapper, ed, gnugrep, coreutils
+{ newScope, config, stdenv, fetchurl, makeWrapper
+, llvmPackages_10, llvmPackages_11, ed, gnugrep, coreutils
 , glib, gtk3, gnome3, gsettings-desktop-schemas, gn, fetchgit
 , libva ? null
 , pipewire_0_2
@@ -31,10 +31,11 @@ let
   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-05-19";
@@ -63,22 +64,33 @@ let
     };
   };
 
+  pkgSuffix = if channel == "dev" then "unstable" else channel;
+  pkgName = "google-chrome-${pkgSuffix}";
+  chromeSrc = fetchurl {
+    url = 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;
+    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.";
@@ -211,6 +223,7 @@ in stdenv.mkDerivation {
   passthru = {
     inherit (chromium) upstream-info browser;
     mkDerivation = chromium.mkChromiumDerivation;
-    inherit sandboxExecutableName;
+    inherit chromeSrc sandboxExecutableName;
+    updateScript = ./update.py;
   };
 }
diff --git a/pkgs/applications/networking/browsers/chromium/update.nix b/pkgs/applications/networking/browsers/chromium/update.nix
deleted file mode 100644
index 6dff17c69ddb9..0000000000000
--- a/pkgs/applications/networking/browsers/chromium/update.nix
+++ /dev/null
@@ -1,271 +0,0 @@
-let maybePkgs = import ../../../../../. {}; in
-
-{ stdenv     ? maybePkgs.stdenv
-, runCommand ? maybePkgs.runCommand
-, fetchurl   ? maybePkgs.fetchurl
-, writeText  ? maybePkgs.writeText
-, curl       ? maybePkgs.curl
-, cacert     ? maybePkgs.cacert
-, nix        ? maybePkgs.nix
-}:
-
-let
-  inherit (stdenv) lib;
-
-  sources = if builtins.pathExists ./upstream-info.nix
-            then import ./upstream-info.nix
-            else {};
-
-  bucketURL = "https://commondatastorage.googleapis.com/"
-            + "chromium-browser-official";
-
-  mkVerURL = version: "${bucketURL}/chromium-${version}.tar.xz";
-
-  debURL = "https://dl.google.com/linux/chrome/deb/pool/main/g";
-
-  getDebURL = channelName: version: arch: mirror: let
-    packageSuffix = if channelName == "dev" then "unstable" else channelName;
-    packageName = "google-chrome-${packageSuffix}";
-  in "${mirror}/${packageName}/${packageName}_${version}-1_${arch}.deb";
-
-  # Untrusted mirrors, don't try to update from them!
-  debMirrors = [
-    "http://95.31.35.30/chrome/pool/main/g"
-    "http://mirror.pcbeta.com/google/chrome/deb/pool/main/g"
-    "http://repo.fdzh.org/chrome/deb/pool/main/g"
-  ];
-
-in {
-  getChannel = channel: let
-    chanAttrs = builtins.getAttr channel sources;
-  in {
-    inherit channel;
-    inherit (chanAttrs) version;
-
-    main = fetchurl {
-      url = mkVerURL chanAttrs.version;
-      inherit (chanAttrs) sha256;
-    };
-
-    binary = fetchurl (let
-      mkUrls = arch: let
-        mkURLForMirror = getDebURL channel chanAttrs.version arch;
-      in map mkURLForMirror ([ debURL ] ++ debMirrors);
-    in if stdenv.is64bit && chanAttrs ? sha256bin64 then {
-      urls = mkUrls "amd64";
-      sha256 = chanAttrs.sha256bin64;
-    } else if !stdenv.is64bit && chanAttrs ? sha256bin32 then {
-      urls = mkUrls "i386";
-      sha256 = chanAttrs.sha256bin32;
-    } else throw "No Chrome plugins are available for your architecture.");
-  };
-
-  update = let
-    csv2nix = name: src: import (runCommand "${name}.nix" {
-      src = builtins.fetchurl src;
-    } ''
-      esc() { echo "\"$(echo "$1" | sed -e 's/"\\$/\\&/')\""; } # ohai emacs "
-      IFS=, read -r -a headings <<< "$(head -n1 "$src")"
-      echo "[" > "$out"
-      tail -n +2 "$src" | while IFS=, read -r -a line; do
-        echo "  {"
-        for idx in "''${!headings[@]}"; do
-          echo "    $(esc "''${headings[idx]}") = $(esc ''${line[$idx]});"
-        done
-        echo "  }"
-      done >> "$out"
-      echo "]" >> "$out"
-    '');
-
-    channels = lib.fold lib.recursiveUpdate {} (map (attrs: {
-      ${attrs.os}.${attrs.channel} = attrs // {
-        history = let
-          drvName = "omahaproxy-${attrs.os}.${attrs.channel}-info";
-          history = csv2nix drvName "http://omahaproxy.appspot.com/history";
-          cond = h: attrs.os == h.os && attrs.channel == h.channel
-                 && lib.versionOlder h.version attrs.current_version;
-          # Note that this is a *reverse* sort!
-          sorter = a: b: lib.versionOlder b.version a.version;
-          sorted = builtins.sort sorter (lib.filter cond history);
-        in map (lib.flip removeAttrs ["os" "channel"]) sorted;
-        version = attrs.current_version;
-      };
-    }) (csv2nix "omahaproxy-info" "http://omahaproxy.appspot.com/all?csv=1"));
-
-    /*
-      XXX: This is essentially the same as:
-
-        builtins.tryEval (builtins.fetchurl url)
-
-      ... except that tryEval on fetchurl isn't working and doesn't catch
-      errors for fetchurl, so we go for a different approach.
-
-      We only have fixed-output derivations that can have networking access, so
-      we abuse SHA1 and its weaknesses to forge a fixed-output derivation which
-      is not so fixed, because it emits different contents that have the same
-      SHA1 hash.
-
-      Using this method, we can distinguish whether the URL is available or
-      whether it's not based on the actual content.
-
-      So let's use tryEval as soon as it's working with fetchurl in Nix.
-    */
-    tryFetch = url: let
-      # SHA1 hash collisions from https://shattered.io/static/shattered.pdf:
-      collisions = runCommand "sha1-collisions" {
-        outputs = [ "out" "good" "bad" ];
-        base64 = ''
-          QlpoOTFBWSZTWbL5V5MABl///////9Pv///v////+/////HDdK739/677r+W3/75rUNr4
-          Aa/AAAAAAACgEVTRtQDQAaA0AAyGmjTQGmgAAANGgAaMIAYgGgAABo0AAAAAADQAIAGQ0
-          MgDIGmjQA0DRk0AaMQ0DQAGIANGgAAGRoNGQMRpo0GIGgBoGQAAIAGQ0MgDIGmjQA0DRk
-          0AaMQ0DQAGIANGgAAGRoNGQMRpo0GIGgBoGQAAIAGQ0MgDIGmjQA0DRk0AaMQ0DQAGIAN
-          GgAAGRoNGQMRpo0GIGgBoGQAAIAGQ0MgDIGmjQA0DRk0AaMQ0DQAGIANGgAAGRoNGQMRp
-          o0GIGgBoGQAABVTUExEZATTICnkxNR+p6E09JppoyamjGhkm0ammIyaekbUejU9JiGnqZ
-          qaaDxJ6m0JkZMQ2oaYmJ6gxqMyE2TUzJqfItligtJQJfYbl9Zy9QjQuB5mHQRdSSXCCTH
-          MgmSDYmdOoOmLTBJWiCpOhMQYpQlOYpJjn+wQUJSTCEpOMekaFaaNB6glCC0hKEJdHr6B
-          mUIHeph7YxS8WJYyGwgWnMTFJBDFSxSCCYljiEk7HZgJzJVDHJxMgY6tCEIIWgsKSlSZ0
-          S8GckoIIF+551Ro4RCw260VCEpWJSlpWx/PMrLyVoyhWMAneDilBcUIeZ1j6NCkus0qUC
-          Wnahhk5KT4GpWMh3vm2nJWjTL9Qg+84iExBJhNKpbV9tvEN265t3fu/TKkt4rXFTsV+Nc
-          upJXhOhOhJMQQktrqt4K8mSh9M2DAO2X7uXGVL9YQxUtzQmS7uBndL7M6R7vX869VxqPu
-          renSuHYNq1yTXOfNWLwgvKlRlFYqLCs6OChDp0HuTzCWscmGudLyqUuwVGG75nmyZhKpJ
-          yOE/pOZyHyrZxGM51DYIN+Jc8yVJgAykxKCEtW55MlfudLg3KG6TtozalunXrroSxUpVL
-          StWrWLFihMnVpkyZOrQnUrE6xq1CGtJlbAb5ShMbV1CZgqlKC0wCFCpMmUKSEkvFLaZC8
-          wHOCVAlvzaJQ/T+XLb5Dh5TNM67p6KZ4e4ZSGyVENx2O27LzrTIteAreTkMZpW95GS0CE
-          JYhMc4nToTJ0wQhKEyddaLb/rTqmgJSlkpnALxMhlNmuKEpkEkqhKUoEq3SoKUpIQcDgW
-          lC0rYahMmLuPQ0fHqZaF4v2W8IoJ2EhMhYmSw7qql27WJS+G4rUplToFi2rSv0NSrVvDU
-          pltQ8Lv6F8pXyxmFBSxiLSxglNC4uvXVKmAtusXy4YXGX1ixedEvXF1aX6t8adYnYCpC6
-          rW1ZzdZYlCCxKEv8vpbqdSsXl8v1jCQv0KEPxPTa/5rtWSF1dSgg4z4KjfIMNtgwWoWLE
-          sRhKxsSA9ji7V5LRPwtumeQ8V57UtFSPIUmtQdOQfseI2Ly1DMtk4Jl8n927w34zrWG6P
-          i4jzC82js/46Rt2IZoadWxOtMInS2xYmcu8mOw9PLYxQ4bdfFw3ZPf/g2pzSwZDhGrZAl
-          9lqky0W+yeanadC037xk496t0Dq3ctfmqmjgie8ln9k6Q0K1krb3dK9el4Xsu44LpGcen
-          r2eQZ1s1IhOhnE56WnXf0BLWn9Xz15fMkzi4kpVxiTKGEpffErEEMvEeMZhUl6yD1SdeJ
-          YbxzGNM3ak2TAaglLZlDCVnoM6wV5DRrycwF8Zh/fRsdmhkMfAO1duwknrsFwrzePWeMw
-          l107DWzymxdQwiSXx/lncnn75jL9mUzw2bUDqj20LTgtawxK2SlQg1CCZDQMgSpEqLjRM
-          sykM9zbSIUqil0zNk7Nu+b5J0DKZlhl9CtpGKgX5uyp0idoJ3we9bSrY7PupnUL5eWiDp
-          V5mmnNUhOnYi8xyClkLbNmAXyoWk7GaVrM2umkbpqHDzDymiKjetgzTocWNsJ2E0zPcfh
-          t46J4ipaXGCfF7fuO0a70c82bvqo3HceIcRlshgu73seO8BqlLIap2z5jTOY+T2ucCnBt
-          Atva3aHdchJg9AJ5YdKHz7LoA3VKmeqxAlFyEnQLBxB2PAhAZ8KvmuR6ELXws1Qr13Nd1
-          i4nsp189jqvaNzt+0nEnIaniuP1+/UOZdyfoZh57ku8sYHKdvfW/jYSUks+0rK+qtte+p
-          y8jWL9cOJ0fV8rrH/t+85/p1z2N67p/ZsZ3JmdyliL7lrNxZUlx0MVIl6PxXOUuGOeArW
-          3vuEvJ2beoh7SGyZKHKbR2bBWO1d49JDIcVM6lQtu9UO8ec8pOnXmkcponBPLNM2CwZ9k
-          NC/4ct6rQkPkQHMcV/8XckU4UJCy+VeTA==
-        '';
-      } ''
-        echo "$base64" | base64 -d | tar xj
-        mv good.pdf "$good"
-        mv bad.pdf "$bad"
-        touch "$out"
-      '';
-
-      cacheVal = let
-        urlHash = builtins.hashString "sha256" url;
-        timeSlice = builtins.currentTime / 600;
-      in "${urlHash}-${toString timeSlice}";
-
-    in {
-      success = import (runCommand "check-success" {
-        result = stdenv.mkDerivation {
-          name = "tryfetch-${cacheVal}";
-          inherit url;
-
-          outputHash = "d00bbe65d80f6d53d5c15da7c6b4f0a655c5a86a";
-          outputHashMode = "flat";
-          outputHashAlgo = "sha1";
-
-          nativeBuildInputs = [ curl ];
-          preferLocalBuild = true;
-
-          inherit (collisions) good bad;
-
-          buildCommand = ''
-            if SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt" \
-               curl -s -L -f -I "$url" > /dev/null; then
-              cp "$good" "$out"
-            else
-              cp "$bad" "$out"
-            fi
-          '';
-
-          impureEnvVars = lib.fetchers.proxyImpureEnvVars;
-        };
-        inherit (collisions) good;
-      } ''
-        if cmp -s "$result" "$good"; then
-          echo true > "$out"
-        else
-          echo false > "$out"
-        fi
-      '');
-      value = builtins.fetchurl url;
-    };
-
-    fetchLatest = channel: let
-      result = tryFetch (mkVerURL channel.version);
-    in if result.success then result.value else fetchLatest (channel // {
-      version = if channel.history != []
-                then (lib.head channel.history).version
-                else throw "Unfortunately there's no older version than " +
-                           "${channel.version} available for channel " +
-                           "${channel.channel} on ${channel.os}.";
-      history = lib.tail channel.history;
-    });
-
-    getHash = path: import (runCommand "gethash.nix" {
-      inherit path;
-      nativeBuildInputs = [ nix ];
-    } ''
-      sha256="$(nix-hash --flat --base32 --type sha256 "$path")"
-      echo "\"$sha256\"" > "$out"
-    '');
-
-    isLatest = channel: version: let
-      ourVersion = sources.${channel}.version or null;
-    in if ourVersion == null then false
-       else lib.versionOlder version sources.${channel}.version
-         || version == sources.${channel}.version;
-
-    # We only support GNU/Linux right now.
-    linuxChannels = let
-      genLatest = channelName: channel: let
-        newUpstream = {
-          inherit (channel) version;
-          sha256 = getHash (fetchLatest channel);
-        };
-        keepOld = let
-          oldChannel = sources.${channelName};
-        in {
-          inherit (oldChannel) version sha256;
-        } // lib.optionalAttrs (oldChannel ? sha256bin32) {
-          inherit (oldChannel) sha256bin32;
-        } // lib.optionalAttrs (oldChannel ? sha256bin64) {
-          inherit (oldChannel) sha256bin64;
-        };
-      in if isLatest channelName channel.version then keepOld else newUpstream;
-    in lib.mapAttrs genLatest channels.linux;
-
-    getLinuxFlash = channelName: channel: let
-      inherit (channel) version;
-      fetchArch = arch: tryFetch (getDebURL channelName version arch debURL);
-      packages = lib.genAttrs ["i386" "amd64"] fetchArch;
-      isNew = arch: attr: !(builtins.hasAttr attr channel)
-                       && packages.${arch}.success;
-    in channel // lib.optionalAttrs (isNew "i386" "sha256bin32") {
-      sha256bin32 = getHash (packages.i386.value);
-    } // lib.optionalAttrs (isNew "amd64" "sha256bin64") {
-      sha256bin64 = getHash (packages.amd64.value);
-    };
-
-    newChannels = lib.mapAttrs getLinuxFlash linuxChannels;
-
-    dumpAttrs = indent: attrs: let
-      mkVal = val: if lib.isAttrs val then dumpAttrs (indent + 1) val
-                   else "\"${lib.escape ["$" "\\" "\""] (toString val)}\"";
-      mkIndent = level: lib.concatStrings (builtins.genList (_: "  ") level);
-      mkAttr = key: val: "${mkIndent (indent + 1)}${key} = ${mkVal val};\n";
-      attrLines = lib.mapAttrsToList mkAttr attrs;
-    in "{\n" + (lib.concatStrings attrLines) + (mkIndent indent) + "}";
-  in writeText "chromium-new-upstream-info.nix" ''
-    # This file is autogenerated from update.sh in the same directory.
-    ${dumpAttrs 0 newChannels}
-  '';
-}
diff --git a/pkgs/applications/networking/browsers/chromium/update.py b/pkgs/applications/networking/browsers/chromium/update.py
new file mode 100755
index 0000000000000..0a0d512004b54
--- /dev/null
+++ b/pkgs/applications/networking/browsers/chromium/update.py
@@ -0,0 +1,63 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i python -p python3 nix
+
+import csv
+import json
+import subprocess
+from codecs import iterdecode
+from os.path import abspath, dirname
+from sys import stderr
+from urllib.request import urlopen
+
+HISTORY_URL = 'https://omahaproxy.appspot.com/history?os=linux'
+DEB_URL = 'https://dl.google.com/linux/chrome/deb/pool/main/g'
+BUCKET_URL = 'https://commondatastorage.googleapis.com/chromium-browser-official'
+
+JSON_PATH = dirname(abspath(__file__)) + '/upstream-info.json'
+
+def load_json(path):
+    with open(path, 'r') as f:
+        return json.load(f)
+
+def nix_prefetch_url(url, algo='sha256'):
+    print(f'nix-prefetch-url {url}')
+    out = subprocess.check_output(['nix-prefetch-url', '--type', algo, url])
+    return out.decode('utf-8').rstrip()
+
+channels = {}
+last_channels = load_json(JSON_PATH)
+
+print(f'GET {HISTORY_URL}', file=stderr)
+with urlopen(HISTORY_URL) as resp:
+    builds = csv.DictReader(iterdecode(resp, 'utf-8'))
+    for build in builds:
+        channel_name = build['channel']
+
+        # If we've already found a newer build for this channel, we're
+        # no longer interested in it.
+        if channel_name in channels:
+            continue
+
+        # If we're back at the last build we used, we don't need to
+        # keep going -- there's no new version available, and we can
+        # just reuse the info from last time.
+        if build['version'] == last_channels[channel_name]['version']:
+            channels[channel_name] = last_channels[channel_name]
+            continue
+
+        channel = {'version': build['version']}
+        suffix = 'unstable' if channel_name == 'dev' else channel_name
+
+        try:
+            channel['sha256'] = nix_prefetch_url(f'{BUCKET_URL}/chromium-{build["version"]}.tar.xz')
+            channel['sha256bin64'] = nix_prefetch_url(f'{DEB_URL}/google-chrome-{suffix}/google-chrome-{suffix}_{build["version"]}-1_amd64.deb')
+        except subprocess.CalledProcessError:
+            # This build isn't actually available yet.  Continue to
+            # the next one.
+            continue
+
+        channels[channel_name] = channel
+
+with open(JSON_PATH, 'w') as out:
+    json.dump(channels, out, indent=2)
+    out.write('\n')
diff --git a/pkgs/applications/networking/browsers/chromium/update.sh b/pkgs/applications/networking/browsers/chromium/update.sh
deleted file mode 100755
index ea67a62c107a2..0000000000000
--- a/pkgs/applications/networking/browsers/chromium/update.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh -e
-cd "$(dirname "$0")"
-sp="$(nix-build --builders "" -Q --no-out-link update.nix -A update)"
-cat "$sp" > upstream-info.nix
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json
new file mode 100644
index 0000000000000..6365a4eafd62e
--- /dev/null
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json
@@ -0,0 +1,17 @@
+{
+  "beta": {
+    "version": "86.0.4240.22",
+    "sha256": "1qxacdwknrjwfp44mnqmq24n8sw4yaf0d1qnz39km2m4apc39svp",
+    "sha256bin64": "05qdzkq9daqjliqj7zxsa03903rv3kwaj627192ls6m33bacz9gp"
+  },
+  "dev": {
+    "version": "86.0.4240.8",
+    "sha256": "1x0kbc7xp6599jyn461mbmchbixivnxm0jsyfq0snhxz8x81z55q",
+    "sha256bin64": "0y7drzxxfn0vmfq0m426l8xvkgyajb8pjydi0d7kzk6i92sjf45j"
+  },
+  "stable": {
+    "version": "85.0.4183.83",
+    "sha256": "0fz781bxx1rnjwfix2dgzq5w1lg3x6a9vd9k49gh4z5q092slr10",
+    "sha256bin64": "0fa3la2nvqr0w40j2qkbwnh36924fsp2ajsla6aky6hz08mq2q1g"
+  }
+}
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/pkgs/applications/networking/browsers/chromium/upstream-info.nix
deleted file mode 100644
index 5639ff2b67915..0000000000000
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-# This file is autogenerated from update.sh in the same directory.
-{
-  beta = {
-    sha256 = "0fz781bxx1rnjwfix2dgzq5w1lg3x6a9vd9k49gh4z5q092slr10";
-    sha256bin64 = "12nm7h70pbzwc5rc7kcwfwgjs0h8cdnys5wlfjkbq6irwb6m1lm6";
-    version = "85.0.4183.83";
-  };
-  dev = {
-    sha256 = "16yj47x580i8p88m88f5bcs85qmrfwmyp9na7yrnk0lnq06wbj4i";
-    sha256bin64 = "0i81xcfdn65j2i4vfx52v4a9vlar8y9ykqdhshymqfz4qqqk37d1";
-    version = "86.0.4238.0";
-  };
-  stable = {
-    sha256 = "0fz781bxx1rnjwfix2dgzq5w1lg3x6a9vd9k49gh4z5q092slr10";
-    sha256bin64 = "0fa3la2nvqr0w40j2qkbwnh36924fsp2ajsla6aky6hz08mq2q1g";
-    version = "85.0.4183.83";
-  };
-}
diff --git a/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
index 10d9e7b2a22e6..7548eb94fa6dc 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
@@ -1,965 +1,965 @@
 {
-  version = "80.0b8";
+  version = "81.0b4";
   sources = [
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ach/firefox-80.0b8.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";
-      sha256 = "0dfa5e6840276f2bda03babdbf5273f7d5549d7610b3cf00983fae5a1e8e4ad6";
+      sha256 = "4b133dd14e8ce1b934e482c4f7f7b5ca4b58751181bed89f6573ba5994ebe644";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/af/firefox-80.0b8.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";
-      sha256 = "ab51a6e8eb2fa5bd828da95600e7eeffa19c96fa8471299d832cc8024c5da998";
+      sha256 = "8e50a0845eb058ee853fe40b13c88d764e721f7f8ac2eb54695049ab2a66e3e9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/an/firefox-80.0b8.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";
-      sha256 = "5b7f60f06964dc13d0dff9c603d00a8bdaf86b1c0871fc60b6b074cd535f5dd4";
+      sha256 = "3edf8e157cac424b1cbfff019240877e7b7c3bf5ed1b576580569c155c5dd660";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ar/firefox-80.0b8.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";
-      sha256 = "8be8cc6f547475cccae9ff6675689334c5baa10025208035bbed4a186ff3d61e";
+      sha256 = "b2167ff357963e3295eed2ed423a1c3bcf62d645329b8f4cf817ad3c0e101c97";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ast/firefox-80.0b8.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";
-      sha256 = "2efd5fcf0e69f155ae0aadb28534e141224d16c64706e05c1b72f6ef44fed6fc";
+      sha256 = "805a87a99a417ff4b762c01a9a2b88c7963f53a04fc19b42015db304b15f4bbe";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/az/firefox-80.0b8.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";
-      sha256 = "9ab8f6b96db687367bf8f770ba2f72f19ee7f438a949373830d03eca0dca22bc";
+      sha256 = "79c61c9515a683731649bcb5d36b26b95dd56165765e5a952339910310c9d259";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/be/firefox-80.0b8.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";
-      sha256 = "b1b3e44c5733e197c53f013bfbe82eb7f6a300278f5b170338fcd56670445bd6";
+      sha256 = "318fece7d1ad734f6a19faa7003e060b1254b31bf62e59580c70a64c4a167ec6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/bg/firefox-80.0b8.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";
-      sha256 = "e659b463c9a152e635dbc36ab972a64e3b6c28987ba5e5437672e68f24f6dcb7";
+      sha256 = "55616606306dbd0933240d718fef8e83004fd65e4f53dd18f1601f09d0b94e92";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/bn/firefox-80.0b8.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";
-      sha256 = "f2e4e6e80747754fa449105cc870b87fbae387b64d044f8dd2fef743e34c749f";
+      sha256 = "c38fdef89f6aee7bf03362d2edfe4dcc665d540b1e1dc1dad8c53db20d70087d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/br/firefox-80.0b8.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";
-      sha256 = "90749e4392f518e5636cc687946e066545eaa26badc23c46e6b63da6ce1cdd59";
+      sha256 = "c5ac1c8e9dc2f4c5a1a2b6e33bf699a823a9422bce46922bc36222700a29d2e5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/bs/firefox-80.0b8.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";
-      sha256 = "929758b30ab1ff8c034da26be688541ea1ba9e99e7206b981f11a7209ff6d771";
+      sha256 = "a18718ef7f467ed87c76816fb6797165db3e06bc166c5e88b526c9f2ce5c1d19";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ca-valencia/firefox-80.0b8.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";
-      sha256 = "1e60124bf4946605bd100945748302ba61d406b44563e9c51f58d781226d4a07";
+      sha256 = "fcfccd0714c965801ce468f6817bf37eb074064e6e0b616c81be7218a6b632fc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ca/firefox-80.0b8.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";
-      sha256 = "6c16d41ae0748931de875f756b0a3b09268bc96c6ebec54a56e6fe8672879c95";
+      sha256 = "5f08a2b2d357d5a6828865913b9e28fe90bda7a8ce17a0ea60effb25b8441b7a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/cak/firefox-80.0b8.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";
-      sha256 = "f3f6877e2d8132737b978d073b54171ad6d30c227f50e1bb2dd2e1d15e2201db";
+      sha256 = "db41156b75e1148527c51b915e3d9367d1c36a8d24a52132d1cc9cfe63bd9db6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/cs/firefox-80.0b8.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";
-      sha256 = "0677a8fd1ad69a8bb2869942624ae0cf37dfc5e89bc0bfccc68b79b7b4382688";
+      sha256 = "d3287f28964581e63a3b1a5484e47e8ef33c136b39f13e07d6f3d555c27864cb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/cy/firefox-80.0b8.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";
-      sha256 = "c037ba4d4f757784923aedd914527e8fc079ab33384d84694b469af3e9eaf125";
+      sha256 = "f41fd34cf1cc72d5fc80113cdc9fae7f03f434e45e990e17a94dd68463464c49";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/da/firefox-80.0b8.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";
-      sha256 = "5c0b86cede27223a159a0052ea146f4f79a2cc95a9515d4da6bac598b1a792e7";
+      sha256 = "dbbf1611913315ac5294f400c727cd5afbc832efbea56bd839b77cd4d6a5b823";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/de/firefox-80.0b8.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";
-      sha256 = "e40a4752fb32a31689bcf546aa4867ead0da80207de3583bb2ed43b944a12f53";
+      sha256 = "1047799de5b42b5cb0827371872b7e85b93a4474bde9288da54a573841e156bd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/dsb/firefox-80.0b8.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";
-      sha256 = "d0e22abdfecbfbe2a25dbacf35e1bdaba716bfd2e09c0a4206c7260f405df15b";
+      sha256 = "602eaa32d32db35d6a6d07f1c0cc53eaa4e432b7ab81d1f23b47d3125ac98d24";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/el/firefox-80.0b8.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";
-      sha256 = "6a4206278f3aa89aa0a49b41df8372c4ae10a6afdd107210a7a1d8a240d800f8";
+      sha256 = "8a460f9542e213b1605265c6497742e7d55213ac91b42d00a15b3123b47754ef";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/en-CA/firefox-80.0b8.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";
-      sha256 = "3b767fdf9d08e08526f72bb8bf14a7577370003f29734a39a61cd31d65491f80";
+      sha256 = "9bcc44ca3f4192a2a7a001f27db6884dd481551663b6d0c348ed0b9281dabe87";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/en-GB/firefox-80.0b8.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";
-      sha256 = "29108de728a833a8f6df04e2e4aaa21aadf3a572534844f4a44ee4ae0b78eb2d";
+      sha256 = "9d241d56362ec52619ce02cdd2f11dc90c2e0f7c515c707ea56eca2e8f0eb306";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/en-US/firefox-80.0b8.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";
-      sha256 = "01b005fe37487f7bc9ed39aacd09c891755fea9adff44addacb708000deebd1d";
+      sha256 = "28972b08f8b3f2d19f5d50a2c9275fc459fc3e57df11c884149d1fdb9d99300b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/eo/firefox-80.0b8.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";
-      sha256 = "ca8f65b6bfb491ab66640ea2b02b234d2b68d268480532aafbba6fb6a190414f";
+      sha256 = "013caa4590462b4bc5dc09cb963cfd85cba4b5419111cdc87316574ca5691e80";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/es-AR/firefox-80.0b8.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";
-      sha256 = "19bf5b10da6afe691cd50530c57256b18c4059c48561c1c776e5e35a7a0db327";
+      sha256 = "d6970ccf4d58e2f1219cb0d43a8788084d0863f0f349ab3292e182fb0201e860";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/es-CL/firefox-80.0b8.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";
-      sha256 = "42e383a691ef11afe1ed5afc64a0e6fc7e87534826d71d169e060f10fb07cd1e";
+      sha256 = "76fb3c865b3efa1da1d34c8caa7b56b5b6d0af2cbbaeaef873fa96d2b8c93bb1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/es-ES/firefox-80.0b8.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";
-      sha256 = "7cb0aa8fbe6983bb68a583bd61d307d3b44a6a38f5b4c8cfcb1bd401bcd10421";
+      sha256 = "7b41a2b297df4f0f6d4f44e1eb0ea0cbf02454382d0994f119a77876c578c4b6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/es-MX/firefox-80.0b8.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";
-      sha256 = "e9485c3a290a0a240d3cb9d18ec6929645aee333a919b4aa09776da106d943f8";
+      sha256 = "733b90640a30df66700397ab0cc2045fcbc25af94ef9f36463a191228b511b77";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/et/firefox-80.0b8.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";
-      sha256 = "eb1a74b4e901b09cf287e59d1c8fcb500cf2f948ecd5098f3d928413ff219897";
+      sha256 = "027286d744b1d9f21157d8242445ccd7610a08d8d541d64635fc16549aac1b4d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/eu/firefox-80.0b8.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";
-      sha256 = "8daba1de73e594e3138ffc8bf58865fd4ece581a43337097691f2bec4f419fc6";
+      sha256 = "ff555da3aaf1abb2c384772b309fb4129dad57b9fd523fcabef5b2743d3063ce";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/fa/firefox-80.0b8.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";
-      sha256 = "f0cbaec0e1087ad8f55d24ba39d60fd91972189aa367d6b80a22de3f5b5ff821";
+      sha256 = "c99f9297568f93eda17058d96dfaf83e587907be9b5005e8f649f693662e4fb6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ff/firefox-80.0b8.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";
-      sha256 = "6b98dcb2d5493dc7084f626b6e8aa807d1b71d0d8bc1ad30f2ebd3c002bfde23";
+      sha256 = "91658b195a622afa3c6fde535391eff1aa6b70f4c0cccc5c55e56e6d66459435";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/fi/firefox-80.0b8.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";
-      sha256 = "4ebc56f8a38c32026380e02271cde2f651046d0b0fe4efadc48883fc2562fa50";
+      sha256 = "cbc70d2051c96813ab081251c339f6cacd29ff26bdd8174b35caf9905a874635";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/fr/firefox-80.0b8.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";
-      sha256 = "b6d4ca33e93968bc0efcb504db785f5dee55bed9834d90482ba5abf54ab97672";
+      sha256 = "51890621c8c3c0e40103a10e705adbc860937e5dbbb8a3984eb71a5cae3ed63b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/fy-NL/firefox-80.0b8.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";
-      sha256 = "438d72ed1e22da87cd0ec63fad41b5e355cbd8d2417627d74ded59940b6b1b26";
+      sha256 = "5c3a982a51951901732ec7684514be233fe1c44780531fb38f7205724c241387";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ga-IE/firefox-80.0b8.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";
-      sha256 = "6d3b4a427fc80b4f7e69f94a90d5d2fb9ebd366d224136316de8e2b03c06ddb7";
+      sha256 = "04b5d338c7557f12fc6fb2206d444a8a00be6814b1ca26de4923449a4425b57d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/gd/firefox-80.0b8.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";
-      sha256 = "ee54acaee8f5b2c0033fc3bf27cb6c90a6d1849c4eebb427e2efeb3a7fe44c0b";
+      sha256 = "6bc0de0ac627203b1ba035f7a7ba7dd19bd82a7730c526c217150cc5de668fd4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/gl/firefox-80.0b8.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";
-      sha256 = "bce9bfb74c965ec6d2e346b86910c73dfc242be98473ba52f7d0cc34f14b42f8";
+      sha256 = "37522d032422af770e37a93e33de6c0b8b79b2d22c6e71f32107cc8808de4d35";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/gn/firefox-80.0b8.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";
-      sha256 = "a98fce4baf9e0424317231aac5ffc0b3574c2ec6feddd9e538faab59bf9ab432";
+      sha256 = "f761db975c72d7e419601988c0674acc7fe17227d5569cac85a1fe2d91f5141c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/gu-IN/firefox-80.0b8.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";
-      sha256 = "35161db5c7fb962ad5c60118d422250c2b6a776ef13d116bd23b31fa5c312a5b";
+      sha256 = "8565c1965e09060ddc5b253fa126998f827d17dd58692ec4d17d194d29a464a5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/he/firefox-80.0b8.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";
-      sha256 = "66fc1b065881a4dea1ac8d82bbd64bb6aec223c1419663b7a50752cd1700781d";
+      sha256 = "c3cc5911103ce955f89c5104ceb1ee50f7c047e4ec761681c8693b643f5d91a8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/hi-IN/firefox-80.0b8.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";
-      sha256 = "b1ce60f26dc79eb360e185805b98b2d1197a2e45c26cd24bd3c82edcfad42a5c";
+      sha256 = "95463325675e56e700eaffb6e6690f4b398adb5cb77aaa34b87e16cb142f3533";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/hr/firefox-80.0b8.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";
-      sha256 = "712ce7b7e90c4b424a4ed46385a34905b7c4f59e6d07ced9e5e94a6108a3c206";
+      sha256 = "6332ae812507f79baaed24e4fb79fc6c383418c4c9d41c0f3dbebc2fb72efef5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/hsb/firefox-80.0b8.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";
-      sha256 = "43fcc61024fa21216e7e05dd0fc46410b2dc32eaa87215014f9f3e0d83ebf37d";
+      sha256 = "b18a7d31d3ce7373bcbd6bb7ff56adc023c58097126781d5f915828be8fef92b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/hu/firefox-80.0b8.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";
-      sha256 = "0b73ab77e5e0f4ca34d0eed7fd734f30c1484a930751d5f2704e09e94179ed88";
+      sha256 = "b1e4c6c9c21b2593f3fa111820a7e6a2e2e72e8b3065738f6a50df6ef4b7f18b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/hy-AM/firefox-80.0b8.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";
-      sha256 = "bb52a07de2b0c1fccdc0910c0d861345822c9708f9f66471225a9e148f159cd4";
+      sha256 = "562f4d9e094b688cb53860834e425997e65b78222724c48ff4ddd71ccca264fe";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ia/firefox-80.0b8.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";
-      sha256 = "50cfffd20294f00e5194093b6114cfd1529e5f383f389565be7998c02a8802ae";
+      sha256 = "87299a8aeee6da57666a06cc2d4f479b0c74c220e2b22ddf5254a052f11edacd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/id/firefox-80.0b8.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";
-      sha256 = "ed6473750ffa1006d0ed8a502809b56573681c85656f12cbc6fdfaf50506c15e";
+      sha256 = "0cf1bae8def307d08e4c24fb44f7cfbebf150f1edfde2a3c0855a69775f26539";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/is/firefox-80.0b8.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";
-      sha256 = "1467ae111e51a4cddbf3611503e35da489fa6f506bedf441989fd093a1b507cf";
+      sha256 = "6140d270e99173d995e42d32c0b696a51f72b1c6baa746549bdbbe7e2a08a811";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/it/firefox-80.0b8.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";
-      sha256 = "b4c96a1e12d8c6e16b7e85c0080ff0c1e50cf78d0762907af075a9e272ea9ed1";
+      sha256 = "3583cf0223528929141879c085278354927ced41d71321fe8d832ebd356d4614";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ja/firefox-80.0b8.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";
-      sha256 = "f79a5b441d4f6d10c9022e5b872e5e607065a6f8932b1f1ac4a32f586848a676";
+      sha256 = "4a1bcf87b3cd09d7c3379bd922ede7a3c6c4a19bf11596e858634b408df95cad";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ka/firefox-80.0b8.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";
-      sha256 = "4e1e846659d18470e098dd9244278de6343bdb2d076927a46ae154f7b19b7843";
+      sha256 = "320567daf4e4bb12c7209aff34d98efdbb2dead9b34f23d4a2181d2cdddeed71";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/kab/firefox-80.0b8.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";
-      sha256 = "d538a9b1b4c439bb2f1c57cb076b9f6f5be5ad673ef7f4e468031cb8f9f83d86";
+      sha256 = "5b9d60703b494a4eb5956e59bc2d6893bc70e8b890d0c940f25d25b605000c89";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/kk/firefox-80.0b8.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";
-      sha256 = "3aad1bffa285439350fd1c3fb09450e1d27f51a011383106b5341f75450884a3";
+      sha256 = "45580e0c3cbb265f718a69ac9de7220d3d89e52e3b8a5cfceb7363c20e63c83e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/km/firefox-80.0b8.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";
-      sha256 = "2d59a3a69a96e793efa5257fd9ba903fbcaefef99267f3f0921c3ef073a12f8e";
+      sha256 = "24b4879f22829a2a5d72219cba2c5658bf7c7e73ffdc9640f6e897ec613733c7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/kn/firefox-80.0b8.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";
-      sha256 = "804f85a1d5e8f5acd561aa8ae91e1100de2e62ae270d742f0b16111dab20f94f";
+      sha256 = "905ed3fa762c73c5ba677b8ca5b620294cb1ad36dea2ac53fdfca5a739c0c0e6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ko/firefox-80.0b8.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";
-      sha256 = "a09382d10e2114f02848e7deb8c770599ff8f84e18a5c0253f4884b7b7174233";
+      sha256 = "a6a63ca4106ee9c710331ea50099e2a50842465095d38ea55a63dcb3ee3d80ad";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/lij/firefox-80.0b8.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";
-      sha256 = "b088949b9d87986b2ff1fe4020a59faed22b0c205a432ab29b862d07bda0dc42";
+      sha256 = "b6fa42dc9bc68d4b71ae93eebfb1a19416f0cdd06d20fb344c0c0347aa2d4862";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/lt/firefox-80.0b8.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";
-      sha256 = "8dd0b88ab0d16dcdf218b58e9f2fe8d8311d826461de8a4c94c9cfdabc8bf905";
+      sha256 = "c70f6e7c20e252fdef6bf136c99095ebc27672719594df302e58be801a3f06d3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/lv/firefox-80.0b8.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";
-      sha256 = "bf289b7115d3114a59e92a3c63cbaf98bdb3f3fd1cc03a9cd5976a4834ef147e";
+      sha256 = "c64d561be20fc8f0e7507a0b1dc2e5d79af407531a37cc7da3fd880789899fdb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/mk/firefox-80.0b8.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";
-      sha256 = "cd9b7abe6c53a221d88c5f49fee164d069c21d956285ad2d0fe06e7012b72870";
+      sha256 = "aa38b13c6bc5288ab491f5ccee3a881474b1f42f1bd959435035782d1c39f407";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/mr/firefox-80.0b8.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";
-      sha256 = "370d8540a678b356a4f373a81e4807170b3599db6472633b34c768070c77217a";
+      sha256 = "e56eea60ca1cd447e30cccc82ce7a4797fa23e9bb4871a5e20e05d44ac35f720";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ms/firefox-80.0b8.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";
-      sha256 = "f141f3a22d6b5914f8cebbef0d2e124fc50833ca86bb62dd2a01d957ced6c099";
+      sha256 = "9d8445e2bda6a8cc8714a0eaf82e1b9ec03fbd94042c3557f07d9c8b25bc4b6f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/my/firefox-80.0b8.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";
-      sha256 = "ac62b25be480b30ee2c71371a6a702c37b58e537a4c4781b92e4f0b74c11cace";
+      sha256 = "4a7527e5e3e6ea0181cc8b9a2f206bbe162a4e1867faa75b4af261f08e89ae0d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/nb-NO/firefox-80.0b8.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";
-      sha256 = "c3364a0364176839b97d08294ec7291fa13d212edb806738392796218b7a7080";
+      sha256 = "c2ae9f5fb235541cc69cc3c4307dd4b7de51a9f4b6e038ef3091a773edec6c5a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ne-NP/firefox-80.0b8.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";
-      sha256 = "75d005443c28be517828d07be438b8c980d6885b4dacf42eba58573be4291b47";
+      sha256 = "05acc175b06ab7f5861a3a7e58e9a92c40e0660224426fc8225fba6c25888726";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/nl/firefox-80.0b8.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";
-      sha256 = "cebae8c9c06bba81194c7126f115ffca44ae020af33b0de8e201ba930f4649f2";
+      sha256 = "640be4e631343c9f2a55c24a4d5c63908627e9ab2d39a5346d1842d8e4a57799";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/nn-NO/firefox-80.0b8.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";
-      sha256 = "27607aad3a1d5ac50f159289cdb92e71d882b77ec9d2d320b470dfba799295d4";
+      sha256 = "46a898f41e5c3c9853b05fda8f44be01b2fd5a7fe3dad281c21588c2deaaedce";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/oc/firefox-80.0b8.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";
-      sha256 = "634372a5d704c890d464c7c3dceb365689f260feeb9ee273e97d32d8b8c9a102";
+      sha256 = "7481c8bad2e905a033f09ec4c20f8d4b184a0f90fce1c10648c4fc57a7a5f301";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/pa-IN/firefox-80.0b8.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";
-      sha256 = "16a165ec3517839d07d2177cd3e88a61f063ad7341095a2c70baaa5de1f7a2b5";
+      sha256 = "a460ed0241c569e1ac62727b17f8c8d0d4091e794900e2e2be7d8d8e2b90ada4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/pl/firefox-80.0b8.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";
-      sha256 = "cceb8d8fc319344bf031c7d86ab5d19ddd059b67a7293a2bb785621b99cd98ad";
+      sha256 = "d82e300cc8be61ddc2aa66bd4d4ec35cd18e47603bd19530cf48728c5fe67a5c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/pt-BR/firefox-80.0b8.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";
-      sha256 = "5be4bd15fdfd7b80a156740c57166eb31c77ff32f7e4c354d403606aa3049f8d";
+      sha256 = "1ee1560d4597adbd230fb0c556a4d8fa6984ee86bb731f7a5a936d660897eb99";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/pt-PT/firefox-80.0b8.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";
-      sha256 = "0dbb3aff49303f94539f82ad5d434351f5c2d1ffaf414b94f6b8ebf6535d656e";
+      sha256 = "be7e484f8c3f4d8b7b894a437b70b2f4b448e3a7df518ce6906295df9be7749d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/rm/firefox-80.0b8.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";
-      sha256 = "6880c4976bb118fa934d189d6af4cde582d64b909ba0671a4ae62e41bba4d95b";
+      sha256 = "819cf6a13d1690dee4e4255aa0c3f551411e2b7076f8ce3447bba47f07c806db";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ro/firefox-80.0b8.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";
-      sha256 = "4e5ee175921c2e919d2cf1eace39d52c5b89c6bf4ff9bfd9080d885d2a2f83a5";
+      sha256 = "2baa8154f358962983c7e0b26c4a7cc8cf97587b646884527fafe46f5d8d92ae";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ru/firefox-80.0b8.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";
-      sha256 = "d4be0a9f6d4dd99409a5099624429f951768585a955022c0efc0ca00140bebfb";
+      sha256 = "eaaa5338ff8ffbc9bad5321ee3eb7410feb9a26a06d3cc49707c0a048f4412e2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/si/firefox-80.0b8.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";
-      sha256 = "77460dd1207e11ef6227756c1fabca26777a98a5ae92bd38be2e86161c0efa12";
+      sha256 = "ce04721a96cea62eb7011c261f740e9e0ad6288ad9ff231538c3a6df86fb40ae";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/sk/firefox-80.0b8.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";
-      sha256 = "018602509df7c86cb001f007937dcd44694438fcfaa9002562995b8cec0d956f";
+      sha256 = "4b19fef341d64f94ad97a0bb8821693b00e4e7e04454156f92f0c82f4fee0005";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/sl/firefox-80.0b8.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";
-      sha256 = "f35c5a8d8b3eb56c9241a13d20708069073558caa02bf6ca55459150869ad114";
+      sha256 = "96192922f2012a3e6be634c7ed09017cebf9498c6fc2862336bfddbc4ea40840";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/son/firefox-80.0b8.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";
-      sha256 = "561d9939c3065e2a604d7b51535a5b4b8c0da7e3fc9274657ea88366c5924c74";
+      sha256 = "dfb144edeb3712bc0a3bf7e0675de80315c78bea7d7c6ee5f6047c077acbddf9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/sq/firefox-80.0b8.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";
-      sha256 = "1e38655b0ca5684decc1619a51b2bec39b8fdd7ed302513a8f8d14a3ddc7533a";
+      sha256 = "54dfab9e843dcde43cf188ae33922371fb90c1bfda53ef629df16576d6a0bac2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/sr/firefox-80.0b8.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";
-      sha256 = "ab879d65f27ebe393ee86c12b2eea256639d17f2dcfd8b4981072772a277d783";
+      sha256 = "f00b5184ccb47223858128aa26481867fb33aa50a914a8c807235c9a2bdf74fa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/sv-SE/firefox-80.0b8.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";
-      sha256 = "832ca5b1e0d41675066e7bcfd16563a9e03dd87bcd96d4592232ca26321af7e9";
+      sha256 = "d3884cf4a9ff23971badfb1a794c9489e0006e6851a0e501e290d8793054cc1e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ta/firefox-80.0b8.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";
-      sha256 = "ad9c6fcb91fc87aa11ac0912f049db9cf93f5e62797335a8a699b9ea8a7ede9f";
+      sha256 = "53584d2093feffd36a8a5249ee438b82d21af834a3c2c210944030c127b91cb2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/te/firefox-80.0b8.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";
-      sha256 = "37c7836f86fc5f4f48aefcf28330e1003687752d506d1050528a19b592bbd7d7";
+      sha256 = "63b65440720bc492fc95d080b191ba452cc87c8501b195e02df66ea4487fb902";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/th/firefox-80.0b8.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";
-      sha256 = "66cd4f8cd18f1c076b9d7538600459fe01998185cbf6899126841b16b3184321";
+      sha256 = "3b01fff09734f2206e4aee227ee7f0c13544fb1635f92a5221ee356117955446";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/tl/firefox-80.0b8.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";
-      sha256 = "d3f6102c2eeec1ecb1ba28884592c11e544e71d42ea2204de59ded1065f71f5f";
+      sha256 = "00f1c65baf63246a9ff44d98171a6ceec6e276488f5d6fbdf6f97760509b3bc7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/tr/firefox-80.0b8.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";
-      sha256 = "ea161412fd08571782f607c2aab116a1e1912caa3eae785db1129f617b389f11";
+      sha256 = "064d6c6036fae215fcb50a87863e6808bd1626084d9144a18f7ea1f4c7072093";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/trs/firefox-80.0b8.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";
-      sha256 = "a1824abd2c3f0e0ab3e1ad971137cc81c636af48865f7bdf7eb1029a7d08a16e";
+      sha256 = "73c892e0b0ab0bcdbcf6af88fdc8de335bcd5c56805675ba7b487ed3b620ed22";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/uk/firefox-80.0b8.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";
-      sha256 = "38afb4f054d9b577257509b17e32049e7c5fb50e47971fe52bc5ecc7d9b5806d";
+      sha256 = "8ac48524702e3f177e78fe97e4fcf528752a3ea0ef08e9212037dbd0febea53e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/ur/firefox-80.0b8.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";
-      sha256 = "8b9503d7b5452c43e7300c8a1b1c2ec9d2b0572aed78e7b8f05fc7c1ca883d07";
+      sha256 = "154dd642021769aa67a081080f33d87d736686b9e6e46cdfa2bd2201605bda26";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/uz/firefox-80.0b8.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";
-      sha256 = "789a4b08daadd64f6275bf267bc269ea92177902ae7a8b20dd14bdabcda49cde";
+      sha256 = "dd36910596d777f49de3dfe8e22f2838b76081cb259107047b9a98c3445c01eb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/vi/firefox-80.0b8.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";
-      sha256 = "10702553917f359954b204b65bfe311826cd44f6e81e7864c05a94d541dbd636";
+      sha256 = "3cef9f657f83bbfc68ab4a7c8ab84e1e937553cca98cfc30d3fbbec5c8be7907";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/xh/firefox-80.0b8.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";
-      sha256 = "d99ea01e9d8bb5efeea45e2c2e14da6618d1eaaa25f4f1a1facfec1ebdef2291";
+      sha256 = "30a98fa9218cbb07d792629e73a250659b321a3555eedca0a68e6ffb1d5191a7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/zh-CN/firefox-80.0b8.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";
-      sha256 = "5c7c3d76a7e4fea7ca207cbcea698eedc970a6fb727fad7c071e19325fd8631d";
+      sha256 = "bf15e819d84a3cd3825df2046bd9ffc139008f45fdbbdc64e04cec6a549af3e4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-x86_64/zh-TW/firefox-80.0b8.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";
-      sha256 = "9fbe3205110e83ff45fdc8f5c1659caeaef48c75db30a7014454d6338f1aceb7";
+      sha256 = "b194749cb05fe282f59f2f6621a5d04fba42406d7a3ea71242b667fe94a5a857";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ach/firefox-80.0b8.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";
-      sha256 = "a6a965e26d90ef0dc4b892d0d90f8b0b81ea7ced3ea1de3a70126c4095731fd8";
+      sha256 = "203ca1a13f76935935daf2124c662329df93af0e44b4bcee7334ff60092c8027";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/af/firefox-80.0b8.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";
-      sha256 = "649d3f77f16832b3a645f98616bdab4b788fad7d2ecc2d91558d369b439857be";
+      sha256 = "481d233552b0702a8b8092748b4c71da3c14c8df5e971c5b4662273cd8808022";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/an/firefox-80.0b8.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";
-      sha256 = "8b0e52a60af14565dbc514536a8808fc8aafefab56d765fb0ce42565f67ce1da";
+      sha256 = "a128b96a34eea409a8b5fa412e6a1a36bcc28f2fbed40ba9b474b9d86d23dbae";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ar/firefox-80.0b8.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";
-      sha256 = "522f35d947d56354d31ed106ba5fc6feda9ad0a4c29476c7497aec6cb2f6dd36";
+      sha256 = "a2ab8b556b6b477bb1aa287f630e7ae6aa902fd1b75968c01c2e2c76fe9cdf09";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ast/firefox-80.0b8.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";
-      sha256 = "03220451f980f89f3d9b23b53f90e852402fdbf54494ac99be7dc8932287d732";
+      sha256 = "193422cbafcaf5ed58f334a9d5b30f9a6181aa1cb649303df18626d9a3484088";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/az/firefox-80.0b8.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";
-      sha256 = "2d70285230ec8fd4f5f0e3232d08b5c669e5f71d4758d88947b82f907305df3e";
+      sha256 = "c206f5351f0ba474a5277e223514f032c7ff0b66029f570143f2d1d2b8ccf566";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/be/firefox-80.0b8.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";
-      sha256 = "02967f01fe3f8b225d60d462e4dd17cee0d031bd5171ec781d2938796b1174ed";
+      sha256 = "c3d7d04ea43230b6a6e4227b799d47348bc5c2ab6a60e93f4107efa6e7b34ef3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/bg/firefox-80.0b8.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";
-      sha256 = "9b5acf3d80fc9f7e8ea20d0df282d6ff1b605fcd46a5a329a9138734df501035";
+      sha256 = "08edf0db8aebd41f25366ef4302214b4ef00540be39406fc780eec288b0de324";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/bn/firefox-80.0b8.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";
-      sha256 = "e8a65769c738e9079d1aa9fda2ba74d21b96cbb76d4e348acba7ea1887d90d52";
+      sha256 = "a6d5dd5918d94e74ee8ffeb10c4caba65697ecdb81598b0bda815fa5d4830a78";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/br/firefox-80.0b8.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";
-      sha256 = "7c2a12900d2adfa765b4036e05875adbf59f70e4eaab33568799cae91d948b5a";
+      sha256 = "4e7ffbc380b6f8716399ee9d7b9ffc5fcdcae72f48b63ae4bcd2011a85efa0b1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/bs/firefox-80.0b8.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";
-      sha256 = "bd0e3d7b35cb845288f91eb1ae21d405f4dea2a6633897c30fcf56219982cd59";
+      sha256 = "ef36dae13dc3c943e5981a16d7ca61b4c6daa9a4873d2cd87022fbbcd01c8907";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ca-valencia/firefox-80.0b8.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";
-      sha256 = "a167e7db353adf008d28458aa24209175c29c1af92f21da7e999729a8ce7e5b9";
+      sha256 = "584a0370f79011dd2691461acd573133348a94cc1323d6fb99dea9dd6df1e155";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ca/firefox-80.0b8.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";
-      sha256 = "809cca0c4549e747944f043c96bab11e50a1ee6f4ddd6436ae94f85cb55063e8";
+      sha256 = "e280fe05f4e9320fd354407811ea8664d50de3810298e5eb4922b2d3e549ad11";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/cak/firefox-80.0b8.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";
-      sha256 = "8575e1572ff2872993aa7cc07ea1fe82d66830e80c779f742412128344afdc07";
+      sha256 = "3decca8b5b0d44db169abfa20f07b3c109bbea0a68ae3e44a35f97e3b989324b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/cs/firefox-80.0b8.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";
-      sha256 = "a4e5c1e08e138c077a8cd5a3f54e3a7a1ebaf7ac674d2658e1c4cb10b4a26a5a";
+      sha256 = "efccc2a43f961179f61eb7858b1e17ffd069bf7a26027faaad09f1b529ade52c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/cy/firefox-80.0b8.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";
-      sha256 = "149d1bb8bcedcf215095629e71e530a58e0dfb60a13e72d6346db1200f79a882";
+      sha256 = "dc8a1945d0230070e2bdf65b673a9aecc4868c9821f7f1e2f6e0d18bb98c912d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/da/firefox-80.0b8.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";
-      sha256 = "5eb27549c370ca89421a9d39bc5f33c948f85c48d67446b32281a54c50e12ea1";
+      sha256 = "058b800e2c9fc464f2a75fa48542269056a88916b9474a953f0d29a3e9041257";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/de/firefox-80.0b8.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";
-      sha256 = "d868edc9f9831a4f8f196f438a1235339592a05086c3d5e4ed25714df36421af";
+      sha256 = "7fbd0b27073b2c46829fc0d631ed11fd9a38a07d0ce474f6837ad1f5c2adff62";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/dsb/firefox-80.0b8.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";
-      sha256 = "ffc379cbd30f04c1f7c78f6991414b9214ca2c23280655690dea42c9a11992aa";
+      sha256 = "d0b6083098d416366040a877a92b163d469e2764af995c65fced49de23148624";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/el/firefox-80.0b8.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";
-      sha256 = "a87721a1a6da5674d0b9b754d142ad5c00fca4274cca7d4d1d5e15f1e21be389";
+      sha256 = "104258b0e47b661d7c75c72f5a0d7750399a101a9996a3f8837f0f524e9820db";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/en-CA/firefox-80.0b8.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";
-      sha256 = "dd04f6027f1cac7b5a34013ad4dfd3b0494f40f243665a80ae058887997ec299";
+      sha256 = "be6750a6946b7ef58869d0c9f0412febffcbe4955c823a573d02822f9a14266e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/en-GB/firefox-80.0b8.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";
-      sha256 = "d425ea90fa18877faac09cd7ba1b499cc92133580f720cf0481dd651f529582c";
+      sha256 = "e6d2c60c30aa90b6026cb85d6fc3a1d1b7266263980df652c9a1c158528cfc74";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/en-US/firefox-80.0b8.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";
-      sha256 = "777291dacd6ada8f3777c63e0264d36f3477b15e262d575e60b9efc4ac5de30d";
+      sha256 = "be534d43126a7fdd297f3431b579495b6f22832a358a0c793a23bea8adce1c9d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/eo/firefox-80.0b8.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";
-      sha256 = "df865cc147074318eb89c0ac4966b42aedd12aecb2a637bab18f6c231fafbb29";
+      sha256 = "6ffe84994fe7db178e59ea667495e95e6fba621cd0e4ec812d94dc3d98cf0a3e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/es-AR/firefox-80.0b8.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";
-      sha256 = "cbccc83c1e54a59716173e5f1a8e675ed1e3567a7a316e48b5bf83adbfe39597";
+      sha256 = "982874a48791db0bc98559de45bb8884da93ee0a0738664c73ae5a08b3b1a2ef";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/es-CL/firefox-80.0b8.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";
-      sha256 = "45b0243d594b5e8b4828746719b93a9388ab509aef54d03412292b76365f4fd2";
+      sha256 = "c21fcdeacdf570a9f8bba9c34c64a60776aa8a4de56b5f773b1d26eca6d65b70";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/es-ES/firefox-80.0b8.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";
-      sha256 = "8eb9961ed19594381a761385af10bb0acd0bddc95166737a766b20de03e12e0c";
+      sha256 = "bb34dda74d59c862ab24ad9ff0c5ad1e1fb5d73e6029b915f966d0913cf4506a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/es-MX/firefox-80.0b8.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";
-      sha256 = "d4cd439aa71e06af039922fa98dc33bd25f90c728faf09c6bfaab4bfefc6dc0f";
+      sha256 = "53686263f77643ad4f769faac81697c7e1eca216ed0a7b051c2318b181318d7b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/et/firefox-80.0b8.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";
-      sha256 = "dedb23bc1ee86909143b02b1d1601beb1dce38e9bb14ec8cf015e274fbab9e97";
+      sha256 = "053d8ad6cf01be9f51cd133090e99230dfe797effc749e14c8a21ba712546776";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/eu/firefox-80.0b8.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";
-      sha256 = "8e51b57208029e32ae01c93724f7b2f25d896f732e6739d5537e770b386e22be";
+      sha256 = "77774b9126ccbca2b5716b1701f8eb7933ee67ec5437a00b8ab991f423888a80";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/fa/firefox-80.0b8.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";
-      sha256 = "1c332cda9a1445ba3b58ea93c614300f3b0679d3b32e9722068a554c92e3c8d8";
+      sha256 = "4a0554bff8c11ca39f1de223537d595d298e6f61c2590543151e8ab1d8eca36e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ff/firefox-80.0b8.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";
-      sha256 = "c99e29b5b31196dc71a8c89b66b0e34b9bca8ae630414190ef7f56133bd08959";
+      sha256 = "272784bfa53ddc48fa43590b3ebd2fce808786b4649efa1d5b417488efbb8911";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/fi/firefox-80.0b8.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";
-      sha256 = "98a35572115ce221a03215bc4a4347f9579a3052191d81f64af1455f38f47ff7";
+      sha256 = "c389eb80f3cdd215549c7ce55402a7c03544eca2fa3c2074842af32755d14cac";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/fr/firefox-80.0b8.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";
-      sha256 = "34f0991b083d5a924a0e77000010d89f049767a86338db7f565a1fbc815216fe";
+      sha256 = "dc5a79229fbdd3e9fada6b6bbb35183c17a703b9c3f29d9172f2b56cd5c0d289";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/fy-NL/firefox-80.0b8.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";
-      sha256 = "157dacc021af4ca81590394c4dd01cb337f4436df1020718ffa424d43f023606";
+      sha256 = "3eb69867818f0a8448e4f421f0ded4ad1a172bd5c99048065bd4b6cf83e8b25c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ga-IE/firefox-80.0b8.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";
-      sha256 = "0e338674ea0ebb68052aefbb33c8eadcbb0bd71c78fe9bb7eba455e7c58f1a5d";
+      sha256 = "b09208ca65279e393f512a04712f91b2b170ca6e32777479acb7a03db89e87dd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/gd/firefox-80.0b8.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";
-      sha256 = "6129a4db1d2c0b0b2f250ea2ef30d08cf41da50c1d2401a7464ec4f6b8cbbe76";
+      sha256 = "011beadfc3e78ff216a13d55a9b54471ebf84bb1be852aa986ab5ba1648836f4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/gl/firefox-80.0b8.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";
-      sha256 = "94ea69444a49b0ea79f22d805963adff4a7d8fab8321e415fe8b4682b489e7b8";
+      sha256 = "c492314ad418a190484fce335d1dc5a28a515f630c59b1cf2d7e812b6d3c3bf4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/gn/firefox-80.0b8.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";
-      sha256 = "e3e6533130afd6577b8f1d41f66c2b16d3b385aeb398cfb211e7196073d7ff9e";
+      sha256 = "25b03d5251a69631f5d0cbf9dd89d1ce1dd5355e05efcc233bcf62e5311d4d01";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/gu-IN/firefox-80.0b8.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";
-      sha256 = "25ab691be04561a2dcfb2185fe5deac0b6e4785f3cbbed871b8f51e370429b3d";
+      sha256 = "1cc9a3b933b625a26beeb7c31eb062e22ff8dc98c4860bf6ef4aef5567552d63";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/he/firefox-80.0b8.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";
-      sha256 = "9ca2569009d5707c9ee9051173b24c5f531bb9c3aced445bc3bc01fe99c7926e";
+      sha256 = "027cd01f51db3b4d27381870ddf95ca2f7252bf7c6588c3d073d303bebb45311";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/hi-IN/firefox-80.0b8.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";
-      sha256 = "c39d4070be5517f8979527064b5553236d2f1f15eacfb3fc66fe4f7a2a063814";
+      sha256 = "99d6d2159ae34ce2154678e4913145ccb9c96572ef19a18db6a223647b7ec68e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/hr/firefox-80.0b8.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";
-      sha256 = "c6c37633f91a675dbd33180761542d8f1af950e876dbd1635f73a0243e2165ec";
+      sha256 = "d9b2fbc6474bac73fe7fb5c4eb818f5dc0d74cbbd52c3aacbed0f17db8bce9eb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/hsb/firefox-80.0b8.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";
-      sha256 = "4bc5975c97a98c4a93ffb4940b2f0f35670cbc9785f5fc07be5d387c3403fa64";
+      sha256 = "dcd0c254c542a50807cbf1d0036a4cab5463c237318fb1d1fec9826d052aef62";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/hu/firefox-80.0b8.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";
-      sha256 = "5c76f9bed31bd9e906b0a044b67113f1cc6d91ae738d3c6e1c2746eeccf8854c";
+      sha256 = "5a0a94eeb9c8d219b3e34e92fc51163e190c606f975735215177d521b7ed9656";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/hy-AM/firefox-80.0b8.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";
-      sha256 = "40d1896dd1763f035ea5f626430e6de77df4e0c83f3cb4d2d9c2b992379695fb";
+      sha256 = "2ff26ab884697d226bcfe224ff5c068aed355f6bb00777fa6d9f3bd0b9f9b386";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ia/firefox-80.0b8.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";
-      sha256 = "5c8a0451233c3d55d764a3ab073ae25b3fd2125aae40c73968672fed9b2520f6";
+      sha256 = "7bd9d940f81d76984886463cc10920896247084f91efedf99f787601a47abba6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/id/firefox-80.0b8.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";
-      sha256 = "7328e7f45205c3f9109eef8d7e512f41dfaf179eea50233f63a549efec0412b4";
+      sha256 = "c415b55ec7701219557cc4815ec0975d86f18312a2ef6a8abf3e82876edc5045";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/is/firefox-80.0b8.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";
-      sha256 = "3f9e92d8218acf6da2ca09bda7544b6ae6d99d1ec2398bd3281fd28aaf3b7845";
+      sha256 = "3ee6e83bd9c244b123c1a1989fbcc0524c4101fefe697ea0a9ab7c6a05302ac5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/it/firefox-80.0b8.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";
-      sha256 = "947b2947b5b33c3d62645fd2a5ba7e02eac525bd3fdc511f62881b61c77a1eb7";
+      sha256 = "de141769375ff5da94ee1030f5af84b309917eeea48cde769419004ca5a015c6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ja/firefox-80.0b8.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";
-      sha256 = "fc82a3d2b816af47b8dd632d672135f7dfa3016a554c6b1840129394007f25da";
+      sha256 = "69c5c01998a78c17ba55f262493c4e7bfa4fe03bd19a8ca605546f41f0c6f794";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ka/firefox-80.0b8.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";
-      sha256 = "9dc51bcb8d60327d5f893f334a54181eb6a4f34800ca9f15671fbc833e8a4026";
+      sha256 = "4c37f22f1a20c79c1b391b0f86bde8535c0766980a1b9a42ef912cbf91752392";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/kab/firefox-80.0b8.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";
-      sha256 = "bda38d2522f0fdf8d1d6903bb11b63dcd242684bea412f9176c49fdf56b6d5f6";
+      sha256 = "1c6722e18e1eff26918de17454d8103929115f7f036a1c23247695f7fee13051";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/kk/firefox-80.0b8.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";
-      sha256 = "d89d7aaea34b094c6a452c3d566ca03f42e4a1dae4db26d1dea5bc2da49d808d";
+      sha256 = "9ef2e2142d2e6d49adf59e6dd190b4ff816cf566cd35e5d288f66794aa2d73c4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/km/firefox-80.0b8.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";
-      sha256 = "932469479db43ced4b9ee82a481ef00adb5808f7d2e859ef7564e20cd764417f";
+      sha256 = "bf0899cad62f3331d157c557cbf3cf1f7faadaa7f9aeed3c6547b4533689dd7c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/kn/firefox-80.0b8.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";
-      sha256 = "80564390296e12424ad2fbe1952397cf7b36af4e9dfc1fdcf914745aa01a5836";
+      sha256 = "cfea495b254e1ca8c1be94e95f0c1f126d5f1a1c9d54129562fbec5ded6dec58";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ko/firefox-80.0b8.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";
-      sha256 = "b3f091451469caea3f87f81be1da8d2e981327ba36df12224f8466ab68a2e9ea";
+      sha256 = "ba8c93f8567a4f6bbf7af3c38a2d2ee793b05c0246638ded86538f91e6e9112b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/lij/firefox-80.0b8.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";
-      sha256 = "becabccd189bad47d9e716889698811f39c0833474bf48df2e4f2792b67bca6f";
+      sha256 = "c093b95b291af78460396e87ad39aa142d9925a7253f74aef9640fac0134e397";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/lt/firefox-80.0b8.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";
-      sha256 = "fe38d20e2cc294f3ae11df9ea7d34849489b1456355b7d110f8639649d5cd944";
+      sha256 = "b035e58bfe373138626d9c5a22e6b6a8c6f35e8ba30ce821f80a1a85fd16c35c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/lv/firefox-80.0b8.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";
-      sha256 = "1f6b7bf9f9b1fb0eeb80ef4a9ff280b042f9f524edd88b9ccd0500fa4ab40063";
+      sha256 = "6dd5cf66db0207527966532a2728d37438f71d1e79caf9b97916d0e404c9509f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/mk/firefox-80.0b8.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";
-      sha256 = "732585681ae095a83428cdc32c4277f98861c73583c6b12fb1ba07f0265be8ab";
+      sha256 = "1308f476d0052e1317b4c7db29d4d2218c60921a9ba7f619dde4455aee7978de";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/mr/firefox-80.0b8.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";
-      sha256 = "1aea289a62cee8243f69bccb02770b026ed183b6621bb99f33b1f5b4c8a5b667";
+      sha256 = "7336012a19cd650dfb8f842de37da8e29e7b0948cc707880667eca87bb31869a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ms/firefox-80.0b8.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";
-      sha256 = "12726f171b6d5a831898fe0c6379949860e8aa899789c2dbff7df86281549076";
+      sha256 = "192e12151ed1be4c3f7ea12beedd2c50f6e7fa877ae8c448cc899cd0fa1c6d24";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/my/firefox-80.0b8.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";
-      sha256 = "4545ba6aee4231640d4670e08a5bfb71b0cae5faadd5bd3d9705b37df04f5dba";
+      sha256 = "08db2ff728d5bfcf751e95eb9bba34a94c435e53863790ae06daf803d56c227d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/nb-NO/firefox-80.0b8.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";
-      sha256 = "1b741c62a58ac9a0ca845fa942ae169576242a3d97018439d85c9efba09e41ed";
+      sha256 = "22cfe518994fff77dc41e6f45550549593564ef2fa2dd34e31af17f5e42d636d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ne-NP/firefox-80.0b8.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";
-      sha256 = "5f44c3bb3351ded2b7f5ed216323fcee990175ef55b34a32026a2c6afa280ebd";
+      sha256 = "605180e46adcaee8fb813dc41c4e7bbe5f509f181b607554137712405c0cc294";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/nl/firefox-80.0b8.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";
-      sha256 = "5da24260eec62457572431b2667eba929876c68e0122f589cd87c7df3c364e7d";
+      sha256 = "ba8b45685a1d428d5fa1e38e1a3ec024f55db2f3ce4221fd53b96b0e0801a6b4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/nn-NO/firefox-80.0b8.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";
-      sha256 = "3d8ae8f44295cb55a3c148510922e5e74b0ec8b69333fc9dde04e6f05d1109e4";
+      sha256 = "0b76c63f7942576a2deb29cf15b089d2e73aa0b25f07eb1a511ccf033c68234a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/oc/firefox-80.0b8.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";
-      sha256 = "913bfa234f56906bb48d2410ba8bb400cce92f6f960d7e1557786092f03aec30";
+      sha256 = "5de508b4039c395b594a0c78d25655113906b95a735d1e94f8e1171ca789da19";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/pa-IN/firefox-80.0b8.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";
-      sha256 = "f6c276a03f658fe7f62b49d8ed4e7ecfa14c9852384b224b732bb80d6d0421df";
+      sha256 = "0bf9e4751ef967f4c6f63cb6332fe3940698b3e67d0e4873ea6bf639487159f2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/pl/firefox-80.0b8.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";
-      sha256 = "f1118903f6774c4e24cf2a01238f0cdefbb137e8af829dc403b13290bad64124";
+      sha256 = "0fcece8a65132810cb297a599cd4b003604854f0af684b33c9de554fbf7b1e86";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/pt-BR/firefox-80.0b8.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";
-      sha256 = "e421152016cf3551bc66382559e947aec03698090ed797514a35bbcee07229af";
+      sha256 = "8363d209d1eb7e8053acb4805df119e230ab31e74b3389ddb01b53b032c12bf4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/pt-PT/firefox-80.0b8.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";
-      sha256 = "a4da74dda8c2641e349cabc2360bbcf4ad531719d3652c96a8c9a8f2130794d1";
+      sha256 = "cf2ecf2a673f0a4f17cecb10b330bec530fd6e37aff9ed821aa68e202f59f864";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/rm/firefox-80.0b8.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";
-      sha256 = "578499fc230856e300a6774a8ab0b1d58c1afaee1e0fe6987ae16ea033cd6beb";
+      sha256 = "8849e945e79f0f9605e288de967e9f5316c792b150654e23ca65f6c91bba8978";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ro/firefox-80.0b8.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";
-      sha256 = "967ada36c6bfb6bd658493417f5f21e1cad56afc40081463072eee40a964f809";
+      sha256 = "452496612b170e53423009a128f092a3d4a372e0e6fe352e649b3c989f6f254b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ru/firefox-80.0b8.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";
-      sha256 = "58008daaf760fb6a9202d10771764cc3c46347b905aa622319b0631d833120e1";
+      sha256 = "0e7787bee9fdbb1ca0bd3ef050b1ee5d6c6d8277da941232d6ef10c612003773";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/si/firefox-80.0b8.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";
-      sha256 = "c599e263b7084a69ea0730755483fdd6334610e07188c5c9f06b4be6bb7f073e";
+      sha256 = "bfd6df7b86490aa941f5878ad749d7918bc3c907a177213ab8a60df0270eea69";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/sk/firefox-80.0b8.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";
-      sha256 = "a7170c138b30450e5b56ef7d5460f549288488455e482c8a89ea897dc9607f73";
+      sha256 = "87c4827968ac3de5fb7609b9d7685653ef279bafbbb8b15f15f93cc876d6e021";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/sl/firefox-80.0b8.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";
-      sha256 = "f7dea114d00831e71a6940348692b6523174a9fe099dad3743bb69f277cd2d7d";
+      sha256 = "6b272ee0cc91ba6114dc777f1833ed5201a96fd905a0d68a71cbafafe1a066cb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/son/firefox-80.0b8.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";
-      sha256 = "9d9917d01601e3de913267d1836764cc10acb09363b05049867d7069964171ad";
+      sha256 = "342f9eedcb359409fb324c13120ed25421435b614e9b5e15585ccf1551c263c4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/sq/firefox-80.0b8.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";
-      sha256 = "85c34be5e061157f94444cfa07d8c8c1768aea4d4ed29a63d46b13bbb5d80438";
+      sha256 = "ad11f5878139c46a2344d0bcf6b02ad2c19e59f9861e7ac74668801e14742b73";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/sr/firefox-80.0b8.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";
-      sha256 = "15a348fbf5fb4ae31e0a33b17d866e40b655b4dd788329d579afc82bb5ed86a3";
+      sha256 = "5e555aafe353036537609b9ba997374d106bb5ecaaa386b5395b7d156ff89901";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/sv-SE/firefox-80.0b8.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";
-      sha256 = "bb9bbd0edb5934f5d33d4f8db92d1e039f8519c0c126f5156f88d4a5be864902";
+      sha256 = "cbd33b4fd20d8a7401e384196c28adf9fda6ee2bf24895d75e75f8b727d33e53";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ta/firefox-80.0b8.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";
-      sha256 = "1d886bf18808d2dd3d6a95e5ae377c24be50f7e3788bf2c37c42606e2141d3ae";
+      sha256 = "8e4e9919ec79c1847449cc75539f24801d972b67d6895727aafddf7485d95ed3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/te/firefox-80.0b8.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";
-      sha256 = "72bcbe4f087f8ed8248d5056adc786d96982a87fb79bc3e83dfb9e9f209211e2";
+      sha256 = "cb756aa758e69f26eb50d2e81bcb922c2a15a2304ef99debe67a57c44b2c3c52";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/th/firefox-80.0b8.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";
-      sha256 = "ba0d8e25d5d2de631c05b9aa7317eca67dfa12564e677f9391a7da61c7630ddd";
+      sha256 = "8c2be1458aa4077264ec946181d7ab3160086d12c821dc3d5fa3bbba46de3574";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/tl/firefox-80.0b8.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";
-      sha256 = "020791c52209fe806aa92f7945724ac1bbfc5554ec7827d7c320e1cefb5d6e60";
+      sha256 = "e51e4cf97b79b3720129ed9467b57d393a4ffd5698a9a941cd28feffa1d166fa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/tr/firefox-80.0b8.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";
-      sha256 = "e803849628fb4a07aac2b23d457a8d1f954d2270d989fdd167c82e4ff407dd23";
+      sha256 = "9f0a494434bc3d78c43428bc535517b5d61743326fbdbf1836a84f353408a54e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/trs/firefox-80.0b8.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";
-      sha256 = "8aa74977fc2ae7e85150406541673b71b122f10a79762ae98787f9196d6e1ac9";
+      sha256 = "24cadb7247a254595c29aebe60784d37061465f2c960a8d036096c6df71e4186";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/uk/firefox-80.0b8.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";
-      sha256 = "7489d2f06cc74a759e6128a9e1ae19305ac8d81f026e8d16fce30dd8c23762de";
+      sha256 = "6aa85e7119fd3ca00cd87d898eb93d954b1e58d01edf14106c41df98bdca4d99";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/ur/firefox-80.0b8.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";
-      sha256 = "a0e924a25bdde879856fbf53fc0ca3972a3f701338079ef408694c0f87a13aa1";
+      sha256 = "6b188379acb89178d08e827a60244c2298eae62434991d53378327c36829fa01";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/uz/firefox-80.0b8.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";
-      sha256 = "4603be13c80926a5de1a2fac56d433798c2e2415ac5e769a7d4893b3eae7ec86";
+      sha256 = "782ced50737f68a9fa6db854cde83ef7bbc6f95776a44918248efcedd95230ec";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/vi/firefox-80.0b8.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";
-      sha256 = "1f9aef09fd0707121eb3335d60bf0b3b06554294594f45158cd41cd37f0beb07";
+      sha256 = "37b600b306c901080f659955163b1696f5129e71bc3c5f65dc74d280ee6e3024";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/xh/firefox-80.0b8.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";
-      sha256 = "4c61f2ca3c4ecbc5b6a71edfa540400633d689c2cb042030c2291117443ade65";
+      sha256 = "ebdfb9a50a5a7cad0508ade647ef3f81e18837d6b84212de6393a854bbfc652f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/zh-CN/firefox-80.0b8.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";
-      sha256 = "b24226ecd5946ea1320dd8ceabcf5402af96c7674c45d058b548aa212da1e1aa";
+      sha256 = "fbc7b8952fa6d2d73b736abf4e60a10512eb983ea4588f7e746bff9512b953ce";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0b8/linux-i686/zh-TW/firefox-80.0b8.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";
-      sha256 = "9765b5e72e0e2bb22b080d6a9a050a52fe003771e172f4865948b0c8b0000ff4";
+      sha256 = "5c29c56ef6480703ef9b6a2dc3cae8bc45b2fc01495ba099bd1ee28bbcdce55a";
     }
     ];
 }
diff --git a/pkgs/applications/networking/browsers/firefox/packages.nix b/pkgs/applications/networking/browsers/firefox/packages.nix
index ce9365f72fe5d..37b36e5e62953 100644
--- a/pkgs/applications/networking/browsers/firefox/packages.nix
+++ b/pkgs/applications/networking/browsers/firefox/packages.nix
@@ -7,10 +7,10 @@ in
 rec {
   firefox = common rec {
     pname = "firefox";
-    ffversion = "80.0";
+    ffversion = "80.0.1";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
-      sha512 = "3rw30gs1wvd6m2sgsp1wm29rrbkxyf3jsdy8i0azfz9w7hqcfwnv76j3cdf18xghh954hpn3q6w1hr7pgab3z9zjxzyfcnh2mbabyvc";
+      sha512 = "081sf41r7ickjij3kfrdq29a0d6wz7qv8950kx116kakh8qxgjy8ahk2mfwlcp6digrl4mimi8rl7ns1wjngsmrjh4lvqzh1xglx9cp";
     };
 
     patches = [
diff --git a/pkgs/applications/networking/browsers/google-chrome/default.nix b/pkgs/applications/networking/browsers/google-chrome/default.nix
index fa19c4efa9d8f..4d985e33e6b24 100644
--- a/pkgs/applications/networking/browsers/google-chrome/default.nix
+++ b/pkgs/applications/networking/browsers/google-chrome/default.nix
@@ -72,7 +72,7 @@ in stdenv.mkDerivation {
 
   name = "google-chrome${suffix}-${version}";
 
-  src = chromium.upstream-info.binary;
+  src = chromium.chromeSrc;
 
   nativeBuildInputs = [ patchelf makeWrapper ];
   buildInputs = [
diff --git a/pkgs/applications/networking/cloudflared/default.nix b/pkgs/applications/networking/cloudflared/default.nix
index 252a6f5b48b60..96767f63653e9 100644
--- a/pkgs/applications/networking/cloudflared/default.nix
+++ b/pkgs/applications/networking/cloudflared/default.nix
@@ -2,13 +2,13 @@
 
 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;
diff --git a/pkgs/applications/networking/cluster/argo/default.nix b/pkgs/applications/networking/cluster/argo/default.nix
index 45bbfbd6c40b6..72c3955f90f34 100644
--- a/pkgs/applications/networking/cluster/argo/default.nix
+++ b/pkgs/applications/networking/cluster/argo/default.nix
@@ -19,13 +19,13 @@ let
 in
 buildGoModule rec {
   pname = "argo";
-  version = "2.10.0";
+  version = "2.10.1";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo";
     rev = "v${version}";
-    sha256 = "19z1v6p59pcl8smywn1b5igqpv9wj48n6500wjxx5ayhc4mg00h2";
+    sha256 = "1k023rq4p0hvq5famxm83csp3zsijrki8myk6v83xyfigwxc8sia";
   };
 
   vendorSha256 = "0fqdxs3r4249qxlc9cac0lpbqf2aifkcah07v0cckb9rxfyiwhjz";
diff --git a/pkgs/applications/networking/cluster/helmfile/default.nix b/pkgs/applications/networking/cluster/helmfile/default.nix
index f713d8a8a6d45..3b3794e95389e 100644
--- a/pkgs/applications/networking/cluster/helmfile/default.nix
+++ b/pkgs/applications/networking/cluster/helmfile/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "helmfile";
-  version = "0.125.7";
+  version = "0.128.0";
 
   src = fetchFromGitHub {
     owner = "roboll";
     repo = "helmfile";
     rev = "v${version}";
-    sha256 = "1m030gjrd98z4vbj7l927qi55vgr11czrb8wmw56ifkqwfi6h9hi";
+    sha256 = "1ihvjbh3v91wxny9jq0x9qi3s2zzdpg96w1vrhiim43nnv0ydg1y";
   };
 
-  vendorSha256 = "0w72nlf26k64cq1hrqycks0pyp18y4wh3h40jpn5qnysi5pb2ndj";
+  vendorSha256 = "181iksfadjqrgsia8zy0zf5lr4h732s7hxjjfkr4gac586dlbj0w";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/cluster/jx/default.nix b/pkgs/applications/networking/cluster/jx/default.nix
index 52e483424f1a7..5199bbfaf3368 100644
--- a/pkgs/applications/networking/cluster/jx/default.nix
+++ b/pkgs/applications/networking/cluster/jx/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "jx";
-  version = "2.1.127";
+  version = "2.1.138";
 
   src = fetchFromGitHub {
     owner = "jenkins-x";
     repo = "jx";
     rev = "v${version}";
-    sha256 = "01dfpnqgbrn8b6h2irq080xdm76b4jx6sd80f8x4zmyaz6hf5vlv";
+    sha256 = "1i45gzaql6rfplliky56lrzwjnm2qzv25kgyq7gvn9c7hjaaq65b";
   };
 
-  vendorSha256 = "0la92a8720l8my5r4wsbgv74y6m19ikmm0wv3l4m4w5gjyplfsxb";
+  vendorSha256 = "1wvggarakshpw7m8h0x2zvd6bshd2kzbrjynfa113z90pgksvjng";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/cluster/kops/default.nix b/pkgs/applications/networking/cluster/kops/default.nix
index 282890ada5b54..d751c8ca18e83 100644
--- a/pkgs/applications/networking/cluster/kops/default.nix
+++ b/pkgs/applications/networking/cluster/kops/default.nix
@@ -3,8 +3,8 @@
 let
   goPackagePath = "k8s.io/kops";
 
-  generic = { version, sha256, ...}@attrs:
-    let attrs' = builtins.removeAttrs attrs ["version" "sha256"] ; in
+  generic = { version, sha256, rev ? version, ...}@attrs:
+    let attrs' = builtins.removeAttrs attrs ["version" "sha256" "rev"] ; in
       buildGoPackage {
         pname = "kops";
         inherit version;
@@ -12,7 +12,7 @@ let
         inherit goPackagePath;
 
         src = fetchFromGitHub {
-          rev = version;
+          rev = rev;
           owner = "kubernetes";
           repo = "kops";
           inherit sha256;
@@ -51,11 +51,6 @@ in rec {
 
   mkKops = generic;
 
-  kops_1_15 = mkKops {
-    version = "1.15.3";
-    sha256 = "0pzgrsl61nw8pm3s032lj020fw13x3fpzlj7lknsnd581f0gg4df";
-  };
-
   kops_1_16 = mkKops {
     version = "1.16.4";
     sha256 = "0qi80hzd5wc8vn3y0wsckd7pq09xcshpzvcr7rl5zd4akxb0wl3f";
@@ -65,4 +60,10 @@ in rec {
     version = "1.17.1";
     sha256 = "1km6nwanmhfx8rl1wp445z9ib50jr2f86rd92vilm3q4rs9kig1h";
   };
+
+  kops_1_18 = mkKops rec {
+    version = "1.18.0";
+    sha256 = "16zbjxxv08j31y7lhkqx2bnx0pc3r0vpfrlhdjs26z22p5rc4rrh";
+    rev = "v${version}";
+  };
 }
diff --git a/pkgs/applications/networking/cluster/minikube/default.nix b/pkgs/applications/networking/cluster/minikube/default.nix
index 00b314b6cbbc3..b319ee57b95d1 100644
--- a/pkgs/applications/networking/cluster/minikube/default.nix
+++ b/pkgs/applications/networking/cluster/minikube/default.nix
@@ -11,9 +11,9 @@
 
 buildGoModule rec {
   pname = "minikube";
-  version = "1.12.3";
+  version = "1.13.0";
 
-  vendorSha256 = "014zgkh1l6838s5bmcxpvvyap96sd8ammrz5d7fncx0afik7zc4m";
+  vendorSha256 = "09bcp7pqbs9j06z1glpad70dqlsnrf69vn75l00bdjknbrvbzrb9";
 
   doCheck = false;
 
@@ -21,7 +21,7 @@ buildGoModule rec {
     owner = "kubernetes";
     repo = "minikube";
     rev = "v${version}";
-    sha256 = "0z8hinhx521rphcm0cd5lli5jy09lw1jw63q2a4fqlmhpw39qrj9";
+    sha256 = "1xlz07q0nlsq6js58b5ad0wxajwganaqcvwglj4w6fgmiqm9s1ny";
   };
 
   nativeBuildInputs = [ go-bindata installShellFiles pkg-config which ];
diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix
index dd1da887cb41a..f29508ffe3800 100644
--- a/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/pkgs/applications/networking/cluster/terraform/default.nix
@@ -132,8 +132,8 @@ in rec {
   });
 
   terraform_0_13 = pluggable (generic {
-    version = "0.13.1";
-    sha256 = "0a2sjjb79ziv42ifhplpkvqgsg8gxvr1wdgkhdj59dwahqv64pm2";
+    version = "0.13.2";
+    sha256 = "04pm57l29j3ai6dvh2343q4yhskkxqj8ayr2hdw2qqjch52p8mrw";
     patches = [ ./provider-path.patch ];
     passthru = { inherit plugins; };
   });
diff --git a/pkgs/applications/networking/cluster/tilt/default.nix b/pkgs/applications/networking/cluster/tilt/default.nix
index c2ffb816aa9d1..c3ec58df35d4a 100644
--- a/pkgs/applications/networking/cluster/tilt/default.nix
+++ b/pkgs/applications/networking/cluster/tilt/default.nix
@@ -5,13 +5,13 @@ buildGoModule rec {
   /* Do not use "dev" as a version. If you do, Tilt will consider itself
     running in development environment and try to serve assets from the
     source tree, which is not there once build completes.  */
-  version = "0.17.0";
+  version = "0.17.2";
 
   src = fetchFromGitHub {
     owner  = "tilt-dev";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "0bd01fmrf17njzf8ri4bw4qi7bxcvd3dx7yyf42qfvnp7hrfzipk";
+    sha256 = "0wiqnlam4f7085n3djvb5phhvw9df61bj8w6c5rcpffykg33vhmi";
   };
   vendorSha256 = null;
 
diff --git a/pkgs/applications/networking/feedreaders/rss2email/default.nix b/pkgs/applications/networking/feedreaders/rss2email/default.nix
index b852eb02feca1..977b71ebc50d2 100644
--- a/pkgs/applications/networking/feedreaders/rss2email/default.nix
+++ b/pkgs/applications/networking/feedreaders/rss2email/default.nix
@@ -4,14 +4,14 @@ with pythonPackages;
 
 buildPythonApplication rec {
   pname = "rss2email";
-  version = "3.12.1";
+  version = "3.12.2";
 
   propagatedBuildInputs = [ feedparser html2text ];
   checkInputs = [ beautifulsoup4 ];
 
   src = fetchurl {
     url = "mirror://pypi/r/rss2email/${pname}-${version}.tar.gz";
-    sha256 = "0zqpibh31rl6xlfw9y66d9hfhwrnzy5cjzbksczyw3lh4dfzsql0";
+    sha256 = "12w6x80wsw6xm17fxyymnl45aavsagg932zw621wcjz154vjghjr";
   };
 
   outputs = [ "out" "man" "doc" ];
diff --git a/pkgs/applications/networking/feedreaders/rssguard/default.nix b/pkgs/applications/networking/feedreaders/rssguard/default.nix
index 93356dfb4f8d6..40b67484360b0 100644
--- a/pkgs/applications/networking/feedreaders/rssguard/default.nix
+++ b/pkgs/applications/networking/feedreaders/rssguard/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rssguard";
-  version = "3.7.0";
+  version = "3.7.2";
 
   src = fetchFromGitHub {
     owner = "martinrotter";
     repo = pname;
     rev = version;
-    sha256 = "1maiazjsnjalx09rq1l84kd86s48cvljnwynv4rj6cln1h0al030";
+    sha256 = "1l2ra06am6bgwb4q200lhi64sz3np1dzf2vpjh10znxbx0mahbq6";
   };
 
   buildInputs =  [ qtwebengine qttools ];
diff --git a/pkgs/applications/networking/instant-messengers/cordless/default.nix b/pkgs/applications/networking/instant-messengers/cordless/default.nix
new file mode 100644
index 0000000000000..a262b04874646
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/cordless/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "cordless";
+  version = "2020-08-30";
+
+  src = fetchFromGitHub {
+    owner = "Bios-Marcel";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-CwOI7Ah4+sxD9We+Va5a6jYat5mjOeBk2EsOfwskz6k=";
+  };
+
+  subPackages = [ "." ];
+
+  vendorSha256 = "sha256-01I7GrZkaskuz20kVK2YwqvP7ViPMlQ3BFaoLHwgvOE=";
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/Bios-Marcel/cordless";
+    description = "Discord terminal client";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ colemickens ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json b/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
index 3064579372871..610cb328d6627 100644
--- a/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
+++ b/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
@@ -2,7 +2,7 @@
   "name": "element-desktop",
   "productName": "Element",
   "main": "src/electron-main.js",
-  "version": "1.7.4",
+  "version": "1.7.5",
   "description": "A feature-rich client for Matrix.org",
   "author": "Element",
   "repository": {
diff --git a/pkgs/applications/networking/instant-messengers/element/element-desktop.nix b/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
index 09fd89b0da7fa..46e859076bee4 100644
--- a/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
+++ b/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
@@ -8,12 +8,12 @@
 
 let
   executableName = "element-desktop";
-  version = "1.7.4";
+  version = "1.7.5";
   src = fetchFromGitHub {
     owner = "vector-im";
     repo = "riot-desktop";
     rev = "v${version}";
-    sha256 = "16ilkf5b8mz74x1r9fym5xjb4plxzhg3g5njj1sl4qvsbrkk6r9a";
+    sha256 = "0781yg15bzkw5bpfzbdkqix239djgsc7kjdvbilv1d1xxqz3462y";
   };
   electron = electron_9;
 
diff --git a/pkgs/applications/networking/instant-messengers/element/element-web.nix b/pkgs/applications/networking/instant-messengers/element/element-web.nix
index 9c818a8e8b66d..1ed5a6261f1a0 100644
--- a/pkgs/applications/networking/instant-messengers/element/element-web.nix
+++ b/pkgs/applications/networking/instant-messengers/element/element-web.nix
@@ -12,11 +12,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "element-web";
-  version = "1.7.4";
+  version = "1.7.5";
 
   src = fetchurl {
     url = "https://github.com/vector-im/riot-web/releases/download/v${version}/riot-v${version}.tar.gz";
-    sha256 = "0ssyd5b9yrxidivr3rcjsd8ixkmppsmmr7a8k0sv16yk7hjnvz5b";
+    sha256 = "07qc4hymdp1r2zn9gsgkpwxf6knk6xr88dc3iihlhipmlk46m58b";
   };
 
   installPhase = ''
diff --git a/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix b/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix
index d58688565fdf8..a751501376ff5 100644
--- a/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonApplication rec {
   pname = "pantalaimon";
-  version = "0.6.5";
+  version = "0.7.0";
 
   disabled = pythonOlder "3.6";
 
@@ -19,7 +19,7 @@ buildPythonApplication rec {
     owner = "matrix-org";
     repo = pname;
     rev = version;
-    sha256 = "1pjrq71fkpvsc79nwhxhwjkqvqhj5wsnnwvsgslghaajdaw3n6wd";
+    sha256 = "0cx8sqajf5lh8w61yy1l6ry67rv1b45xp264zkw3s7ip80i4ylb2";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index 69a95b3459b7b..c4eef754cd427 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -25,7 +25,7 @@ let
       else "");
 in stdenv.mkDerivation rec {
   pname = "signal-desktop";
-  version = "1.34.5"; # Please backport all updates to the stable channel.
+  version = "1.35.1"; # Please backport all updates to the stable channel.
   # All releases have a limited lifetime and "expire" 90 days after the release.
   # When releases "expire" the application becomes unusable until an update is
   # applied. The expiration date for the current release can be extracted with:
@@ -35,7 +35,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
-    sha256 = "1s8nksrkfivsf9r460ifxsf8l7bnc1zix5yj39kvnx0mbync8lg1";
+    sha256 = "1nxj7h8yrp2sbxxd49q9xdh1zsqixcd01i83lr492f4322cg1yjf";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/mailreaders/mutt/default.nix b/pkgs/applications/networking/mailreaders/mutt/default.nix
index ec4778cd4ab85..0b18a579e3bcc 100644
--- a/pkgs/applications/networking/mailreaders/mutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/mutt/default.nix
@@ -27,11 +27,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "mutt";
-  version = "1.14.6";
+  version = "1.14.7";
 
   src = fetchurl {
     url = "http://ftp.mutt.org/pub/mutt/${pname}-${version}.tar.gz";
-    sha256 = "0i0q6vwhnb1grimsrpmz8maw255rh9k0laijzxkry6xqa80jm5s7";
+    sha256 = "0r58xnjgkw0kmnnzhb32mk5gkkani5kbi5krybpbag156fqhgxg4";
   };
 
   patches = optional smimeSupport (fetchpatch {
diff --git a/pkgs/applications/networking/mumble/default.nix b/pkgs/applications/networking/mumble/default.nix
index 8490c0509a1c5..c205f18e36638 100644
--- a/pkgs/applications/networking/mumble/default.nix
+++ b/pkgs/applications/networking/mumble/default.nix
@@ -6,6 +6,7 @@
 , speechdSupport ? false, speechd ? null
 , pulseSupport ? false, libpulseaudio ? null
 , iceSupport ? false, zeroc-ice ? null
+, grpcSupport ? false, grpc ? null, c-ares ? null, abseil-cpp ? null, which ? null
 , nixosTests
 }:
 
@@ -13,6 +14,7 @@ assert jackSupport -> libjack2 != null;
 assert speechdSupport -> speechd != null;
 assert pulseSupport -> libpulseaudio != null;
 assert iceSupport -> zeroc-ice != null;
+assert grpcSupport -> (grpc != null && c-ares != null && abseil-cpp != null && which != null);
 
 with stdenv.lib;
 let
@@ -117,9 +119,12 @@ let
 
     configureFlags = [
       "CONFIG+=no-client"
-    ] ++ optional (!iceSupport) "CONFIG+=no-ice";
+    ] ++ optional (!iceSupport) "CONFIG+=no-ice"
+      ++ optional grpcSupport "CONFIG+=grpc";
 
-    buildInputs = [ libcap ] ++ optional iceSupport zeroc-ice;
+    buildInputs = [ libcap ]
+      ++ optional iceSupport zeroc-ice
+      ++ optionals grpcSupport [ grpc c-ares abseil-cpp which ];
 
     installPhase = ''
       # bin stuff
diff --git a/pkgs/applications/networking/owncloud-client/default.nix b/pkgs/applications/networking/owncloud-client/default.nix
index a487da6f5ad76..d990dfb39d2be 100644
--- a/pkgs/applications/networking/owncloud-client/default.nix
+++ b/pkgs/applications/networking/owncloud-client/default.nix
@@ -2,11 +2,11 @@
 
 mkDerivation rec {
   pname = "owncloud-client";
-  version = "2.5.4.11654";
+  version = "2.6.3.14058";
 
   src = fetchurl {
     url = "https://download.owncloud.com/desktop/stable/owncloudclient-${version}.tar.xz";
-    sha256 = "0gsnry0786crbnpgg3f1vcqw6mwbz6svhm6mw3767qi4lb33jm31";
+    sha256 = "1xcklhvbyg34clm9as2rjnjfwxpwq77lmdxj6qc0w7q43viqvlz3";
   };
 
   nativeBuildInputs = [ pkgconfig cmake ];
diff --git a/pkgs/applications/networking/p2p/tixati/default.nix b/pkgs/applications/networking/p2p/tixati/default.nix
index 2e14bd0eb0f27..f8a70d322f03d 100644
--- a/pkgs/applications/networking/p2p/tixati/default.nix
+++ b/pkgs/applications/networking/p2p/tixati/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tixati";
-  version = "2.73";
+  version = "2.74";
 
   src = fetchurl {
     url = "https://download2.tixati.com/download/tixati-${version}-1.x86_64.manualinstall.tar.gz";
-    sha256 = "1ncrfc4wgf02la2h3zpdcz07b980n9232lg5f62q7ab79fjrcrfr";
+    sha256 = "1slsrqv97hnj1vxx3hw32dhqckbr05w622samjbrimh4dv8yrd29";
   };
 
   installPhase = ''
diff --git a/pkgs/applications/networking/remote/teamviewer/default.nix b/pkgs/applications/networking/remote/teamviewer/default.nix
index a857abcfed139..9c3ed826a2d5e 100644
--- a/pkgs/applications/networking/remote/teamviewer/default.nix
+++ b/pkgs/applications/networking/remote/teamviewer/default.nix
@@ -6,11 +6,11 @@
 
 mkDerivation rec {
   pname = "teamviewer";
-  version = "15.5.6";
+  version = "15.8.3";
 
   src = fetchurl {
     url = "https://dl.tvcdn.de/download/linux/version_15x/teamviewer_${version}_amd64.deb";
-    sha256 = "12dzrg9qf5gj9srv482n3jsjar8jhs3s5kkp6v5pvfp8kbmwcbib";
+    sha256 = "1c947yxgs0mv5x6qvy40dypbbhhjbglma1pwl66z39gzg51n2dmc";
   };
 
   unpackPhase = ''
diff --git a/pkgs/applications/networking/scaleft/default.nix b/pkgs/applications/networking/scaleft/default.nix
index 864f10553eeb0..b1a754193ebfd 100644
--- a/pkgs/applications/networking/scaleft/default.nix
+++ b/pkgs/applications/networking/scaleft/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "scaleft";
-  version = "1.45.3";
+  version = "1.45.4";
 
   src =
     fetchurl {
       url = "http://pkg.scaleft.com/rpm/scaleft-client-tools-${version}-1.x86_64.rpm";
-      sha256 = "02hsn64kg22pgga5ldjwhnqc6jq8w03mwf40dfanln1qz38x9nx1";
+      sha256 = "1yskybjba9ljy1wazddgrm7a4cc72i1xbk7sxnjpcq4hdy3b50l0";
     };
 
   nativeBuildInputs = [ patchelf rpmextract ];
diff --git a/pkgs/applications/networking/seafile-client/default.nix b/pkgs/applications/networking/seafile-client/default.nix
index 0893ee21a558a..69b7b432b0a0a 100644
--- a/pkgs/applications/networking/seafile-client/default.nix
+++ b/pkgs/applications/networking/seafile-client/default.nix
@@ -4,13 +4,13 @@
 
 mkDerivation rec {
   pname = "seafile-client";
-  version = "7.0.7";
+  version = "7.0.9";
 
   src = fetchFromGitHub {
     owner = "haiwen";
     repo = "seafile-client";
     rev = "v${version}";
-    sha256 = "0szdyprljyckmbrw5sypizs22j96q84ak6nyidyr2j6gf4grh9mg";
+    sha256 = "0pcn6lfzma2hvpwsp9q0002wvym7zabpp8fvq29l101gzirn79m9";
   };
 
   nativeBuildInputs = [ pkgconfig cmake ];
diff --git a/pkgs/applications/networking/sync/rclone/default.nix b/pkgs/applications/networking/sync/rclone/default.nix
index db05056e7e1c8..35315b729c1e1 100644
--- a/pkgs/applications/networking/sync/rclone/default.nix
+++ b/pkgs/applications/networking/sync/rclone/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, buildPackages, installShellFiles }:
+{ stdenv, buildGoModule, fetchFromGitHub, buildPackages, installShellFiles }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "rclone";
-  version = "1.52.3";
+  version = "1.53.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "1bf3rhs4dcb8vkzs4a6pk5xrhnkhqsrbf4xrhcqf407r668gdav1";
+    sha256 = "1736np95di9ksy6i8glzmvzc7qp4d06354gvrnxbzimgf0mm11wn";
   };
 
-  goPackagePath = "github.com/rclone/rclone";
+  vendorSha256 = "1l4iz31k1pylvf0zrp4nhxna70s1ma4981x6q1s3dhszjxil5c88";
 
   subPackages = [ "." ];
 
@@ -19,6 +19,8 @@ buildGoPackage rec {
 
   nativeBuildInputs = [ installShellFiles ];
 
+  buildFlagsArray = [ "-ldflags=-s -w -X github.com/rclone/rclone/fs.Version=${version}" ];
+
   postInstall =
     let
       rcloneBin =
@@ -26,13 +28,13 @@ 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";
diff --git a/pkgs/applications/office/espanso/default.nix b/pkgs/applications/office/espanso/default.nix
index 889f363dfb900..86a2c961194ef 100644
--- a/pkgs/applications/office/espanso/default.nix
+++ b/pkgs/applications/office/espanso/default.nix
@@ -14,16 +14,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "espanso";
-  version = "0.7.0";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "federico-terzi";
     repo = pname;
     rev = "v${version}";
-    sha256 = "11xdnn1iwpx58s3wvjb6dkgfc6dzsblzb6fngc0np5vx8r2pccpg";
+    sha256 = "1yspycgmg7vwf4d86r6n24lvgn14aq73fl8sn00shxndramp46ib";
   };
 
-  cargoSha256 = "1yjpqjfrixscg52yhalybgp734w3sdqg5hxka8ppcvz7lp3w5b1s";
+  cargoSha256 = "0g0xf8j4yjayl7a5sqxm3piiif1hc7ws3i7q8vi7dk8nk609pbxr";
 
   nativeBuildInputs = [
     extra-cmake-modules
diff --git a/pkgs/applications/office/gnumeric/default.nix b/pkgs/applications/office/gnumeric/default.nix
index 40351ba64a18f..b0609863c5adb 100644
--- a/pkgs/applications/office/gnumeric/default.nix
+++ b/pkgs/applications/office/gnumeric/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, intltool, perlPackages
+{ stdenv, fetchurl, pkg-config, intltool, perlPackages
 , goffice, gnome3, wrapGAppsHook, gtk3, bison, python3Packages
 , itstool
 }:
@@ -7,16 +7,16 @@ let
   inherit (python3Packages) python pygobject3;
 in stdenv.mkDerivation rec {
   pname = "gnumeric";
-  version = "1.12.47";
+  version = "1.12.48";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1khrf72kiq50y8b5prbj2207k9shn36h2b2i588cc4wa28s9y5a0";
+    sha256 = "14556b0vyxdvdwjlin0rv7jk0vq4nplbmvp9j89bhkfk84xf7k2p";
   };
 
   configureFlags = [ "--disable-component" ];
 
-  nativeBuildInputs = [ pkgconfig intltool bison itstool wrapGAppsHook ];
+  nativeBuildInputs = [ pkg-config intltool bison itstool wrapGAppsHook ];
 
   # ToDo: optional libgda, introspection?
   buildInputs = [
diff --git a/pkgs/applications/office/gtg/default.nix b/pkgs/applications/office/gtg/default.nix
index d990bc07ad236..9bd25cfff1dfa 100644
--- a/pkgs/applications/office/gtg/default.nix
+++ b/pkgs/applications/office/gtg/default.nix
@@ -50,9 +50,16 @@ python3Packages.buildPythonApplication rec {
     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 = ''
diff --git a/pkgs/applications/office/libreoffice/default.nix b/pkgs/applications/office/libreoffice/default.nix
index 7e20c0bb4fee5..111e50b7d454b 100644
--- a/pkgs/applications/office/libreoffice/default.nix
+++ b/pkgs/applications/office/libreoffice/default.nix
@@ -61,15 +61,12 @@ in (mkDrv rec {
   # of rasqal/rasqal.h
   NIX_CFLAGS_COMPILE = [
     "-I${librdf_rasqal}/include/rasqal"
-  ] ++ lib.optional stdenv.isx86_64 "-mno-fma";
+  ] ++ lib.optionals stdenv.isx86_64 [ "-mno-fma" "-mno-avx" ]
+  # https://bugs.documentfoundation.org/show_bug.cgi?id=78174#c10
+  ++ [ "-fno-visibility-inlines-hidden" ];
 
   patches = [
     ./xdg-open-brief.patch
-    (fetchpatch {
-      url = "https://git.pld-linux.org/gitweb.cgi?p=packages/libreoffice.git;a=blob_plain;f=poppler-0.86.patch;h=76b8356d5f22ef537a83b0f9b0debab591f152fe;hb=a2737a61353e305a9ee69640fb20d4582c218008";
-      name = "poppler-0.86.patch";
-      sha256 = "0q6k4l8imgp8ailcv0qx5l83afyw44hah24fi7gjrm9xgv5sbb8j";
-    })
   ];
 
   tarballPath = "external/tarballs";
diff --git a/pkgs/applications/office/libreoffice/src-fresh/download.nix b/pkgs/applications/office/libreoffice/src-fresh/download.nix
index f4b14870eb791..16d754a18a14a 100644
--- a/pkgs/applications/office/libreoffice/src-fresh/download.nix
+++ b/pkgs/applications/office/libreoffice/src-fresh/download.nix
@@ -28,11 +28,11 @@
     md5name = "976a12a59bc286d634a21d7be0841cc74289ea9077aa1af46be19d1a6e844c19-apr-util-1.5.4.tar.gz";
   }
   {
-    name = "boost_1_69_0.tar.bz2";
-    url = "http://dev-www.libreoffice.org/src/boost_1_69_0.tar.bz2";
-    sha256 = "8f32d4617390d1c2d16f26a27ab60d97807b35440d45891fa340fc2648b04406";
+    name = "boost_1_71_0.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/boost_1_71_0.tar.xz";
+    sha256 = "35e06a3bd7cd8f66be822c7d64e80c2b6051a181e9e897006917cb8e7988a543";
     md5 = "";
-    md5name = "8f32d4617390d1c2d16f26a27ab60d97807b35440d45891fa340fc2648b04406-boost_1_69_0.tar.bz2";
+    md5name = "35e06a3bd7cd8f66be822c7d64e80c2b6051a181e9e897006917cb8e7988a543-boost_1_71_0.tar.xz";
   }
   {
     name = "breakpad.zip";
@@ -63,11 +63,11 @@
     md5name = "5e7b29b3f113ef870d1e3ecf8adf21f923396401604bda16d44be45e66052331-cairo-1.16.0.tar.xz";
   }
   {
-    name = "libcdr-0.1.5.tar.xz";
-    url = "http://dev-www.libreoffice.org/src/libcdr-0.1.5.tar.xz";
-    sha256 = "6ace5c499a8be34ad871e825442ce388614ae2d8675c4381756a7319429e3a48";
+    name = "libcdr-0.1.6.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libcdr-0.1.6.tar.xz";
+    sha256 = "01cd00b04a030977e544433c2d127c997205332cd9b8e35ec0ee17110da7f861";
     md5 = "";
-    md5name = "6ace5c499a8be34ad871e825442ce388614ae2d8675c4381756a7319429e3a48-libcdr-0.1.5.tar.xz";
+    md5name = "01cd00b04a030977e544433c2d127c997205332cd9b8e35ec0ee17110da7f861-libcdr-0.1.6.tar.xz";
   }
   {
     name = "clucene-core-2.3.3.4.tar.gz";
@@ -77,6 +77,13 @@
     md5name = "48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz";
   }
   {
+    name = "dtoa-20180411.tgz";
+    url = "http://dev-www.libreoffice.org/src/dtoa-20180411.tgz";
+    sha256 = "0082d0684f7db6f62361b76c4b7faba19e0c7ce5cb8e36c4b65fea8281e711b4";
+    md5 = "";
+    md5name = "0082d0684f7db6f62361b76c4b7faba19e0c7ce5cb8e36c4b65fea8281e711b4-dtoa-20180411.tgz";
+  }
+  {
     name = "libcmis-0.5.2.tar.xz";
     url = "http://dev-www.libreoffice.org/src/libcmis-0.5.2.tar.xz";
     sha256 = "d7b18d9602190e10d437f8a964a32e983afd57e2db316a07d87477a79f5000a2";
@@ -91,11 +98,11 @@
     md5name = "86c798780b9e1f5921fe4efe651a93cb420623b45aa1fdff57af8c37f116113f-CoinMP-1.7.6.tgz";
   }
   {
-    name = "cppunit-1.14.0.tar.gz";
-    url = "http://dev-www.libreoffice.org/src/cppunit-1.14.0.tar.gz";
-    sha256 = "3d569869d27b48860210c758c4f313082103a5e58219a7669b52bfd29d674780";
+    name = "cppunit-1.15.1.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/cppunit-1.15.1.tar.gz";
+    sha256 = "89c5c6665337f56fd2db36bc3805a5619709d51fb136e51937072f63fcc717a7";
     md5 = "";
-    md5name = "3d569869d27b48860210c758c4f313082103a5e58219a7669b52bfd29d674780-cppunit-1.14.0.tar.gz";
+    md5name = "89c5c6665337f56fd2db36bc3805a5619709d51fb136e51937072f63fcc717a7-cppunit-1.15.1.tar.gz";
   }
   {
     name = "converttexttonumber-1-5-0.oxt";
@@ -105,11 +112,11 @@
     md5name = "1f467e5bb703f12cbbb09d5cf67ecf4a-converttexttonumber-1-5-0.oxt";
   }
   {
-    name = "curl-7.65.0.tar.xz";
-    url = "http://dev-www.libreoffice.org/src/curl-7.65.0.tar.xz";
-    sha256 = "7766d263929404f693905b5e5222aa0f2bdf8c66ab4b8758f0c0820a42b966cd";
+    name = "curl-7.71.0.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/curl-7.71.0.tar.xz";
+    sha256 = "cdf18794393d8bead915312708a9e5d819c6e9919de14b20d5c8e7987abd9772";
     md5 = "";
-    md5name = "7766d263929404f693905b5e5222aa0f2bdf8c66ab4b8758f0c0820a42b966cd-curl-7.65.0.tar.xz";
+    md5name = "cdf18794393d8bead915312708a9e5d819c6e9919de14b20d5c8e7987abd9772-curl-7.71.0.tar.xz";
   }
   {
     name = "libe-book-0.1.3.tar.xz";
@@ -161,11 +168,11 @@
     md5name = "6994be3555e23226630c587444be19d309b25b0fcf1f87df3b4e3f88943e5860-Firebird-3.0.0.32483-0.tar.bz2";
   }
   {
-    name = "fontconfig-2.12.6.tar.bz2";
-    url = "http://dev-www.libreoffice.org/src/fontconfig-2.12.6.tar.bz2";
-    sha256 = "cf0c30807d08f6a28ab46c61b8dbd55c97d2f292cf88f3a07d3384687f31f017";
+    name = "fontconfig-2.13.91.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/fontconfig-2.13.91.tar.gz";
+    sha256 = "19e5b1bc9d013a52063a44e1307629711f0bfef35b9aca16f9c793971e2eb1e5";
     md5 = "";
-    md5name = "cf0c30807d08f6a28ab46c61b8dbd55c97d2f292cf88f3a07d3384687f31f017-fontconfig-2.12.6.tar.bz2";
+    md5name = "19e5b1bc9d013a52063a44e1307629711f0bfef35b9aca16f9c793971e2eb1e5-fontconfig-2.13.91.tar.gz";
   }
   {
     name = "crosextrafonts-20130214.tar.gz";
@@ -315,11 +322,11 @@
     md5name = "db8d87ea720ea9d5edc5388fc7a0497bb11ba9fe972245e0f7f4c7e8b1e1e84d-freetype-2.9.1.tar.bz2";
   }
   {
-    name = "glm-0.9.4.6-libreoffice.zip";
-    url = "http://dev-www.libreoffice.org/src/bae83fa5dc7f081768daace6e199adc3-glm-0.9.4.6-libreoffice.zip";
-    sha256 = "d0312c360efe04dd048b3311fe375ff36f1993b4c2e3cb58c81062990532904a";
-    md5 = "bae83fa5dc7f081768daace6e199adc3";
-    md5name = "bae83fa5dc7f081768daace6e199adc3-glm-0.9.4.6-libreoffice.zip";
+    name = "glm-0.9.9.7.zip";
+    url = "http://dev-www.libreoffice.org/src/glm-0.9.9.7.zip";
+    sha256 = "c5e167c042afd2d7ad642ace6b643863baeb33880781983563e1ab68a30d3e95";
+    md5 = "";
+    md5name = "c5e167c042afd2d7ad642ace6b643863baeb33880781983563e1ab68a30d3e95-glm-0.9.9.7.zip";
   }
   {
     name = "gpgme-1.9.0.tar.bz2";
@@ -329,11 +336,11 @@
     md5name = "1b29fedb8bfad775e70eafac5b0590621683b2d9869db994568e6401f4034ceb-gpgme-1.9.0.tar.bz2";
   }
   {
-    name = "graphite2-minimal-1.3.13.tgz";
-    url = "http://dev-www.libreoffice.org/src/graphite2-minimal-1.3.13.tgz";
-    sha256 = "d47d387161db7f7ebade1920aa7cbdc797e79772597d8b55e80b58d1071bcc36";
+    name = "graphite2-minimal-1.3.14.tgz";
+    url = "http://dev-www.libreoffice.org/src/graphite2-minimal-1.3.14.tgz";
+    sha256 = "b8e892d8627c41888ff121e921455b9e2d26836978f2359173d19825da62b8fc";
     md5 = "";
-    md5name = "d47d387161db7f7ebade1920aa7cbdc797e79772597d8b55e80b58d1071bcc36-graphite2-minimal-1.3.13.tgz";
+    md5name = "b8e892d8627c41888ff121e921455b9e2d26836978f2359173d19825da62b8fc-graphite2-minimal-1.3.14.tgz";
   }
   {
     name = "harfbuzz-2.6.0.tar.xz";
@@ -364,18 +371,18 @@
     md5name = "5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz";
   }
   {
-    name = "icu4c-65_1-src.tgz";
-    url = "http://dev-www.libreoffice.org/src/icu4c-65_1-src.tgz";
-    sha256 = "53e37466b3d6d6d01ead029e3567d873a43a5d1c668ed2278e253b683136d948";
+    name = "icu4c-67_1-src.tgz";
+    url = "http://dev-www.libreoffice.org/src/icu4c-67_1-src.tgz";
+    sha256 = "94a80cd6f251a53bd2a997f6f1b5ac6653fe791dfab66e1eb0227740fb86d5dc";
     md5 = "";
-    md5name = "53e37466b3d6d6d01ead029e3567d873a43a5d1c668ed2278e253b683136d948-icu4c-65_1-src.tgz";
+    md5name = "94a80cd6f251a53bd2a997f6f1b5ac6653fe791dfab66e1eb0227740fb86d5dc-icu4c-67_1-src.tgz";
   }
   {
-    name = "icu4c-65_1-data.zip";
-    url = "http://dev-www.libreoffice.org/src/icu4c-65_1-data.zip";
-    sha256 = "06359a7c4ad125ba11d3ac30617cd4b932f1214f611db96573032726574896b6";
+    name = "icu4c-67_1-data.zip";
+    url = "http://dev-www.libreoffice.org/src/icu4c-67_1-data.zip";
+    sha256 = "7c16a59cc8c06128b7ecc1dc4fc056b36b17349312829b17408b9e67b05c4a7e";
     md5 = "";
-    md5name = "06359a7c4ad125ba11d3ac30617cd4b932f1214f611db96573032726574896b6-icu4c-65_1-data.zip";
+    md5name = "7c16a59cc8c06128b7ecc1dc4fc056b36b17349312829b17408b9e67b05c4a7e-icu4c-67_1-data.zip";
   }
   {
     name = "flow-engine-0.9.4.zip";
@@ -462,11 +469,11 @@
     md5name = "b24890e2bb46e12e72a79f7e965f409f4e16466d00e1dd15d93d73ee6b592523-libjpeg-turbo-1.5.3.tar.gz";
   }
   {
-    name = "language-subtag-registry-2019-09-16.tar.bz2";
-    url = "http://dev-www.libreoffice.org/src/language-subtag-registry-2019-09-16.tar.bz2";
-    sha256 = "07b66bc0f2786fde55f6bbcbcb4a455a846eb8e2351c8ce3d0a219a73693736a";
+    name = "language-subtag-registry-2020-04-01.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/language-subtag-registry-2020-04-01.tar.bz2";
+    sha256 = "fb1ee0dabfd956a445fbe9f351e86a52767808558f20f4256e67fbbb3768e9da";
     md5 = "";
-    md5name = "07b66bc0f2786fde55f6bbcbcb4a455a846eb8e2351c8ce3d0a219a73693736a-language-subtag-registry-2019-09-16.tar.bz2";
+    md5name = "fb1ee0dabfd956a445fbe9f351e86a52767808558f20f4256e67fbbb3768e9da-language-subtag-registry-2020-04-01.tar.bz2";
   }
   {
     name = "JLanguageTool-1.7.0.tar.bz2";
@@ -532,11 +539,11 @@
     md5name = "d6242790324f1432fb0a6fae71b6851f520b2c5a87675497cf8ea14c2924d52e-liblangtag-0.6.2.tar.bz2";
   }
   {
-    name = "libnumbertext-1.0.5.tar.xz";
-    url = "http://dev-www.libreoffice.org/src/libnumbertext-1.0.5.tar.xz";
-    sha256 = "e1c9086b4cecb6b25f180316f30740dfabe6a4dbaf70dddc34276fc839e4f4f7";
+    name = "libnumbertext-1.0.6.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libnumbertext-1.0.6.tar.xz";
+    sha256 = "739f220b34bf7cb731c09de2921771d644d37dfd276c45564401e5759f10ae57";
     md5 = "";
-    md5name = "e1c9086b4cecb6b25f180316f30740dfabe6a4dbaf70dddc34276fc839e4f4f7-libnumbertext-1.0.5.tar.xz";
+    md5name = "739f220b34bf7cb731c09de2921771d644d37dfd276c45564401e5759f10ae57-libnumbertext-1.0.6.tar.xz";
   }
   {
     name = "ltm-1.0.zip";
@@ -546,11 +553,11 @@
     md5name = "083daa92d8ee6f4af96a6143b12d7fc8fe1a547e14f862304f7281f8f7347483-ltm-1.0.zip";
   }
   {
-    name = "xmlsec1-1.2.28.tar.gz";
-    url = "http://dev-www.libreoffice.org/src/xmlsec1-1.2.28.tar.gz";
-    sha256 = "13eec4811ea30e3f0e16a734d1dbf7f9d246a71d540b48d143a07b489f6222d4";
+    name = "xmlsec1-1.2.30.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/xmlsec1-1.2.30.tar.gz";
+    sha256 = "2d84360b03042178def1d9ff538acacaed2b3a27411db7b2874f1612ed71abc8";
     md5 = "";
-    md5name = "13eec4811ea30e3f0e16a734d1dbf7f9d246a71d540b48d143a07b489f6222d4-xmlsec1-1.2.28.tar.gz";
+    md5name = "2d84360b03042178def1d9ff538acacaed2b3a27411db7b2874f1612ed71abc8-xmlsec1-1.2.30.tar.gz";
   }
   {
     name = "libxml2-2.9.10.tar.gz";
@@ -581,18 +588,18 @@
     md5name = "940caef1ec7c78e0c34b0f6b94fe42d0f2022915ffc78643d28538a5cfd0f40e-lxml-4.1.1.tgz";
   }
   {
-    name = "mariadb_client-2.0.0-src.tar.gz";
-    url = "http://dev-www.libreoffice.org/src/a233181e03d3c307668b4c722d881661-mariadb_client-2.0.0-src.tar.gz";
-    sha256 = "fd2f751dea049c1907735eb236aeace1d811d6a8218118b00bbaa9b84dc5cd60";
-    md5 = "a233181e03d3c307668b4c722d881661";
-    md5name = "a233181e03d3c307668b4c722d881661-mariadb_client-2.0.0-src.tar.gz";
+    name = "mariadb-connector-c-3.1.8-src.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/mariadb-connector-c-3.1.8-src.tar.gz";
+    sha256 = "431434d3926f4bcce2e5c97240609983f60d7ff50df5a72083934759bb863f7b";
+    md5 = "";
+    md5name = "431434d3926f4bcce2e5c97240609983f60d7ff50df5a72083934759bb863f7b-mariadb-connector-c-3.1.8-src.tar.gz";
   }
   {
-    name = "mdds-1.5.0.tar.bz2";
-    url = "http://dev-www.libreoffice.org/src/mdds-1.5.0.tar.bz2";
-    sha256 = "144d6debd7be32726f332eac14ef9f17e2d3cf89cb3250eb31a7127e0789680d";
+    name = "mdds-1.6.0.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/mdds-1.6.0.tar.bz2";
+    sha256 = "f1585c9cbd12f83a6d43d395ac1ab6a9d9d5d77f062c7b5f704e24ed72dae07d";
     md5 = "";
-    md5name = "144d6debd7be32726f332eac14ef9f17e2d3cf89cb3250eb31a7127e0789680d-mdds-1.5.0.tar.bz2";
+    md5name = "f1585c9cbd12f83a6d43d395ac1ab6a9d9d5d77f062c7b5f704e24ed72dae07d-mdds-1.6.0.tar.bz2";
   }
   {
     name = "mDNSResponder-878.200.35.tar.gz";
@@ -609,11 +616,11 @@
     md5name = "ef36c1a1aabb2ba3b0bedaaafe717bf4480be2ba8de6f3894be5fd3702b013ba-libmspub-0.1.4.tar.xz";
   }
   {
-    name = "libmwaw-0.3.15.tar.xz";
-    url = "http://dev-www.libreoffice.org/src/libmwaw-0.3.15.tar.xz";
-    sha256 = "0440bb09f05e3419423d8dfa36ee847056ebfd837f9cbc091fdb5b057daab0b1";
+    name = "libmwaw-0.3.16.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libmwaw-0.3.16.tar.xz";
+    sha256 = "0c639edba5297bde5575193bf5b5f2f469956beaff5c0206d91ce9df6bde1868";
     md5 = "";
-    md5name = "0440bb09f05e3419423d8dfa36ee847056ebfd837f9cbc091fdb5b057daab0b1-libmwaw-0.3.15.tar.xz";
+    md5name = "0c639edba5297bde5575193bf5b5f2f469956beaff5c0206d91ce9df6bde1868-libmwaw-0.3.16.tar.xz";
   }
   {
     name = "mythes-1.2.4.tar.gz";
@@ -644,11 +651,11 @@
     md5name = "2c7b21892f84a4c67546f84611eccdad6259875c971e98ddb027da66ea0ac9c2-libodfgen-0.1.6.tar.bz2";
   }
   {
-    name = "odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies-971c54fd38a968f5860014b44301872706f9e540.jar";
-    url = "http://dev-www.libreoffice.org/src/../extern/odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies-971c54fd38a968f5860014b44301872706f9e540.jar";
-    sha256 = "984f2a479df79e27e7b01a5815ac53ae64e07746b882262d8a64566494515504";
+    name = "odfvalidator-0.9.0-RC2-SNAPSHOT-jar-with-dependencies-2726ab578664434a545f8379a01a9faffac0ae73.jar";
+    url = "http://dev-www.libreoffice.org/src/../extern/odfvalidator-0.9.0-RC2-SNAPSHOT-jar-with-dependencies-2726ab578664434a545f8379a01a9faffac0ae73.jar";
+    sha256 = "d55495ab3a86544650587de2a72180ddf8bfc6376d14ddfa923992dbc86a06e0";
     md5 = "";
-    md5name = "984f2a479df79e27e7b01a5815ac53ae64e07746b882262d8a64566494515504-odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies-971c54fd38a968f5860014b44301872706f9e540.jar";
+    md5name = "d55495ab3a86544650587de2a72180ddf8bfc6376d14ddfa923992dbc86a06e0-odfvalidator-0.9.0-RC2-SNAPSHOT-jar-with-dependencies-2726ab578664434a545f8379a01a9faffac0ae73.jar";
   }
   {
     name = "officeotron-0.7.4-master.jar";
@@ -672,11 +679,11 @@
     md5name = "14cb464efe7ac6b54799b34456bd69558a749a4931ecfd9cf9f71d7881cac7bc-openssl-1.0.2t.tar.gz";
   }
   {
-    name = "liborcus-0.15.3.tar.gz";
-    url = "http://dev-www.libreoffice.org/src/liborcus-0.15.3.tar.gz";
-    sha256 = "0dd26f3f2e611c51df9ee02d6dbf08887989eaa417b73f6877cd0d94df795fc2";
+    name = "liborcus-0.15.4.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/liborcus-0.15.4.tar.bz2";
+    sha256 = "cfb2aa60825f2a78589ed030c07f46a1ee16ef8a2d1bf2279192fbc1ae5a5f61";
     md5 = "";
-    md5name = "0dd26f3f2e611c51df9ee02d6dbf08887989eaa417b73f6877cd0d94df795fc2-liborcus-0.15.3.tar.gz";
+    md5name = "cfb2aa60825f2a78589ed030c07f46a1ee16ef8a2d1bf2279192fbc1ae5a5f61-liborcus-0.15.4.tar.bz2";
   }
   {
     name = "owncloud-android-library-0.9.4-no-binary-deps.tar.gz";
@@ -693,11 +700,11 @@
     md5name = "66adacd705a7d19895e08eac46d1e851332adf2e736c566bef1164e7a442519d-libpagemaker-0.0.4.tar.xz";
   }
   {
-    name = "pdfium-3963.tar.bz2";
-    url = "http://dev-www.libreoffice.org/src/pdfium-3963.tar.bz2";
-    sha256 = "80d4d6bd8faec226936fcde5521c6e92c0c645126ac3ae72dd2c160ca1749895";
+    name = "pdfium-4137.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/pdfium-4137.tar.bz2";
+    sha256 = "9a2f9bddca935a263f06c81003483473a525ccd0f4e517bc75fceb914d4c54b6";
     md5 = "";
-    md5name = "80d4d6bd8faec226936fcde5521c6e92c0c645126ac3ae72dd2c160ca1749895-pdfium-3963.tar.bz2";
+    md5name = "9a2f9bddca935a263f06c81003483473a525ccd0f4e517bc75fceb914d4c54b6-pdfium-4137.tar.bz2";
   }
   {
     name = "pixman-0.34.0.tar.gz";
@@ -791,11 +798,18 @@
     md5name = "6988d394b62c3494635b6f0760bc3079f9a0cd380baf0f6b075af1eb9fa5e700-serf-1.2.1.tar.bz2";
   }
   {
-    name = "libstaroffice-0.0.6.tar.xz";
-    url = "http://dev-www.libreoffice.org/src/libstaroffice-0.0.6.tar.xz";
-    sha256 = "6b00e1ed8194e6072be4441025d1b888e39365727ed5b23e0e8c92c4009d1ec4";
+    name = "skia-m84-c1baf6e1c2a5454148adb516f0f833483b5a0353.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/skia-m84-c1baf6e1c2a5454148adb516f0f833483b5a0353.tar.xz";
+    sha256 = "f88dc1a500d29c87ef5251c5a6c3ea66aa4c7daf0cf5d349ece64b36f7623be0";
+    md5 = "";
+    md5name = "f88dc1a500d29c87ef5251c5a6c3ea66aa4c7daf0cf5d349ece64b36f7623be0-skia-m84-c1baf6e1c2a5454148adb516f0f833483b5a0353.tar.xz";
+  }
+  {
+    name = "libstaroffice-0.0.7.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libstaroffice-0.0.7.tar.xz";
+    sha256 = "f94fb0ad8216f97127bedef163a45886b43c62deac5e5b0f5e628e234220c8db";
     md5 = "";
-    md5name = "6b00e1ed8194e6072be4441025d1b888e39365727ed5b23e0e8c92c4009d1ec4-libstaroffice-0.0.6.tar.xz";
+    md5name = "f94fb0ad8216f97127bedef163a45886b43c62deac5e5b0f5e628e234220c8db-libstaroffice-0.0.7.tar.xz";
   }
   {
     name = "swingExSrc.zip";
@@ -840,11 +854,11 @@
     md5name = "99b3f7f8832385748582ab8130fbb9e5607bd5179bebf9751ac1d51a53099d1c-libwpg-0.3.3.tar.xz";
   }
   {
-    name = "libwps-0.4.10.tar.xz";
-    url = "http://dev-www.libreoffice.org/src/libwps-0.4.10.tar.xz";
-    sha256 = "1421e034286a9f96d3168a1c54ea570ee7aa008ca07b89de005ad5ce49fb29ca";
+    name = "libwps-0.4.11.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libwps-0.4.11.tar.xz";
+    sha256 = "a8fdaabc28654a975fa78c81873ac503ba18f0d1cdbb942f470a21d29284b4d1";
     md5 = "";
-    md5name = "1421e034286a9f96d3168a1c54ea570ee7aa008ca07b89de005ad5ce49fb29ca-libwps-0.4.10.tar.xz";
+    md5name = "a8fdaabc28654a975fa78c81873ac503ba18f0d1cdbb942f470a21d29284b4d1-libwps-0.4.11.tar.xz";
   }
   {
     name = "xsltml_2.1.2.zip";
diff --git a/pkgs/applications/office/libreoffice/src-fresh/primary.nix b/pkgs/applications/office/libreoffice/src-fresh/primary.nix
index 5b62b0df95449..1beb8f1156c4a 100644
--- a/pkgs/applications/office/libreoffice/src-fresh/primary.nix
+++ b/pkgs/applications/office/libreoffice/src-fresh/primary.nix
@@ -6,10 +6,10 @@ rec {
     inherit sha256;
   };
 
-  major = "6";
-  minor = "4";
-  patch = "3";
-  tweak = "2";
+  major = "7";
+  minor = "0";
+  patch = "0";
+  tweak = "3";
 
   subdir = "${major}.${minor}.${patch}";
 
@@ -17,13 +17,13 @@ rec {
 
   src = fetchurl {
     url = "https://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
-    sha256 = "1cmbrhha7mlflnlbpla8fix07cxcgkdb7krnrgs1bylf31y5855w";
+    sha256 = "sha256-sl+vgnLGIWtyw8Y/ovVsxThdOMg2Gby4SRaiaqvZVB0=";
   };
 
   # FIXME rename
   translations = fetchSrc {
     name = "translations";
-    sha256 = "06z9hz4m3kdcljjc6y5s18001axjibj9xiyakdndkl9pmnnhn9h3";
+    sha256 = "sha256-i3yfD5cmM6D9BctjablIFRqfibjrwLAaxxPIsQdk0sY=";
   };
 
   # the "dictionaries" archive is not used for LO build because we already build hunspellDicts packages from
@@ -31,6 +31,6 @@ rec {
 
   help = fetchSrc {
     name = "help";
-    sha256 = "0mpgrwg8z1q38j03l6m1sdpcplyjd5nz1nqaa13vfkryj2lflw45";
+    sha256 = "sha256-hYBEEPRmh16zgGZBUN20xfTY6qL07aKMC1lC/0ij9/0=";
   };
 }
diff --git a/pkgs/applications/office/libreoffice/src-still/override.nix b/pkgs/applications/office/libreoffice/src-still/override.nix
index c0880aa3ecb1d..54935dd7072da 100644
--- a/pkgs/applications/office/libreoffice/src-still/override.nix
+++ b/pkgs/applications/office/libreoffice/src-still/override.nix
@@ -1,6 +1,13 @@
-{ stdenv, kdeIntegration, ... }:
+{ stdenv, kdeIntegration, fetchpatch, ... }:
 attrs:
 {
+  patches = attrs.patches or [ ] ++ [
+    (fetchpatch {
+      url = "https://git.pld-linux.org/gitweb.cgi?p=packages/libreoffice.git;a=blob_plain;f=poppler-0.86.patch;h=76b8356d5f22ef537a83b0f9b0debab591f152fe;hb=a2737a61353e305a9ee69640fb20d4582c218008";
+      name = "poppler-0.86.patch";
+      sha256 = "0q6k4l8imgp8ailcv0qx5l83afyw44hah24fi7gjrm9xgv5sbb8j";
+    })
+  ];
   postConfigure = attrs.postConfigure + ''
     sed -e '/CPPUNIT_TEST(Import_Export_Import);/d' -i './sw/qa/extras/inc/swmodeltestbase.hxx'
   '';
diff --git a/pkgs/applications/office/portfolio/default.nix b/pkgs/applications/office/portfolio/default.nix
index 73f50998f6371..b3538dd2b7130 100644
--- a/pkgs/applications/office/portfolio/default.nix
+++ b/pkgs/applications/office/portfolio/default.nix
@@ -24,11 +24,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "PortfolioPerformance";
-  version = "0.47.0";
+  version = "0.48.1";
 
   src = fetchurl {
     url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz";
-    sha256 = "0l328wvikdmm2i0kbpv9qwd0mkbs24y89cgfg28swhcvpywjpk36";
+    sha256 = "0xhxp4iglggv6rqwsg0xjn8z46v910rj372abkaviwa3cqzf7gdb";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/office/skrooge/default.nix b/pkgs/applications/office/skrooge/default.nix
index 66d028144ff24..e84e849674194 100644
--- a/pkgs/applications/office/skrooge/default.nix
+++ b/pkgs/applications/office/skrooge/default.nix
@@ -7,11 +7,11 @@
 
 mkDerivation rec {
   pname = "skrooge";
-  version = "2.22.1";
+  version = "2.23.0";
 
   src = fetchurl {
     url = "http://download.kde.org/stable/skrooge/${pname}-${version}.tar.xz";
-    sha256 = "194vwnc2fi7cgdhasxpr1gxjqqsiqadhadvv43d0lxaxys6f360h";
+    sha256 = "10k3j67x5xm5whsvb84k9p70bkn4jbbbvdfan7q49dh2mmpair5a";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/office/todo.txt-cli/default.nix b/pkgs/applications/office/todo.txt-cli/default.nix
index d711440fc340e..489b759f48c4b 100644
--- a/pkgs/applications/office/todo.txt-cli/default.nix
+++ b/pkgs/applications/office/todo.txt-cli/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl }:
 let
-  version = "2.11.0";
+  version = "2.12.0";
 in stdenv.mkDerivation {
   pname = "todo.txt-cli";
   inherit version;
 
   src = fetchurl {
     url = "https://github.com/ginatrapani/todo.txt-cli/releases/download/v${version}/todo.txt_cli-${version}.tar.gz";
-    sha256 = "0majx8lcvhh8ji54qi0sxr833wchdss95fjc92byd8g3lfz27rsz";
+    sha256 = "0gni8nj3wwdf7nl98d1bpx064bz5xari65hb998qqr92h0n9pnp6";
   };
 
   installPhase = ''
diff --git a/pkgs/applications/office/wpsoffice/default.nix b/pkgs/applications/office/wpsoffice/default.nix
index cc8412e1ac5f3..e34c548f6010b 100644
--- a/pkgs/applications/office/wpsoffice/default.nix
+++ b/pkgs/applications/office/wpsoffice/default.nix
@@ -12,7 +12,7 @@
 , cups
 , dbus
 , expat
-, ffmpeg_3
+, ffmpeg
 , fontconfig
 , freetype
 , gdk-pixbuf
@@ -71,7 +71,7 @@ stdenv.mkDerivation rec {
     cairo
     dbus.lib
     expat
-    ffmpeg_3
+    ffmpeg
     fontconfig
     freetype
     gdk-pixbuf
diff --git a/pkgs/applications/office/zotero/default.nix b/pkgs/applications/office/zotero/default.nix
index c0690415d6773..d615f2a06f110 100644
--- a/pkgs/applications/office/zotero/default.nix
+++ b/pkgs/applications/office/zotero/default.nix
@@ -1,6 +1,7 @@
 { stdenv, fetchurl, wrapGAppsHook, makeDesktopItem
 , atk
 , cairo
+, coreutils
 , curl
 , cups
 , dbus-glib
@@ -35,11 +36,11 @@
 
 stdenv.mkDerivation rec {
   pname = "zotero";
-  version = "5.0.88";
+  version = "5.0.89";
 
   src = fetchurl {
     url = "https://download.zotero.org/client/release/${version}/Zotero-${version}_linux-x86_64.tar.bz2";
-    sha256 = "19r9jmakr04raqripfnqm2b9gwpi52lklrrqgqyb1x35a4xvnj62";
+    sha256 = "18p4qnnfx9f2frk7f2nk1d7jr4cjzg9z7lfzrk7vq11qgbjdpqbl";
   };
 
   nativeBuildInputs = [ wrapGAppsHook ];
@@ -131,6 +132,12 @@ stdenv.mkDerivation rec {
          "$out/usr/lib/zotero-bin-${version}/{}" \;
   '';
 
+  preFixup = ''
+    gappsWrapperArgs+=(
+      --prefix PATH : ${stdenv.lib.makeBinPath [ coreutils ]}
+    )
+  '';
+
   meta = with stdenv.lib; {
     homepage = "https://www.zotero.org";
     description = "Collect, organize, cite, and share your research sources";
diff --git a/pkgs/applications/radio/chirp/default.nix b/pkgs/applications/radio/chirp/default.nix
index 377619f5088c4..8fb719567d55a 100644
--- a/pkgs/applications/radio/chirp/default.nix
+++ b/pkgs/applications/radio/chirp/default.nix
@@ -4,11 +4,11 @@
 }:
 python2.pkgs.buildPythonApplication rec {
   pname = "chirp-daily";
-  version = "20200430";
+  version = "20200807";
 
   src = fetchurl {
     url = "https://trac.chirp.danplanet.com/chirp_daily/daily-${version}/${pname}-${version}.tar.gz";
-    sha256 = "060fzplgmpfrk6wkfaasx7phpfk90mmylk6drbwzk4f9r1655vda";
+    sha256 = "60b682793698e6427ad485546eae3a044b8290a220f190633158a2fb0e942fa0";
   };
 
   propagatedBuildInputs = with python2.pkgs; [
diff --git a/pkgs/applications/radio/fldigi/default.nix b/pkgs/applications/radio/fldigi/default.nix
index b4815803ccde0..af93b7ee65d6d 100644
--- a/pkgs/applications/radio/fldigi/default.nix
+++ b/pkgs/applications/radio/fldigi/default.nix
@@ -2,12 +2,12 @@
   libsamplerate, libpulseaudio, libXinerama, gettext, pkgconfig, alsaLib }:
 
 stdenv.mkDerivation rec {
-  version = "4.1.13";
+  version = "4.1.14";
   pname = "fldigi";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "0mlq4z5k3h466plij8hg9xn5xbjxk557g4pw13cplpf32fhng224";
+    sha256 = "0hr6xbv01xf7z4r2jxxhn8xjdmca2198q4m9glh4877dllvfq6xj";
   };
 
   buildInputs = [ libXinerama gettext hamlib fltk14 libjpeg libpng portaudio
diff --git a/pkgs/applications/radio/welle-io/default.nix b/pkgs/applications/radio/welle-io/default.nix
index ce4c872821ec5..77969c5ca3f92 100644
--- a/pkgs/applications/radio/welle-io/default.nix
+++ b/pkgs/applications/radio/welle-io/default.nix
@@ -3,7 +3,7 @@
 , faad2, rtl-sdr, soapysdr-with-plugins, libusb-compat-0_1, fftwSinglePrec, lame, mpg123 }:
 let
 
-  version = "2.1";
+  version = "2.2";
 
 in mkDerivation {
 
@@ -14,7 +14,7 @@ in mkDerivation {
     owner = "AlbrechtL";
     repo = "welle.io";
     rev = "v${version}";
-    sha256 = "1j63gdbd66d6rfjsxwdm2agrcww1rs4438kg7313h6zixpcc1icj";
+    sha256 = "04fpm6sc431dl9i5h53xpd6k85j22sv8aawl7b6wv2fzpfsd9fwa";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/pkgs/applications/science/biology/star/default.nix b/pkgs/applications/science/biology/star/default.nix
index 3f362e6d46a40..c331acbfe7058 100644
--- a/pkgs/applications/science/biology/star/default.nix
+++ b/pkgs/applications/science/biology/star/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "star";
-  version = "2.7.4a";
+  version = "2.7.5c";
 
   src = fetchFromGitHub {
     repo = "STAR";
     owner = "alexdobin";
     rev = version;
-    sha256 = "1y4g7h6f95pa9g8kv1aihrfglavqymdx4mnqh6ascs50ibm7zdmz";
+    sha256 = "1plx9akrzwjk7f2j94l9ss0apg0asqmrf2bp0728d4bvlhnzmjyy";
   };
 
   sourceRoot = "source/source";
diff --git a/pkgs/applications/science/electronics/openhantek6022/default.nix b/pkgs/applications/science/electronics/openhantek6022/default.nix
index 5a70831d8249d..ad8fa3c7a7ae9 100644
--- a/pkgs/applications/science/electronics/openhantek6022/default.nix
+++ b/pkgs/applications/science/electronics/openhantek6022/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "openhantek6022";
-  version = "3.1.1";
+  version = "3.1.2";
 
   src = fetchFromGitHub {
     owner = "OpenHantek";
     repo = "OpenHantek6022";
     rev = version;
-    sha256 = "17b0qmz7g0nk7n7jhbh5xhs135dpj9kv41n42vvpdzwr6z5rk4qm";
+    sha256 = "104j7d3i5y6jd20c2z3l10sr6sgdy8iki3g9mlwhddnr8x6nzc03";
   };
 
   nativeBuildInputs = [ cmake makeWrapper ];
diff --git a/pkgs/applications/science/math/R/default.nix b/pkgs/applications/science/math/R/default.nix
index 52da3b4a1ac93..717b240c1cce2 100644
--- a/pkgs/applications/science/math/R/default.nix
+++ b/pkgs/applications/science/math/R/default.nix
@@ -12,11 +12,11 @@
 assert (!blas.isILP64) && (!lapack.isILP64);
 
 stdenv.mkDerivation rec {
-  name = "R-4.0.0";
+  name = "R-4.0.2";
 
   src = fetchurl {
     url = "https://cran.r-project.org/src/base/R-4/${name}.tar.gz";
-    sha256 = "0h1995smlyiyhx7gpg9paxsfqrcn6g9bbp5h9r47i6an3clv1gh6";
+    sha256 = "0xdy3dy2bzdiba8z94hjykyra8si8a5q15s0bri7c26scjrymg6k";
   };
 
   dontUseImakeConfigure = true;
diff --git a/pkgs/applications/science/math/geogebra/geogebra6.nix b/pkgs/applications/science/math/geogebra/geogebra6.nix
index c068225bb6bcd..65caff82ead10 100644
--- a/pkgs/applications/science/math/geogebra/geogebra6.nix
+++ b/pkgs/applications/science/math/geogebra/geogebra6.nix
@@ -2,14 +2,14 @@
 stdenv.mkDerivation rec{
 
   name = "geogebra-${version}";
-  version = "6-0-598-0";
+  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/20200815132422/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 = "1klazsgrpmfd6vjzpdcfl5x8qhhbh6vx2g6id4vg16ac4sjdrb0c";
+    sha256 = "1l49rvfkil2cz6r7sa2mi0p6hvb6p66jv3x6xj8hjqls4l3sfhkm";
   };
 
   dontConfigure = true;
diff --git a/pkgs/applications/science/math/nasc/default.nix b/pkgs/applications/science/math/nasc/default.nix
index 002acbf3875fa..9d14df5a79885 100644
--- a/pkgs/applications/science/math/nasc/default.nix
+++ b/pkgs/applications/science/math/nasc/default.nix
@@ -1,7 +1,9 @@
 { stdenv
 , fetchFromGitHub
-, fetchpatch
 , pkgconfig
+, python3
+, meson
+, ninja
 , vala
 , gtk3
 , glib
@@ -9,52 +11,67 @@
 , libsoup
 , gtksourceview
 , libgee
-, cmake
+, nix-update-script
+, webkitgtk
 , libqalculate
-, cln
+, intltool
+, gnuplot
 , wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
   pname = "nasc";
-  version = "0.5.4";
+  version = "0.7.5";
 
   src = fetchFromGitHub {
     owner = "parnold-x";
     repo = pname;
     rev = version;
-    sha256 = "036v3dx8yasp19j88lflibqnpfi5d0nk7qkcnr80zn1lvawf4wgn";
+    sha256 = "kSRc5RLkI6SBJirUYw6swZi8IJhaL3y74b2Zw8kh2XA=";
+    fetchSubmodules = true;
   };
 
-  patches = [
-    # fix build with gcc9
-    (fetchpatch {
-      url = "https://github.com/parnold-x/nasc/commit/46b9b80e228b6b86001bded45d85e073a9411549.patch";
-      sha256 = "1sm2aw0xhw2chk036r231nmp2f2ypxcmzggwljkn7wfzgg3h1mx3";
-    })
-  ];
-
   nativeBuildInputs = [
-    cmake
-    vala
+    glib # post_install.py
+    gtk3 # post_install.py
+    intltool # for libqalculate
+    meson
+    ninja
     pkgconfig
+    python3
+    vala
     wrapGAppsHook
   ];
 
   buildInputs = [
-    cln
-    libsoup
-    gtk3
     glib
+    gtk3
     gtksourceview
     libgee
-    libqalculate
     pantheon.elementary-icon-theme
     pantheon.granite
-  ];
+    webkitgtk
+    # We add libqalculate's runtime dependencies because nasc has it as a modified subproject.
+  ] ++ libqalculate.buildInputs ++ libqalculate.propagatedBuildInputs;
+
+  postPatch = ''
+    chmod +x meson/post_install.py
+    patchShebangs meson/post_install.py
+
+    # patch subproject. same code in libqalculate expression
+    substituteInPlace subprojects/libqalculate/libqalculate/Calculator-plot.cc \
+      --replace 'commandline = "gnuplot"' 'commandline = "${gnuplot}/bin/gnuplot"' \
+      --replace '"gnuplot - ' '"${gnuplot}/bin/gnuplot - '
+  '';
+
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
 
   meta = with stdenv.lib; {
-    description = "Do maths like a normal person";
+    description = "Do maths like a normal person, designed for elementary OS";
     longDescription = ''
       It’s an app where you do maths like a normal person. It lets you
       type whatever you want and smartly figures out what is math and
@@ -63,7 +80,7 @@ stdenv.mkDerivation rec {
       the equations it’s used in.
     '';
     homepage = "https://github.com/parnold-x/nasc";
-    maintainers = with maintainers; [ samdroid-apps ];
+    maintainers = pantheon.maintainers;
     platforms = platforms.linux;
     license = licenses.gpl3Plus;
   };
diff --git a/pkgs/applications/science/math/nauty/default.nix b/pkgs/applications/science/math/nauty/default.nix
index c1d408213b98e..d75fc9731cdf9 100644
--- a/pkgs/applications/science/math/nauty/default.nix
+++ b/pkgs/applications/science/math/nauty/default.nix
@@ -10,15 +10,13 @@ stdenv.mkDerivation rec {
     sha256 = "1nym0p2djws8ylkpr0kgpxfa6fxdlh46cmvz0gn5vd02jzgs0aww";
   };
   outputs = [ "out" "dev" ];
-  configureFlags = {
+  configureFlags = [
     # Prevent nauty from sniffing some cpu features. While those are very
     # widely available, it can lead to nasty bugs when they are not available:
     # https://groups.google.com/forum/#!topic/sage-packaging/Pe4SRDNYlhA
-    default        = [ "--disable-clz" "--disable-popcnt" ];
-    westmere       = [ "--disable-clz" ];
-    sandybridge    = [ "--disable-clz" ];
-    ivybridge      = [ "--disable-clz" ];
-  }.${stdenv.hostPlatform.platform.gcc.arch or "default"} or [];
+    "--${if stdenv.hostPlatform.sse4_2Support then "enable" else "disable"}-popcnt"
+    "--${if stdenv.hostPlatform.sse4_aSupport then "enable" else "disable"}-clz"
+  ];
   installPhase = ''
     mkdir -p "$out"/{bin,share/doc/nauty} "$dev"/{lib,include/nauty}
 
diff --git a/pkgs/applications/science/math/wxmaxima/default.nix b/pkgs/applications/science/math/wxmaxima/default.nix
index a6afc95ac0936..7a81a0d679a3f 100644
--- a/pkgs/applications/science/math/wxmaxima/default.nix
+++ b/pkgs/applications/science/math/wxmaxima/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wxmaxima";
-  version = "20.04.0";
+  version = "20.06.6";
 
   src = fetchFromGitHub {
     owner = "wxMaxima-developers";
     repo = "wxmaxima";
     rev = "Version-${version}";
-    sha256 = "0vrjxzfgmjdzm1rgl0crz4b4badl14jwh032y3xkcdvjl5j67lp3";
+    sha256 = "054f7n5kx75ng5j20rd5q27n9xxk03mrd7sbxyym1lsswzimqh4w";
   };
 
   buildInputs = [ wxGTK maxima gnome3.adwaita-icon-theme ];
diff --git a/pkgs/applications/science/misc/rink/default.nix b/pkgs/applications/science/misc/rink/default.nix
index 9a24496c6adc3..b868706a05f99 100644
--- a/pkgs/applications/science/misc/rink/default.nix
+++ b/pkgs/applications/science/misc/rink/default.nix
@@ -1,17 +1,17 @@
 { stdenv, fetchFromGitHub, rustPlatform, openssl, pkg-config, ncurses }:
 
 rustPlatform.buildRustPackage rec {
-  version = "0.5.0";
+  version = "0.5.1";
   pname = "rink";
 
   src = fetchFromGitHub {
     owner = "tiffany352";
     repo = "rink-rs";
     rev = "v${version}";
-    sha256 = "1z51n25hmgqkn4bm9yj18j8p4pk5i1x3f3z70vl1vx3v109jhff0";
+    sha256 = "1s67drjzd4cf93hpm7b2facfd6y1x0s60aq6pygj7i02bm0cb9l9";
   };
 
-  cargoSha256 = "0p63py8q4iqj5rrsir9saj7dvkrafx63z493k7p5xb2mah7b21lb";
+  cargoSha256 = "1wd70y13lly7nccaqlv7w8znxfal0fzyf9d67y5c3aikj7hkzfin";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ncurses ];
diff --git a/pkgs/applications/version-management/git-and-tools/delta/default.nix b/pkgs/applications/version-management/git-and-tools/delta/default.nix
index 12b63f7c38703..b3af66c3ffd7b 100644
--- a/pkgs/applications/version-management/git-and-tools/delta/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/delta/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "delta";
-  version = "0.4.1";
+  version = "0.4.3";
 
   src = fetchFromGitHub {
     owner = "dandavison";
     repo = pname;
     rev = version;
-    sha256 = "15vpmalv2195aff3xd85nr99xn2dbc0k1lmlf7xp293s79kibrz7";
+    sha256 = "0g7jg6bxxihplxzq3ixdm24d36xd7xlwpazz8qj040m981cj123i";
   };
 
-  cargoSha256 = "0vgjijrxpfrgwh17dpxhgq8jdr6f9cj0mkr5ni9m3w8qv545a1ix";
+  cargoSha256 = "0q73adygyddjyajwwbkrhwss4f8ynxsga5yz4ac5fk5rzmda75rv";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/version-management/git-and-tools/gita/default.nix b/pkgs/applications/version-management/git-and-tools/gita/default.nix
index 5fe6b34fd3b53..3e07a93458b7a 100644
--- a/pkgs/applications/version-management/git-and-tools/gita/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gita/default.nix
@@ -9,11 +9,11 @@
 }:
 
 buildPythonApplication rec {
-  version = "0.10.9";
+  version = "0.10.10";
   pname = "gita";
 
   src = fetchFromGitHub {
-    sha256 = "0wilyf4nnn2jyxrfqs8krya3zvhj6x36szsp9xhb6h08g1ihzp5i";
+    sha256 = "0k7hicncbrqvhmpq1w3v1309bqij6izw31xs8xcb8is85dvi754h";
     rev = "v${version}";
     repo = "gita";
     owner = "nosarthur";
@@ -45,6 +45,7 @@ buildPythonApplication rec {
 
   postInstall = ''
     installShellCompletion --bash --name gita ${src}/.gita-completion.bash
+    installShellCompletion --zsh --name gita ${src}/.gita-completion.zsh
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/version-management/git-lfs/default.nix b/pkgs/applications/version-management/git-lfs/default.nix
index 80f236559f9e1..2df8b335bda71 100644
--- a/pkgs/applications/version-management/git-lfs/default.nix
+++ b/pkgs/applications/version-management/git-lfs/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "git-lfs";
-  version = "2.11.0";
+  version = "2.12.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "git-lfs";
     repo = "git-lfs";
-    sha256 = "05qd96bn2cl7gn5qarbcv6scdpj28qiwdfzalamqk5jjiidpmng5";
+    sha256 = "0pyvlcy6jxh0vzpsmywlbzwwdyj3jkcclnqb6sg786mmwrnqzj88";
   };
 
   goPackagePath = "github.com/git-lfs/git-lfs";
@@ -30,6 +30,7 @@ buildGoPackage rec {
   meta = with stdenv.lib; {
     description = "Git extension for versioning large files";
     homepage    = "https://git-lfs.github.com/";
+    changelog   = "https://github.com/git-lfs/git-lfs/releases/tag/v${version}";
     license     = [ licenses.mit ];
     maintainers = [ maintainers.twey maintainers.marsam ];
   };
diff --git a/pkgs/applications/version-management/gitea/default.nix b/pkgs/applications/version-management/gitea/default.nix
index 70169bd90e5fb..5005b9137a888 100644
--- a/pkgs/applications/version-management/gitea/default.nix
+++ b/pkgs/applications/version-management/gitea/default.nix
@@ -8,11 +8,11 @@ with stdenv.lib;
 
 buildGoPackage rec {
   pname = "gitea";
-  version = "1.12.3";
+  version = "1.12.4";
 
   src = fetchurl {
     url = "https://github.com/go-gitea/gitea/releases/download/v${version}/gitea-src-${version}.tar.gz";
-    sha256 = "05z1pp2lnbr82pw97wy0j0qk2vv1qv9c46df13d03xdfsc3gsm50";
+    sha256 = "0zz3mwf1yhncvi6pl52lcwbl7k4kkrqyw8q3476akwszjn79n83c";
   };
 
   unpackPhase = ''
diff --git a/pkgs/applications/version-management/gitea/static-root-path.patch b/pkgs/applications/version-management/gitea/static-root-path.patch
index 985dbe04082cd..e486397d9cf13 100644
--- a/pkgs/applications/version-management/gitea/static-root-path.patch
+++ b/pkgs/applications/version-management/gitea/static-root-path.patch
@@ -1,13 +1,13 @@
 diff --git a/modules/setting/setting.go b/modules/setting/setting.go
-index 714015c47..a2f85337e 100644
+index 45e55a2..9d18ee4 100644
 --- a/modules/setting/setting.go
 +++ b/modules/setting/setting.go
-@@ -641,7 +641,7 @@ func NewContext() {
- 	PortToRedirect = sec.Key("PORT_TO_REDIRECT").MustString("80")
+@@ -667,7 +667,7 @@ func NewContext() {
  	OfflineMode = sec.Key("OFFLINE_MODE").MustBool()
  	DisableRouterLog = sec.Key("DISABLE_ROUTER_LOG").MustBool()
--	StaticRootPath = sec.Key("STATIC_ROOT_PATH").MustString(AppWorkPath)
-+	StaticRootPath = sec.Key("STATIC_ROOT_PATH").MustString("@data@")
+ 	if len(StaticRootPath) == 0 {
+-		StaticRootPath = AppWorkPath
++		StaticRootPath = "@data@"
+ 	}
+ 	StaticRootPath = sec.Key("STATIC_ROOT_PATH").MustString(StaticRootPath)
  	StaticCacheTime = sec.Key("STATIC_CACHE_TIME").MustDuration(6 * time.Hour)
- 	AppDataPath = sec.Key("APP_DATA_PATH").MustString(path.Join(AppWorkPath, "data"))
- 	EnableGzip = sec.Key("ENABLE_GZIP").MustBool()
diff --git a/pkgs/applications/version-management/gitkraken/default.nix b/pkgs/applications/version-management/gitkraken/default.nix
index 6457ac3af0d53..dedddb6b39da9 100644
--- a/pkgs/applications/version-management/gitkraken/default.nix
+++ b/pkgs/applications/version-management/gitkraken/default.nix
@@ -3,7 +3,7 @@
 , libX11, libXi, libxcb, libXext, libXcursor, glib, libXScrnSaver, libxkbfile, libXtst
 , nss, nspr, cups, fetchzip, expat, gdk-pixbuf, libXdamage, libXrandr, dbus
 , makeDesktopItem, openssl, wrapGAppsHook, at-spi2-atk, at-spi2-core, libuuid
-, e2fsprogs, krb5
+, e2fsprogs, krb5, libdrm, mesa
 }:
 
 with stdenv.lib;
@@ -13,11 +13,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "gitkraken";
-  version = "7.2.0";
+  version = "7.3.0";
 
   src = fetchzip {
     url = "https://release.axocdn.com/linux/GitKraken-v${version}.tar.gz";
-    sha256 = "0nrrcwikx6dx1j1s0b80gh1s932zvxmijpddqp6a1vh3ddc5v1mp";
+    sha256 = "0q9imaka79p3krmcrxvnxzb2gprczybnw8d4y9p4icbmdbyb6h70";
   };
 
   dontBuild = true;
@@ -61,6 +61,8 @@ stdenv.mkDerivation rec {
     libuuid
     e2fsprogs
     krb5
+    libdrm
+    mesa
   ];
 
   desktopItem = makeDesktopItem {
diff --git a/pkgs/applications/version-management/sparkleshare/default.nix b/pkgs/applications/version-management/sparkleshare/default.nix
new file mode 100644
index 0000000000000..d4ae8a95b3ee6
--- /dev/null
+++ b/pkgs/applications/version-management/sparkleshare/default.nix
@@ -0,0 +1,87 @@
+{
+  appindicator-sharp,
+  coreutils,
+  fetchFromGitHub,
+  git,
+  glib,
+  gtk-sharp-3_0,
+  lib,
+  makeWrapper,
+  meson,
+  mono,
+  ninja,
+  notify-sharp,
+  openssh,
+  openssl,
+  pkg-config,
+  stdenv,
+  symlinkJoin,
+  webkit2-sharp,
+  xdg_utils,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "sparkleshare";
+  version = "3.28";
+
+  src = fetchFromGitHub {
+    owner = "hbons";
+    repo = "SparkleShare";
+    rev = version;
+    sha256 = "sha256:1x5nv2f3mrsr4a336bz5kc2lzkzilfh43bxy2yqhhjp2dgb20497";
+  };
+
+  nativeBuildInputs = [
+    makeWrapper
+    meson
+    mono
+    ninja
+    pkg-config
+  ];
+
+  buildInputs = [
+    appindicator-sharp
+    gtk-sharp-3_0
+    notify-sharp
+    webkit2-sharp
+  ];
+
+  patchPhase = ''
+    # Nix will manage the icon cache.
+    echo '#!/bin/sh' >scripts/post-install.sh
+  '';
+
+  postInstall = ''
+    wrapProgram $out/bin/sparkleshare \
+        --set PATH ${symlinkJoin {
+          name = "mono-path";
+          paths = [
+            coreutils
+            git
+            glib
+            mono
+            openssh
+            openssl
+            xdg_utils
+          ];
+        }}/bin \
+        --set MONO_GAC_PREFIX ${lib.concatStringsSep ":" [
+          appindicator-sharp
+          gtk-sharp-3_0
+          webkit2-sharp
+        ]} \
+        --set LD_LIBRARY_PATH ${lib.makeLibraryPath [
+          appindicator-sharp
+          gtk-sharp-3_0.gtk3
+          webkit2-sharp
+          webkit2-sharp.webkitgtk
+        ]}
+  '';
+
+  meta = {
+    description = "Share and collaborate by syncing with any Git repository instantly. Linux, macOS, and Windows.";
+    homepage = "https://sparkleshare.org";
+    license = lib.licenses.gpl3;
+    maintainers = with lib.maintainers; [ kevincox ];
+  };
+}
diff --git a/pkgs/applications/version-management/sublime-merge/default.nix b/pkgs/applications/version-management/sublime-merge/default.nix
index 7a0c0d1f1edd0..e5f7f8cbeb0da 100644
--- a/pkgs/applications/version-management/sublime-merge/default.nix
+++ b/pkgs/applications/version-management/sublime-merge/default.nix
@@ -4,13 +4,13 @@ let
   common = opts: callPackage (import ./common.nix opts);
 in {
   sublime-merge = common {
-    buildVersion = "2020";
-    sha256 = "0r5qqappaiicc4srk08az2vx42m7b6a75yn2ji5pv4w4085hlrzp";
+    buildVersion = "2033";
+    sha256 = "1ym806df2hsw1ml932mshlw7cdxfi6jwa3mkh5m7gbmn7qwpm4xb";
   } {};
 
   sublime-merge-dev = common {
-    buildVersion = "2022";
-    sha256 = "0fhxz6nx24wbspn7vfli3pvfv6fdbd591m619pvivig3scpidj61";
+    buildVersion = "2031";
+    sha256 = "1vv3qcggicy5fb4nm2k5a6nw1f20cwxgrmn3xv2dvgx7mpzbhknp";
     dev = true;
   } {};
 }
diff --git a/pkgs/applications/version-management/yadm/default.nix b/pkgs/applications/version-management/yadm/default.nix
index fab89d663fa7f..37fd8055662d8 100644
--- a/pkgs/applications/version-management/yadm/default.nix
+++ b/pkgs/applications/version-management/yadm/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, git, gnupg }:
 
-let version = "2.4.0"; in
+let version = "2.5.0"; in
 stdenv.mkDerivation {
   pname = "yadm";
   inherit version;
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
     owner  = "TheLocehiliosan";
     repo   = "yadm";
     rev    = version;
-    sha256 = "0kpahznrkxkyj92vrhwjvldg2affi1askgwvpgbs4mg40f92szlp";
+    sha256 = "128qlx8mp7h5ifapqqgsj3fwghn3q6x6ya0y33h5r7gnassd3njr";
   };
 
   dontConfigure = true;
diff --git a/pkgs/applications/video/catt/default.nix b/pkgs/applications/video/catt/default.nix
index 7f2b85511518d..d22657d651cbc 100644
--- a/pkgs/applications/video/catt/default.nix
+++ b/pkgs/applications/video/catt/default.nix
@@ -1,12 +1,19 @@
-{ buildPythonApplication, fetchPypi, lib
-, youtube-dl
-, PyChromecast
-, click
-, ifaddr
-, requests
-}:
+{ lib, python3 }:
 
-buildPythonApplication rec {
+let
+  py = python3.override {
+    packageOverrides = self: super: {
+      PyChromecast = super.PyChromecast.overridePythonAttrs (oldAttrs: rec {
+        version = "6.0.0";
+        src = oldAttrs.src.override {
+          inherit version;
+          sha256 = "05f8r3b2pdqbl76hwi5sv2xdi1r7g9lgm69x8ja5g22mn7ysmghm";
+        };
+      });
+    };
+  };
+
+in with py.pkgs; buildPythonApplication rec {
   pname = "catt";
   version = "0.11.0";
 
diff --git a/pkgs/applications/video/pitivi/default.nix b/pkgs/applications/video/pitivi/default.nix
index 276c2fa787f22..b1c1dd285e205 100644
--- a/pkgs/applications/video/pitivi/default.nix
+++ b/pkgs/applications/video/pitivi/default.nix
@@ -1,15 +1,28 @@
-{ stdenv, fetchFromGitHub, fetchurl, pkgconfig, intltool, itstool, python3, wrapGAppsHook
-, python3Packages, gst_all_1, gtk3
-, gobject-introspection, librsvg, gnome3, libnotify, gsound
-, meson, ninja, gsettings-desktop-schemas
+{ stdenv
+, fetchFromGitHub
+, fetchurl
+, fetchpatch
+, pkg-config
+, gettext
+, itstool
+, python3
+, wrapGAppsHook
+, python3Packages
+, gst_all_1
+, gtk3
+, gobject-introspection
+, librsvg
+, gnome3
+, libnotify
+, gsound
+, meson
+, ninja
+, gsettings-desktop-schemas
 }:
 
 let
-  version = "0.999";
-
-  # gst-transcoder will eventually be merged with gstreamer (according to
-  # gst-transcoder 1.8.0 release notes). For now the only user is pitivi so we
-  # don't bother exposing the package to all of nixpkgs.
+  # gst-transcoder was merged with gst-plugins-bad 1.18.
+  # TODO: switch to that once available.
   gst-transcoder = stdenv.mkDerivation rec {
     version = "1.14.1";
     pname = "gst-transcoder";
@@ -19,45 +32,120 @@ let
       rev = version;
       sha256 = "16skiz9akavssii529v9nr8zd54w43livc14khdyzv164djg9q8f";
     };
-    nativeBuildInputs = [ pkgconfig meson ninja gobject-introspection python3 ];
-    buildInputs = with gst_all_1; [ gstreamer gst-plugins-base ];
+    nativeBuildInputs = [
+      pkg-config
+      meson
+      ninja
+      gobject-introspection
+      python3
+    ];
+    buildInputs = with gst_all_1; [
+      gstreamer
+      gst-plugins-base
+    ];
   };
 
 in python3Packages.buildPythonApplication rec {
-  name = "pitivi-${version}";
+  pname = "pitivi";
+  version = "0.999";
+
+  format = "other";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/pitivi/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/pitivi/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "0mxp2p4gg976fp1vj3rb5rmpl5mqfzncm9vw2719irl32f1qlvyb";
   };
 
-  format = "other";
-
   patches = [
     # By default, the build picks up environment variables like PYTHONPATH
     # and saves them to the generated binary. This would make the build-time
     # dependencies part of the closure so we remove it.
     ./prevent-closure-contamination.patch
-  ];
 
-  postPatch = ''
-    patchShebangs ./getenvvar.py
-  '';
+    # Port from intltool to gettext.
+    # Needed for the following patches to apply.
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/pitivi/commit/89b1053f2516c594f414c5c67c835471bce44b67.patch";
+      sha256 = "8yhArzAtZC+WjHftcSDrstBlT8j6WlGHffU9Nj+ny+c=";
+      excludes = [ "po/POTFILES.in" ];
+    })
 
-  nativeBuildInputs = [ meson ninja pkgconfig intltool itstool python3 wrapGAppsHook ];
+    # Complete switching to gst-transcoder in gst-plugins-bad.
+    # Otherwise there will likely be conflics.
+    # TODO: Apply this patch once we are using gst-transcoder from gst-plugins-bad.
+    # (fetchpatch {
+    #   url = "https://gitlab.gnome.org/GNOME/pitivi/commit/51ae6533ee26ffd47e453eb5f5ad8cd46f57d15e.patch";
+    #   sha256 = "zxJm+E5o+oZ3lW6wYNY/ERo2g4NmCjoY8oV+uScq8j8=";
+    # })
+
+    # Generate renderer.so on macOS instead of dylib.
+    # Needed for the following patch to apply.
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/pitivi/commit/bcacadcafabf8911efb0fddc8d57329237d08cd1.patch";
+      sha256 = "2BM5acIwOgdr1L9vhtMMN4trrLuqCg/K6v6ZYtD1Fjw=";
+      postFetch = ''
+        sed -i -e "s/1.90.0.1/0.999/g" "$out"
+      '';
+    })
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/pitivi/commit/0a3cc054a2c20b59f5aaaaa307de3c9af3c0d270.patch";
+      sha256 = "6DhqRlxFWFFdLwGoFem+vPt8x7v732KMVjMF9fypMK4=";
+      postFetch = ''
+        sed "$out" -i \
+          -e "s/1.90.0.1/0.999/g" \
+          -e "s/\(-python_dep.*\)/\1\n /" \
+          -e "s/-1,9 +1,16/-1,10 +1,17/"
+      '';
+    })
+  ];
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    gettext
+    itstool
+    python3
+    wrapGAppsHook
+  ];
 
   buildInputs = [
-    gobject-introspection gtk3 librsvg gnome3.gnome-desktop gsound
+    gobject-introspection
+    gtk3
+    librsvg
+    gnome3.gnome-desktop
+    gsound
     gnome3.adwaita-icon-theme
-    gsettings-desktop-schemas libnotify
+    gsettings-desktop-schemas
+    libnotify
     gst-transcoder
   ] ++ (with gst_all_1; [
-    gstreamer gst-editing-services
-    gst-plugins-base (gst-plugins-good.override { gtkSupport = true; })
-    gst-plugins-bad gst-plugins-ugly gst-libav gst-validate
+    gstreamer
+    gst-editing-services
+    gst-plugins-base
+    (gst-plugins-good.override { gtkSupport = true; })
+    gst-plugins-bad
+    gst-plugins-ugly
+    gst-libav
+    gst-validate
   ]);
 
-  pythonPath = with python3Packages; [ pygobject3 gst-python pyxdg numpy pycairo matplotlib dbus-python ];
+  pythonPath = with python3Packages; [
+    pygobject3
+    gst-python
+    pyxdg
+    numpy
+    pycairo
+    matplotlib
+    dbus-python
+  ];
+
+  postPatch = ''
+    patchShebangs ./getenvvar.py
+
+    # fetchpatch does not support renamings
+    mv data/org.pitivi.Pitivi-mime.xml data/org.pitivi.Pitivi-mime.xml.in
+  '';
 
   passthru = {
     updateScript = gnome3.updateScript {
diff --git a/pkgs/applications/video/vokoscreen-ng/default.nix b/pkgs/applications/video/vokoscreen-ng/default.nix
new file mode 100644
index 0000000000000..600bc715ffb41
--- /dev/null
+++ b/pkgs/applications/video/vokoscreen-ng/default.nix
@@ -0,0 +1,71 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, fetchpatch
+, pkg-config
+, qmake
+, qttools
+, gstreamer
+, libX11
+, qtbase
+, qtmultimedia
+, qtx11extras
+
+, gst-plugins-base
+, gst-plugins-good
+, gst-plugins-bad
+, gst-plugins-ugly
+}:
+mkDerivation rec {
+
+  pname = "vokoscreen-ng";
+  version = "3.0.5";
+
+  src = fetchFromGitHub {
+    owner = "vkohaupt";
+    repo = "vokoscreenNG";
+    rev = version;
+    sha256 = "1spyqw8h8bkc1prdb9aixiw5h3hk3gp2p0nj934bnwq04kmfp660";
+  };
+
+  patches = [
+    # Better linux integration
+    (fetchpatch {
+      url = "https://github.com/vkohaupt/vokoscreenNG/commit/0a3784095ecca582f7eb09551ceb34c309d83637.patch";
+      sha256 = "1iibimv8xfxxfk44kkbrkay37ibdndjvs9g53mxr8x8vrsp917bz";
+    })
+  ];
+
+  qmakeFlags = [ "src/vokoscreenNG.pro" ];
+
+  nativeBuildInputs = [ qttools pkg-config qmake ];
+  buildInputs = [
+    gstreamer
+    libX11
+    qtbase
+    qtmultimedia
+    qtx11extras
+
+    gst-plugins-base
+    gst-plugins-good
+    gst-plugins-bad
+    gst-plugins-ugly
+  ];
+
+  postPatch = ''
+    substituteInPlace src/vokoscreenNG.pro \
+      --replace lrelease-qt5 lrelease
+  '';
+
+  postInstall = ''
+    qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0")
+  '';
+
+  meta = with lib; {
+    description = "User friendly Open Source screencaster for Linux and Windows";
+    license = licenses.gpl2Plus;
+    homepage = "https://github.com/vkohaupt/vokoscreenNG";
+    maintainers = with maintainers; [ shamilton ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/video/webcamoid/default.nix b/pkgs/applications/video/webcamoid/default.nix
index 41304c21ac30f..aa559215fe89c 100644
--- a/pkgs/applications/video/webcamoid/default.nix
+++ b/pkgs/applications/video/webcamoid/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, pkgconfig, libxcb, mkDerivation, qmake
 , qtbase, qtdeclarative, qtquickcontrols, qtquickcontrols2
-, ffmpeg-full, gstreamer, gst_all_1, libpulseaudio, alsaLib, jack2
+, ffmpeg-full, gst_all_1, libpulseaudio, alsaLib, jack2
 , v4l-utils }:
 mkDerivation rec {
   pname = "webcamoid";
@@ -17,7 +17,7 @@ mkDerivation rec {
     libxcb
     qtbase qtdeclarative qtquickcontrols qtquickcontrols2
     ffmpeg-full
-    gstreamer gst_all_1.gst-plugins-base
+    gst_all_1.gstreamer gst_all_1.gst-plugins-base
     alsaLib libpulseaudio jack2
     v4l-utils
   ];
diff --git a/pkgs/applications/virtualization/podman/default.nix b/pkgs/applications/virtualization/podman/default.nix
index 7d214b4abd3f7..871592c88c2fb 100644
--- a/pkgs/applications/virtualization/podman/default.nix
+++ b/pkgs/applications/virtualization/podman/default.nix
@@ -16,13 +16,13 @@
 
 buildGoModule rec {
   pname = "podman";
-  version = "2.0.5";
+  version = "2.0.6";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "podman";
     rev = "v${version}";
-    sha256 = "0db0q52va9w8aprzx08xnv6y84l4x4lc113sd97hjgjnhknp8d3m";
+    sha256 = "1kl8cfsqwfbjl14mbp58wrxfm90y2w58x6138zq0sn4jzwwpy1a4";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/applications/window-managers/sxhkd/default.nix b/pkgs/applications/window-managers/sxhkd/default.nix
index 2404129b165d9..ac28abc31d3f8 100644
--- a/pkgs/applications/window-managers/sxhkd/default.nix
+++ b/pkgs/applications/window-managers/sxhkd/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sxhkd";
-  version = "0.6.1";
+  version = "0.6.2";
 
   src = fetchFromGitHub {
     owner = "baskerville";
     repo = "sxhkd";
     rev = version;
-    sha256 = "0j7bl2l06r0arrjzpz7al9j6cwzc730knbsijp7ixzz96pq7xa2h";
+    sha256 = "1winwzdy9yxvxnrv8gqpigl9y0c2px27mnms62bdilp4x6llrs9r";
   };
 
   buildInputs = [ asciidoc libxcb xcbutil xcbutilkeysyms xcbutilwm ];
diff --git a/pkgs/applications/window-managers/weston/default.nix b/pkgs/applications/window-managers/weston/default.nix
index 4a09cac9344ac..a1f3b3708a42c 100644
--- a/pkgs/applications/window-managers/weston/default.nix
+++ b/pkgs/applications/window-managers/weston/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl, meson, ninja, pkgconfig
-, wayland, libGL, mesa, libxkbcommon, cairo, libxcb
+{ stdenv, fetchurl, meson, ninja, pkg-config, wayland
+, libGL, mesa, libxkbcommon, cairo, libxcb
 , libXcursor, xlibsWrapper, udev, libdrm, mtdev, libjpeg, pam, dbus, libinput, libevdev
 , colord, lcms2, pipewire ? null
 , pango ? null, libunwind ? null, freerdp ? null, vaapi ? null, libva ? null
@@ -10,14 +10,14 @@
 with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "weston";
-  version = "8.0.0";
+  version = "9.0.0";
 
   src = fetchurl {
     url = "https://wayland.freedesktop.org/releases/${pname}-${version}.tar.xz";
-    sha256 = "0j3q0af3595g4wcicldgy749zm2g2b6bswa6ya8k075a5sdv863m";
+    sha256 = "1zlql0xgiqc3pvgbpnnvj4xvpd91pwva8qf83xfb23if377ddxaw";
   };
 
-  nativeBuildInputs = [ meson ninja pkgconfig ];
+  nativeBuildInputs = [ meson ninja pkg-config wayland ];
   buildInputs = [
     wayland libGL mesa libxkbcommon cairo libxcb libXcursor xlibsWrapper udev libdrm
     mtdev libjpeg pam dbus libinput libevdev pango libunwind freerdp vaapi libva
@@ -45,9 +45,19 @@ stdenv.mkDerivation rec {
   passthru.providedSessions = [ "weston" ];
 
   meta = {
-    description = "Reference implementation of a Wayland compositor";
-    homepage = "https://wayland.freedesktop.org/";
-    license = licenses.mit;
+    description = "A lightweight and functional Wayland compositor";
+    longDescription = ''
+      Weston is the reference implementation of a Wayland compositor, as well
+      as a useful environment in and of itself.
+      Out of the box, Weston provides a very basic desktop, or a full-featured
+      environment for non-desktop uses such as automotive, embedded, in-flight,
+      industrial, kiosks, set-top boxes and TVs. It also provides a library
+      allowing other projects to build their own full-featured environments on
+      top of Weston's core. A small suite of example or demo clients are also
+      provided.
+    '';
+    homepage = "https://gitlab.freedesktop.org/wayland/weston";
+    license = licenses.mit; # Expat version
     platforms = platforms.linux;
     maintainers = with maintainers; [ primeos ];
   };
diff --git a/pkgs/build-support/appimage/default.nix b/pkgs/build-support/appimage/default.nix
index f15ce80d6d9c8..e6014e35aef92 100644
--- a/pkgs/build-support/appimage/default.nix
+++ b/pkgs/build-support/appimage/default.nix
@@ -163,7 +163,6 @@ rec {
       SDL_mixer
       SDL2_ttf
       SDL2_mixer
-      gstreamer
       libappindicator-gtk2
       libcaca
       libcanberra
diff --git a/pkgs/build-support/build-bazel-package/default.nix b/pkgs/build-support/build-bazel-package/default.nix
index bbcbc4e2e11df..4d22a329e4161 100644
--- a/pkgs/build-support/build-bazel-package/default.nix
+++ b/pkgs/build-support/build-bazel-package/default.nix
@@ -37,6 +37,12 @@ args@{
 # 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
 , ...
 }:
 
@@ -170,6 +176,8 @@ in stdenv.mkDerivation (fBuildAttrs // {
     done
   '' + fBuildAttrs.preConfigure or "";
 
+  inherit dontAddBazelOpts;
+
   buildPhase = fBuildAttrs.buildPhase or ''
     runHook preBuild
 
@@ -181,20 +189,22 @@ in stdenv.mkDerivation (fBuildAttrs // {
     #
     copts=()
     host_copts=()
-    for flag in $NIX_CFLAGS_COMPILE; do
-      copts+=( "--copt=$flag" )
-      host_copts+=( "--host_copt=$flag" )
-    done
-    for flag in $NIX_CXXSTDLIB_COMPILE; do
-      copts+=( "--copt=$flag" )
-      host_copts+=( "--host_copt=$flag" )
-    done
     linkopts=()
     host_linkopts=()
-    for flag in $NIX_LDFLAGS; do
-      linkopts+=( "--linkopt=-Wl,$flag" )
-      host_linkopts+=( "--host_linkopt=-Wl,$flag" )
-    done
+    if [ -z "''${dontAddBazelOpts:-}" ]; then
+      for flag in $NIX_CFLAGS_COMPILE; do
+        copts+=( "--copt=$flag" )
+        host_copts+=( "--host_copt=$flag" )
+      done
+      for flag in $NIX_CXXSTDLIB_COMPILE; do
+        copts+=( "--copt=$flag" )
+        host_copts+=( "--host_copt=$flag" )
+      done
+      for flag in $NIX_LDFLAGS; do
+        linkopts+=( "--linkopt=-Wl,$flag" )
+        host_linkopts+=( "--host_linkopt=-Wl,$flag" )
+      done
+    fi
 
     BAZEL_USE_CPP_ONLY_TOOLCHAIN=1 \
     USER=homeless-shelter \
diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix
index 6ee287e287bcc..bfb15f2f78366 100644
--- a/pkgs/build-support/cc-wrapper/default.nix
+++ b/pkgs/build-support/cc-wrapper/default.nix
@@ -64,18 +64,26 @@ let
   # older compilers (for example bootstrap's GCC 5) fail with -march=too-modern-cpu
   isGccArchSupported = arch:
     if isGNU then
-      { skylake        = versionAtLeast ccVersion "6.0";
+      { # Intel
+        skylake        = versionAtLeast ccVersion "6.0";
         skylake-avx512 = versionAtLeast ccVersion "6.0";
         cannonlake     = versionAtLeast ccVersion "8.0";
         icelake-client = versionAtLeast ccVersion "8.0";
         icelake-server = versionAtLeast ccVersion "8.0";
         knm            = versionAtLeast ccVersion "8.0";
+        # AMD
+        znver1         = versionAtLeast ccVersion "6.0";
+        znver2         = versionAtLeast ccVersion "9.0";
       }.${arch} or true
     else if isClang then
-      { cannonlake     = versionAtLeast ccVersion "5.0";
+      { # Intel
+        cannonlake     = versionAtLeast ccVersion "5.0";
         icelake-client = versionAtLeast ccVersion "7.0";
         icelake-server = versionAtLeast ccVersion "7.0";
         knm            = versionAtLeast ccVersion "7.0";
+        # AMD
+        znver1         = versionAtLeast ccVersion "4.0";
+        znver2         = versionAtLeast ccVersion "9.0";
       }.${arch} or true
     else
       false;
diff --git a/pkgs/build-support/release/default.nix b/pkgs/build-support/release/default.nix
index 6b9aa9a8c4ad9..6aaa0338f0cc8 100644
--- a/pkgs/build-support/release/default.nix
+++ b/pkgs/build-support/release/default.nix
@@ -41,10 +41,6 @@ rec {
       doCoverityAnalysis = true;
     } // args);
 
-  gcovReport = args: import ./gcov-report.nix (
-    { inherit runCommand lcov rsync;
-    } // args);
-
   rpmBuild = args: import ./rpm-build.nix (
     { inherit vmTools;
     } // args);
diff --git a/pkgs/build-support/release/gcov-report.nix b/pkgs/build-support/release/gcov-report.nix
deleted file mode 100644
index 8ce5c0488a7d5..0000000000000
--- a/pkgs/build-support/release/gcov-report.nix
+++ /dev/null
@@ -1,49 +0,0 @@
-{ runCommand, lcov, rsync, coverageRuns, lcovFilter ? [ "/nix/store/*" ], baseDirHack ? false }:
-
-runCommand "coverage"
-  { buildInputs = [ lcov rsync ];
-    inherit lcovFilter baseDirHack;
-  }
-  ''
-    mkdir -p $TMPDIR/gcov $out/nix-support $out/coverage
-    info=$out/coverage/full.info
-
-    for p in ${toString coverageRuns}; do
-        if [ -f $p/nix-support/hydra-build-products ]; then
-            cat $p/nix-support/hydra-build-products >> $out/nix-support/hydra-build-products
-        fi
-
-        [ ! -e $p/nix-support/failed ] || touch $out/nix-support/failed
-
-        opts=
-        for d in $p/coverage-data/*; do
-            for i in $(cd $d/nix/store && ls); do
-                if ! [ -e /nix/store/$i/.build ]; then continue; fi
-                if [ -e $TMPDIR/gcov/nix/store/$i ]; then continue; fi
-                echo "copying $i..."
-                rsync -a /nix/store/$i/.build/* $TMPDIR/gcov/
-                if [ -n "$baseDirHack" ]; then
-                    opts="-b $TMPDIR/gcov/$(cd /nix/store/$i/.build && ls)"
-                fi
-            done
-
-            for i in $(cd $d/nix/store && ls); do
-                rsync -a $d/nix/store/$i/.build/* $TMPDIR/gcov/ --include '*/' --include '*.gcda' --exclude '*'
-            done
-        done
-
-        chmod -R u+w $TMPDIR/gcov
-
-        echo "producing info..."
-        geninfo --ignore-errors source,gcov $TMPDIR/gcov --output-file $TMPDIR/app.info $opts
-        cat $TMPDIR/app.info >> $info
-    done
-
-    echo "making report..."
-    set -o noglob
-    lcov --remove $info ''$lcovFilter > $info.tmp
-    set +o noglob
-    mv $info.tmp $info
-    genhtml --show-details $info -o $out/coverage
-    echo "report coverage $out/coverage" >> $out/nix-support/hydra-build-products
-  ''
diff --git a/pkgs/data/fonts/ibm-plex/default.nix b/pkgs/data/fonts/ibm-plex/default.nix
index 4e1001adb6937..cd33a834acc51 100644
--- a/pkgs/data/fonts/ibm-plex/default.nix
+++ b/pkgs/data/fonts/ibm-plex/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchzip }:
 
 let
-  version = "5.1.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 = "1lcbj6zkpnsq38s2xkx3z4d7bd43k630lmzmgdcv1w05gjij0pw5";
+  sha256 = "0w07fkhav2lqdyki7ipnkpji5ngwarlhsyliy0ip7cd29x24ys5h";
 
   meta = with lib; {
     description = "IBM Plex Typeface";
diff --git a/pkgs/data/fonts/recursive/default.nix b/pkgs/data/fonts/recursive/default.nix
index 9fc4b46c95225..39d63e7dd990a 100644
--- a/pkgs/data/fonts/recursive/default.nix
+++ b/pkgs/data/fonts/recursive/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchzip }:
 
 let
-  version = "1.062";
+  version = "1.064";
 in
 fetchzip {
   name = "recursive-${version}";
@@ -15,7 +15,7 @@ fetchzip {
     unzip -j $downloadedFile \*.woff2 -d $out/share/fonts/woff2
   '';
 
-  sha256 = "06qilfa0c897shh7m7rpwia02nay8cjwnizzzba27ylzy5pwd96r";
+  sha256 = "1pbrqk848nkaambvsz0n8f88xdm8hyib83in27rmal739qh9d1z6";
 
   meta = with lib; {
     homepage = "https://recursive.design/";
diff --git a/pkgs/data/icons/iconpack-obsidian/default.nix b/pkgs/data/icons/iconpack-obsidian/default.nix
index 01443578057e0..8fe21aabe36fc 100644
--- a/pkgs/data/icons/iconpack-obsidian/default.nix
+++ b/pkgs/data/icons/iconpack-obsidian/default.nix
@@ -1,20 +1,20 @@
-{ stdenv, fetchFromGitHub, gtk3, gnome-icon-theme, hicolor-icon-theme }:
+{ stdenv, fetchFromGitHub, gtk3, gnome-icon-theme, mint-x-icons, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec {
   pname = "iconpack-obsidian";
-  version = "4.12";
+  version = "4.13";
 
   src = fetchFromGitHub {
     owner = "madmaxms";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0139ps707mh1zkypaxsqzy58mmsm5whdxxx2nbsmqfswb7qisz2b";
+    sha256 = "1hh0hnd2d08l4n5r73fkngv08f8230pp94k9qq8xgmchvjfg6j8y";
   };
 
   nativeBuildInputs = [ gtk3 ];
 
-  propagatedBuildInputs = [ gnome-icon-theme hicolor-icon-theme ];
-  # still missing parent themes: Ambiant-MATE, Mint-X, Faenza-Dark, KFaenza
+  propagatedBuildInputs = [ gnome-icon-theme mint-x-icons hicolor-icon-theme ];
+  # still missing parent themes: Ambiant-MATE, Faenza-Dark, KFaenza
 
   dontDropIconThemeCache = true;
 
diff --git a/pkgs/data/icons/iso-flags/default.nix b/pkgs/data/icons/iso-flags/default.nix
new file mode 100644
index 0000000000000..b329a151c7282
--- /dev/null
+++ b/pkgs/data/icons/iso-flags/default.nix
@@ -0,0 +1,47 @@
+{ stdenv
+, fetchFromGitHub
+, perl
+, perlPackages
+, inkscape
+, pngcrush
+, librsvg
+, targets ? [ "all" ]
+}:
+
+stdenv.mkDerivation {
+  pname = "iso-flags";
+  version = "unstable-18012020";
+
+  src = fetchFromGitHub {
+    owner = "joielechong";
+    repo = "iso-country-flags-svg-collection";
+    rev = "9ebbd577b9a70fbfd9a1931be80c66e0d2f31a9d";
+    sha256 = "17bm7w4md56xywixfvp7vr3d6ihvxk3383i9i4rpmgm6qa9dyxdl";
+  };
+
+  nativeBuildInputs = [
+    perl
+    inkscape
+    librsvg
+    (perl.withPackages(pp: with pp; [ JSON XMLLibXML ]))
+  ];
+
+  postPatch = ''
+    patchShebangs .
+  '';
+
+  buildFlags = targets;
+
+  installPhase = ''
+    mkdir -p $out/share
+    mv build $out/share/iso-flags
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/joielechong/iso-country-flags-svg-collection";
+    description = "248 country flag SVG & PNG icons with different icon styles";
+    license = [ licenses.publicDomain ];
+    platforms = platforms.linux; # the output assets should work anywhere, but unsure about the tools to build them...
+    maintainers = [ maintainers.mkg20001 ];
+  };
+}
diff --git a/pkgs/data/misc/cldr-emoji-annotation/default.nix b/pkgs/data/misc/cldr-emoji-annotation/default.nix
index f2dc4213e0040..8164012b69aef 100644
--- a/pkgs/data/misc/cldr-emoji-annotation/default.nix
+++ b/pkgs/data/misc/cldr-emoji-annotation/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cldr-emoji-annotation";
-  version = "37.0_13.0_0_1";
+  version = "37.0_13.0_0_2";
 
   src = fetchFromGitHub {
     owner = "fujiwarat";
     repo = "cldr-emoji-annotation";
     rev = version;
-    sha256 = "19cqxyrap3p7djzzs99pndjbcvzmdv86n2m1sw2zqiwpirw7y1sy";
+    sha256 = "0la3h6l58j9jfjvzwz65x56ijx7sppirwpqbqc06if4c2g0kzswj";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/data/themes/marwaita-manjaro/default.nix b/pkgs/data/themes/marwaita-manjaro/default.nix
new file mode 100644
index 0000000000000..3217175ebd71f
--- /dev/null
+++ b/pkgs/data/themes/marwaita-manjaro/default.nix
@@ -0,0 +1,46 @@
+{ stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, gtk_engines
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "marwaita-manjaro";
+  version = "2020-08-29";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = "d97e852931732ae5134784d11b332eadd71b6bbf";
+    sha256 = "1qa2mlc6k82i4fkgbkahjz3fhghcf8rx1ayxw0r4xl21mkna7bfy";
+  };
+
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Marwaita* $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Manjaro Style (green version) of Marwaita GTK theme";
+    homepage = "https://www.pling.com/p/1351213/";
+    license = licenses.gpl3;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/yaru/default.nix b/pkgs/data/themes/yaru/default.nix
index 4e869469db65e..8e8a56d09da45 100644
--- a/pkgs/data/themes/yaru/default.nix
+++ b/pkgs/data/themes/yaru/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "yaru";
-  version = "20.10.1";
+  version = "20.10.2";
 
   src = fetchFromGitHub {
     owner = "ubuntu";
     repo = "yaru";
     rev = version;
-    sha256 = "08zws1qwvfr126fgdkqxxmpsqgfk02s31n90555bd5d66cfgdh72";
+    sha256 = "0vxs17nbahrdix1q9xj06nflm344lfgj2mrafsvyfcr2isn61iv6";
   };
 
   nativeBuildInputs = [ meson sassc pkg-config glib ninja python3 ];
diff --git a/pkgs/desktops/cinnamon/cinnamon-common/default.nix b/pkgs/desktops/cinnamon/cinnamon-common/default.nix
new file mode 100644
index 0000000000000..a67f04473c847
--- /dev/null
+++ b/pkgs/desktops/cinnamon/cinnamon-common/default.nix
@@ -0,0 +1,156 @@
+{ atk
+, autoreconfHook
+, cacert
+, fetchpatch
+, dbus
+, cinnamon-control-center
+, cinnamon-desktop
+, cinnamon-menus
+, cjs
+, fetchFromGitHub
+, gdk-pixbuf
+, libgnomekbd
+, glib
+, gobject-introspection
+, gtk3
+, intltool
+, json-glib
+, callPackage
+, libsoup
+, libstartup_notification
+, libXtst
+, muffin
+, networkmanager
+, pkgconfig
+, polkit
+, stdenv
+, wrapGAppsHook
+, libxml2
+, gtk-doc
+, gnome3
+, python3
+, keybinder3
+, cairo
+, xapps
+, upower
+, nemo
+, libnotify
+, accountsservice
+, gnome-online-accounts
+, glib-networking
+, pciutils
+, timezonemap
+}:
+
+let
+  libcroco = callPackage ./libcroco.nix { };
+in
+stdenv.mkDerivation rec {
+  pname = "cinnamon-common";
+  version = "4.4.1";
+
+  src = fetchFromGitHub {
+    owner = "linuxmint";
+    repo = "cinnamon";
+    rev = version;
+    sha256 = "0sv7nqd1l6c727qj30dcgdkvfh1wxpszpgmbdyh58ilmc8xklnqd";
+  };
+
+  patches = [
+    # remove dbus-glib
+    (fetchpatch {
+      url = "https://github.com/linuxmint/cinnamon/commit/ce99760fa15c3de2e095b9a5372eeaca646fbed1.patch";
+      sha256 = "0p2sbdi5w7sgblqbgisb6f8lcj1syzq5vlk0ilvwaqayxjylg8gz";
+    })
+  ];
+
+  buildInputs = [
+    # TODO: review if we really need this all
+    (python3.withPackages (pp: with pp; [ dbus-python setproctitle pygobject3 pycairo xapp pillow pytz tinycss pam pexpect ]))
+    atk
+    cacert
+    cinnamon-control-center
+    cinnamon-desktop
+    cinnamon-menus
+    cjs
+    dbus
+    gdk-pixbuf
+    glib
+    gtk3
+    json-glib
+    libcroco
+    libsoup
+    libstartup_notification
+    libXtst
+    muffin
+    networkmanager
+    pkgconfig
+    polkit
+    libxml2
+    libgnomekbd
+
+    # bindings
+    cairo
+    gnome3.caribou
+    keybinder3
+    upower
+    xapps
+    timezonemap
+    nemo
+    libnotify
+    accountsservice
+
+    # gsi bindings
+    gnome-online-accounts
+    glib-networking # for goa
+  ];
+
+  nativeBuildInputs = [
+    gobject-introspection
+    autoreconfHook
+    wrapGAppsHook
+    intltool
+    gtk-doc
+  ];
+
+  autoreconfPhase = ''
+    GTK_DOC_CHECK=false NOCONFIGURE=1 bash ./autogen.sh
+  '';
+
+  configureFlags = [ "--disable-static" "--with-ca-certificates=${cacert}/etc/ssl/certs/ca-bundle.crt" "--with-libxml=${libxml2.dev}/include/libxml2" "--enable-gtk-doc=no" ];
+
+  postPatch = ''
+    substituteInPlace src/Makefile.am \
+      --replace "\$(libdir)/muffin" "${muffin}/lib/muffin"
+    patchShebangs autogen.sh
+
+    find . -type f -exec sed -i \
+      -e s,/usr/share/cinnamon,$out/share/cinnamon,g \
+      -e s,/usr/share/locale,/run/current-system/sw/share/locale,g \
+      {} +
+
+    sed "s|/usr/share/sounds|/run/current-system/sw/share/sounds|g" -i ./files/usr/share/cinnamon/cinnamon-settings/bin/SettingsWidgets.py
+
+    sed "s|/usr/bin/upload-system-info|${xapps}/bin/upload-system-info|g" -i ./files/usr/share/cinnamon/cinnamon-settings/modules/cs_info.py
+    sed "s|upload-system-info|${xapps}/bin/upload-system-info|g" -i ./files/usr/share/cinnamon/cinnamon-settings/modules/cs_info.py
+
+    sed "s|/usr/bin/cinnamon-control-center|${cinnamon-control-center}/bin/cinnamon-control-center|g" -i ./files/usr/bin/cinnamon-settings
+    # this one really IS optional
+    sed "s|/usr/bin/gnome-control-center|/run/current-system/sw/bin/gnome-control-center|g" -i ./files/usr/bin/cinnamon-settings
+
+    sed "s|\"/usr/lib\"|\"${cinnamon-control-center}/lib\"|g" -i ./files/usr/share/cinnamon/cinnamon-settings/bin/capi.py
+
+    # another bunch of optional stuff
+    sed "s|/usr/bin|/run/current-system/sw/bin|g" -i ./files/usr/bin/cinnamon-launcher
+
+    sed 's|"lspci"|"${pciutils}/bin/lspci"|g' -i ./files/usr/share/cinnamon/cinnamon-settings/modules/cs_info.py
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/linuxmint/cinnamon";
+    description = "The Cinnamon desktop environment";
+    license = [ licenses.gpl2 ];
+    platforms = platforms.linux;
+    maintainers = [ maintainers.mkg20001 ];
+  };
+}
diff --git a/pkgs/desktops/cinnamon/cinnamon-common/libcroco.nix b/pkgs/desktops/cinnamon/cinnamon-common/libcroco.nix
new file mode 100644
index 0000000000000..c6f6e350c9f6d
--- /dev/null
+++ b/pkgs/desktops/cinnamon/cinnamon-common/libcroco.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, pkgconfig, libxml2, glib, gnome3 }:
+
+stdenv.mkDerivation rec {
+  pname = "libcroco";
+  version = "0.6.13";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn";
+  };
+
+  outputs = [ "out" "dev" ];
+  outputBin = "dev";
+
+  configureFlags = stdenv.lib.optional stdenv.isDarwin "--disable-Bsymbolic";
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libxml2 glib ];
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
+  meta = with stdenv.lib; {
+    description = "GNOME CSS2 parsing and manipulation toolkit";
+    homepage = https://gitlab.gnome.org/GNOME/libcroco;
+    license = licenses.lgpl2;
+    platforms = platforms.unix;
+  };
+}
+
diff --git a/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix b/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
new file mode 100644
index 0000000000000..97f0138de980f
--- /dev/null
+++ b/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
@@ -0,0 +1,111 @@
+{ stdenv
+, fetchFromGitHub
+, pkgconfig
+, autoreconfHook
+, glib
+, dbus
+, gettext
+, cinnamon-desktop
+, cinnamon-common
+, intltool
+, libxslt
+, gtk3
+, libnotify
+, libxkbfile
+, cinnamon-menus
+, libgnomekbd
+, libxklavier
+, networkmanager
+, libwacom
+, gnome3
+, libtool
+, wrapGAppsHook
+, tzdata
+, glibc
+, gobject-introspection
+, python3
+, pam
+, accountsservice
+, cairo
+, xapps
+, xorg
+, iso-flags-png-320x420
+}:
+
+stdenv.mkDerivation rec {
+  pname = "cinnamon-screensaver";
+  version = "4.4.0";
+
+  src = fetchFromGitHub {
+    owner = "linuxmint";
+    repo = pname;
+    rev = version;
+    sha256 = "03v41wk1gmgmyl31j7a3pav52gfv2faibj1jnpj3ycwcv4cch5w5";
+  };
+
+  nativeBuildInputs = [
+    pkgconfig
+    autoreconfHook
+    wrapGAppsHook
+    gettext
+    intltool
+    dbus # for configure.ac
+    libxslt
+    libtool
+  ];
+
+  buildInputs = [
+    # from configure.ac
+    gobject-introspection
+    gtk3
+    glib
+
+    xorg.libXext
+    xorg.libXinerama
+    xorg.libX11
+    xorg.libXrandr
+
+    (python3.withPackages (pp: with pp; [ pygobject3 setproctitle xapp pycairo ]))
+    xapps
+    pam
+    accountsservice
+    cairo
+    cinnamon-desktop
+    cinnamon-common
+    gnome3.libgnomekbd
+    gnome3.caribou
+
+    # things
+    iso-flags-png-320x420
+  ];
+
+  NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0"; # TODO: https://github.com/NixOS/nixpkgs/issues/36468
+
+  postPatch = ''
+    patchShebangs autogen.sh
+
+    sed ${stdenv.lib.escapeShellArg "s&DBUS_SESSION_SERVICE_DIR=.*&DBUS_SESSION_SERVICE_DIR=`$PKG_CONFIG --variable session_bus_services_dir dbus-1 | sed -e 's,/usr/share,\${datarootdir},g' | sed 's|^|$out|'`&g"} -i configure.ac
+
+    # cscreensaver hardcodes absolute paths everywhere. Nuke from orbit.
+    find . -type f -exec sed -i \
+      -e s,/usr/share/locale,/run/current-system/sw/share/locale,g \
+      -e s,/usr/lib/cinnamon-screensaver,$out/lib,g \
+      -e s,/usr/share/cinnamon-screensaver,$out/share,g \
+      -e s,/usr/share/iso-flag-png,${iso-flags-png-320x420}/share/iso-flags-png,g \
+      {} +
+
+    sed "s|/usr/share/locale|/run/current-system/sw/share/locale|g" -i ./src/cinnamon-screensaver-main.py
+  '';
+
+  autoreconfPhase = ''
+    NOCONFIGURE=1 bash ./autogen.sh
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/linuxmint/cinnamon-screensaver";
+    description = "The Cinnamon screen locker and screensaver program";
+    license = [ licenses.gpl2 licenses.lgpl2 ];
+    platforms = platforms.linux;
+    maintainers = [ maintainers.mkg20001 ];
+  };
+}
diff --git a/pkgs/desktops/cinnamon/default.nix b/pkgs/desktops/cinnamon/default.nix
index b08c9e468f8ae..5d054e4646de7 100644
--- a/pkgs/desktops/cinnamon/default.nix
+++ b/pkgs/desktops/cinnamon/default.nix
@@ -1,10 +1,23 @@
 { pkgs, lib }:
 
 lib.makeScope pkgs.newScope (self: with self; {
+  iso-flags-png-320x420 = pkgs.iso-flags.overrideAttrs(p: p // {
+    buildPhase = "make png-country-320x240-fancy";
+    # installPhase = "mkdir -p $out/share && mv build/png-country-4x2-fancy/res-320x240 $out/share/iso-flags-png-320x420";
+    installPhase = "mkdir -p $out/share && mv build/png-country-4x2-fancy/res-320x240 $out/share/iso-flags-png";
+  });
+
+  iso-flags-svg = pkgs.iso-flags.overrideAttrs(p: p // {
+    buildPhase = "mkdir -p $out/share";
+    installPhase = "mv svg $out/share/iso-flags-svg";
+  });
+
+  cinnamon-common = callPackage ./cinnamon-common { };
   cinnamon-control-center = callPackage ./cinnamon-control-center { };
   cinnamon-desktop = callPackage ./cinnamon-desktop { };
   cinnamon-menus = callPackage ./cinnamon-menus { };
   cinnamon-translations = callPackage ./cinnamon-translations { };
+  cinnamon-screensaver = callPackage ./cinnamon-screensaver { };
   cinnamon-session = callPackage ./cinnamon-session { };
   cinnamon-settings-daemon = callPackage ./cinnamon-settings-daemon { };
   cjs = callPackage ./cjs { };
diff --git a/pkgs/desktops/deepin/dde-api/default.nix b/pkgs/desktops/deepin/dde-api/default.nix
deleted file mode 100644
index 07239f9d509a5..0000000000000
--- a/pkgs/desktops/deepin/dde-api/default.nix
+++ /dev/null
@@ -1,127 +0,0 @@
-{ stdenv
-, buildGoPackage
-, fetchFromGitHub
-, pkgconfig
-, alsaLib
-, bc
-, blur-effect
-, coreutils
-, deepin
-, deepin-gettext-tools
-, fontconfig
-, go
-, go-dbus-factory
-, go-gir-generator
-, go-lib
-, grub2
-, gtk3
-, libcanberra
-, libgudev
-, librsvg
-, poppler
-, pulseaudio
-, utillinux
-, 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?)
-    utillinux   # 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
-  '';
-
-  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 ];
-    broken = true; # 2020-08-22 https://hydra.nixos.org/build/125354866/nixlog/2
-  };
-}
diff --git a/pkgs/desktops/deepin/dde-api/deps.nix b/pkgs/desktops/deepin/dde-api/deps.nix
deleted file mode 100644
index 5ebe1f6af952f..0000000000000
--- a/pkgs/desktops/deepin/dde-api/deps.nix
+++ /dev/null
@@ -1,102 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
-[
-  {
-    goPackagePath = "github.com/alecthomas/template";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/template";
-      rev = "fb15b899a75114aa79cc930e33c46b577cc664b1";
-      sha256 = "1vlasv4dgycydh5wx6jdcvz40zdv90zz1h7836z7lhsi2ymvii26";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/units";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/units";
-      rev = "f65c72e2690dc4b403c8bd637baf4611cd4c069b";
-      sha256 = "04jyqm7m3m01ppfy1f9xk4qvrwvs78q9zml6llyf2b3v5k6b2bbc";
-    };
-  }
-  {
-    goPackagePath = "github.com/cryptix/wav";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cryptix/wav";
-      rev = "8bdace674401f0bd3b63c65479b6a6ff1f9d5e44";
-      sha256 = "18nyqv0ic35fs9fny8sj84c00vbxs8mnric6vr6yl42624fh5id6";
-    };
-  }
-  {
-    goPackagePath = "github.com/disintegration/imaging";
-    fetch = {
-      type = "git";
-      url = "https://github.com/disintegration/imaging";
-      rev = "9aab30e6aa535fe3337b489b76759ef97dfaf362";
-      sha256 = "015amm3x989hl3r4gxnixj602fl9j8z53n0lrq804cbfbk7a31fw";
-    };
-  }
-  {
-    goPackagePath = "github.com/fogleman/gg";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fogleman/gg";
-      rev = "4dc34561c649343936bb2d29e23959bd6d98ab12";
-      sha256 = "1x1finzdrr80dd3r7wvf7zb184yjf4dawz7s581p2dr64dcialww";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/freetype";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/freetype";
-      rev = "e2365dfdc4a05e4b8299a783240d4a7d5a65d4e4";
-      sha256 = "194w3djc6fv1rgcjqds085b9fq074panc5vw582bcb8dbfzsrqxc";
-    };
-  }
-  {
-    goPackagePath = "github.com/linuxdeepin/go-x11-client";
-    fetch = {
-      type = "git";
-      url = "https://github.com/linuxdeepin/go-x11-client";
-      rev = "b5b01565d224d5ccd5a4143d9099acceb23e182a";
-      sha256 = "1lnffjp8bqy6f8caw6drg1js6hny5w7432riqchcrcd4q85d94rs";
-    };
-  }
-  {
-    goPackagePath = "github.com/nfnt/resize";
-    fetch = {
-      type = "git";
-      url = "https://github.com/nfnt/resize";
-      rev = "83c6a9932646f83e3267f353373d47347b6036b2";
-      sha256 = "005cpiwq28krbjf0zjwpfh63rp4s4is58700idn24fs3g7wdbwya";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/image";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/image";
-      rev = "e7c1f5e7dbb87d8921928a6d9fc52fb31ce73b24";
-      sha256 = "0czp897aicqw1dgybj0hc2zzwb20rhqkdqm7siqci3yk7yk9cymf";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "daa7c04131f568e31c51927b359a2d197a357058";
-      sha256 = "17gbfvb5iqyayzw0zd6q218zsbf7x74rflvn18wkxvsw95n1y54h";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/alecthomas/kingpin.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/alecthomas/kingpin.v2";
-      rev = "947dcec5ba9c011838740e680966fd7087a71d0d";
-      sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
-    };
-  }
-]
diff --git a/pkgs/desktops/deepin/dde-calendar/default.nix b/pkgs/desktops/deepin/dde-calendar/default.nix
deleted file mode 100644
index 094f3447c6b77..0000000000000
--- a/pkgs/desktops/deepin/dde-calendar/default.nix
+++ /dev/null
@@ -1,57 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, cmake
-, qttools
-, deepin-gettext-tools
-, dtkcore
-, dtkwidget
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "dde-calendar";
-  version = "5.0.1";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "1zzr3crkz4l5l135y0m53vqhv7fkrbvbspk8295swz9gsm3f7ah9";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    pkgconfig
-    qttools
-    deepin-gettext-tools
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dtkcore
-    dtkwidget
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-    patchShebangs translate_generation.sh
-    patchShebangs translate_desktop.sh
-
-    fixPath $out /usr com.deepin.Calendar.service
-
-    sed -i translate_desktop.sh \
-      -e "s,/usr/bin/deepin-desktop-ts-convert,deepin-desktop-ts-convert,"
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Calendar for Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/dde-calendar";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/dde-control-center/default.nix b/pkgs/desktops/deepin/dde-control-center/default.nix
deleted file mode 100644
index 850e39b93676c..0000000000000
--- a/pkgs/desktops/deepin/dde-control-center/default.nix
+++ /dev/null
@@ -1,150 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, cmake
-, deepin
-, qttools
-, qtdeclarative
-, networkmanager
-, qtsvg
-, qtx11extras
-, dtkcore
-, dtkwidget
-, geoip
-, gsettings-qt
-, dde-network-utils
-, networkmanager-qt
-, xorg
-, mtdev
-, fontconfig
-, freetype
-, dde-api
-, dde-daemon
-, qt5integration
-, deepin-desktop-base
-, deepin-desktop-schemas
-, dbus
-, systemd
-, dde-qt-dbus-factory
-, qtmultimedia
-, qtbase
-, glib
-, gnome3
-, which
-, substituteAll
-, tzdata
-, wrapGAppsHook
-}:
-
-mkDerivation rec {
-  pname = "dde-control-center";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "10bx8bpvi3ib32a3l4nyb1j0iq3bch8jm9wfm6d5v0ym1zb92x3b";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    deepin.setupHook
-    pkgconfig
-    wrapGAppsHook
-  ];
-
-  buildInputs = [
-    dde-api
-    dde-daemon
-    dde-network-utils
-    dde-qt-dbus-factory
-    deepin-desktop-base
-    deepin-desktop-schemas
-    dtkcore
-    dtkwidget
-    fontconfig
-    freetype
-    geoip
-    glib
-    gnome3.networkmanager-l2tp
-    gnome3.networkmanager-openconnect
-    gnome3.networkmanager-openvpn
-    gnome3.networkmanager-vpnc
-    gsettings-qt
-    mtdev
-    networkmanager-qt
-    qt5integration
-    qtbase
-    qtdeclarative
-    qtmultimedia
-    qtsvg
-    qttools
-    qtx11extras
-    xorg.libX11
-    xorg.libXext
-    xorg.libXrandr
-    xorg.libxcb
-  ];
-
-  cmakeFlags = [
-    "-DDISABLE_SYS_UPDATE=YES"
-    "-DDCC_DISABLE_GRUB=YES"
-  ];
-
-  patches = [
-    (substituteAll {
-      src = ./fix-paths.patch;
-      nmcli = "${networkmanager}/bin/nmcli";
-      which = "${which}/bin/which";
-      # not packaged
-      # dman = "${deepin-manual}/bin/dman";
-      inherit tzdata;
-      # exclusive to deepin linux?
-      # allows to synchronize configuration files to cloud networks
-      # deepin_sync = "${deepin-sync}";
-    })
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-
-    patchShebangs translate_ts2desktop.sh
-    patchShebangs translate_generation.sh
-    patchShebangs translate_desktop2ts.sh
-
-    fixPath $out /usr dde-control-center-autostart.desktop \
-      com.deepin.dde.ControlCenter.service \
-      src/frame/widgets/utils.h
-
-    substituteInPlace dde-control-center.desktop \
-      --replace "dbus-send" "${dbus}/bin/dbus-send"
-    substituteInPlace com.deepin.controlcenter.addomain.policy \
-      --replace "/bin/systemctl" "/run/current-system/sw/bin/systemctl"
-  '';
-
-  dontWrapQtApps = true;
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      "''${qtWrapperArgs[@]}"
-    )
-  '';
-
-  postFixup = ''
-    # debuging
-    searchForUnresolvedDLL $out
-    searchHardCodedPaths $out
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Control panel of Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/dde-control-center";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo worldofpeace ];
-  };
-}
diff --git a/pkgs/desktops/deepin/dde-control-center/fix-paths.patch b/pkgs/desktops/deepin/dde-control-center/fix-paths.patch
deleted file mode 100644
index 2c6e204d34379..0000000000000
--- a/pkgs/desktops/deepin/dde-control-center/fix-paths.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-diff --git a/src/frame/frame.cpp b/src/frame/frame.cpp
-index 90d06f8..7cdad04 100644
---- a/src/frame/frame.cpp
-+++ b/src/frame/frame.cpp
-@@ -375,7 +375,7 @@ void Frame::keyPressEvent(QKeyEvent *e)
- #ifdef QT_DEBUG
-     case Qt::Key_Escape:        qApp->quit();                               break;
- #endif
--    case Qt::Key_F1:            QProcess::startDetached("dman", QStringList("dde"));  break;
-+    case Qt::Key_F1:            QProcess::startDetached("@dman@", QStringList("dde"));  break;
-     default:;
-     }
- }
-diff --git a/src/frame/modules/datetime/timezone_dialog/timezone.cpp b/src/frame/modules/datetime/timezone_dialog/timezone.cpp
-index 3dd4aad..5f1b363 100644
---- a/src/frame/modules/datetime/timezone_dialog/timezone.cpp
-+++ b/src/frame/modules/datetime/timezone_dialog/timezone.cpp
-@@ -46,7 +46,7 @@ namespace installer {
- namespace {
- 
- // Absolute path to zone.tab file.
--const char kZoneTabFile[] = "/usr/share/zoneinfo/zone.tab";
-+const char kZoneTabFile[] = "@tzdata@/share/zoneinfo/zone.tab";
- 
- // Absolute path to backward timezone file.
- const char kTimezoneAliasFile[] = "/timezone_alias";
-diff --git a/src/frame/modules/network/connectionvpneditpage.cpp b/src/frame/modules/network/connectionvpneditpage.cpp
-index e292865..95c5a2b 100644
---- a/src/frame/modules/network/connectionvpneditpage.cpp
-+++ b/src/frame/modules/network/connectionvpneditpage.cpp
-@@ -215,7 +215,7 @@ void ConnectionVpnEditPage::exportConnConfig()
-     qDebug() << Q_FUNC_INFO << args;
- 
-     QProcess p;
--    p.start("nmcli", args);
-+    p.start("@nmcli@", args);
-     p.waitForFinished();
-     qDebug() << p.readAllStandardOutput();
-     qDebug() << p.readAllStandardError();
-diff --git a/src/frame/modules/network/vpnpage.cpp b/src/frame/modules/network/vpnpage.cpp
-index 521a603..450d1a6 100644
---- a/src/frame/modules/network/vpnpage.cpp
-+++ b/src/frame/modules/network/vpnpage.cpp
-@@ -224,7 +224,7 @@ void VpnPage::importVPN()
-     qDebug() << args;
- 
-     QProcess p;
--    p.start("nmcli", args);
-+    p.start("@nmcli@", args);
-     p.waitForFinished();
-     const auto stat = p.exitCode();
-     const QString output = p.readAllStandardOutput();
-diff --git a/src/frame/modules/sync/syncworker.cpp b/src/frame/modules/sync/syncworker.cpp
-index 3f929bf..6f240d9 100644
---- a/src/frame/modules/sync/syncworker.cpp
-+++ b/src/frame/modules/sync/syncworker.cpp
-@@ -24,7 +24,7 @@ SyncWorker::SyncWorker(SyncModel *model, QObject *parent)
- 
-     m_model->setSyncIsValid(
-         QProcess::execute(
--            "which", QStringList() << "/usr/lib/deepin-sync-daemon/deepin-sync-daemon") ==
-+            "@which@", QStringList() << "@deepin_sync@/lib/deepin-sync-daemon/deepin-sync-daemon") ==
-             0 &&
-         valueByQSettings<bool>(DCC_CONFIG_FILES, "CloudSync", "AllowCloudSync", false));
- }
diff --git a/pkgs/desktops/deepin/dde-daemon/default.nix b/pkgs/desktops/deepin/dde-daemon/default.nix
deleted file mode 100644
index 8a36446491f4a..0000000000000
--- a/pkgs/desktops/deepin/dde-daemon/default.nix
+++ /dev/null
@@ -1,158 +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}
-    searchHardCodedPaths $out
-  '';
-
-  postFixup = ''
-    # wrapGAppsHook does not work with binaries outside of $out/bin or $out/libexec
-    for binary in $out/lib/deepin-daemon/*; do
-      wrapGApp "$binary"
-    done
-
-    searchHardCodedPaths $out  # debugging
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Daemon for handling Deepin Desktop Environment session settings";
-    homepage = "https://github.com/linuxdeepin/dde-daemon";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/dde-daemon/deps.nix b/pkgs/desktops/deepin/dde-daemon/deps.nix
deleted file mode 100644
index bcc5ab81808f4..0000000000000
--- a/pkgs/desktops/deepin/dde-daemon/deps.nix
+++ /dev/null
@@ -1,111 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
-[
-  {
-    goPackagePath = "github.com/alecthomas/template";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/template";
-      rev = "fb15b899a75114aa79cc930e33c46b577cc664b1";
-      sha256 = "1vlasv4dgycydh5wx6jdcvz40zdv90zz1h7836z7lhsi2ymvii26";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/units";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/units";
-      rev = "f65c72e2690dc4b403c8bd637baf4611cd4c069b";
-      sha256 = "04jyqm7m3m01ppfy1f9xk4qvrwvs78q9zml6llyf2b3v5k6b2bbc";
-    };
-  }
-  {
-    goPackagePath = "github.com/axgle/mahonia";
-    fetch = {
-      type = "git";
-      url = "https://github.com/axgle/mahonia";
-      rev = "3358181d7394e26beccfae0ffde05193ef3be33a";
-      sha256 = "0b8wsrxmv8a0cqbnsg55lpf29pxy2zw8azvgh3ck664lqpcfybhq";
-    };
-  }
-  {
-    goPackagePath = "github.com/cryptix/wav";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cryptix/wav";
-      rev = "8bdace674401f0bd3b63c65479b6a6ff1f9d5e44";
-      sha256 = "18nyqv0ic35fs9fny8sj84c00vbxs8mnric6vr6yl42624fh5id6";
-    };
-  }
-  {
-    goPackagePath = "github.com/gosexy/gettext";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gosexy/gettext";
-      rev = "74466a0a0c4a62fea38f44aa161d4bbfbe79dd6b";
-      sha256 = "0asphx8nd7zmp88wk6aakk5292np7yw73akvfdvlvs9q5r5ahkgi";
-    };
-  }
-  {
-    goPackagePath = "github.com/linuxdeepin/go-x11-client";
-    fetch = {
-      type = "git";
-      url = "https://github.com/linuxdeepin/go-x11-client";
-      rev = "b5b01565d224d5ccd5a4143d9099acceb23e182a";
-      sha256 = "1lnffjp8bqy6f8caw6drg1js6hny5w7432riqchcrcd4q85d94rs";
-    };
-  }
-  {
-    goPackagePath = "github.com/msteinert/pam";
-    fetch = {
-      type = "git";
-      url = "https://github.com/msteinert/pam";
-      rev = "f29b9f28d6f9a1f6c4e6fd5db731999eb946574b";
-      sha256 = "1v5z51mgyz2glm7v0mg60xs1as88wx6cqhys2khc5d3khkr8q0qp";
-    };
-  }
-  {
-    goPackagePath = "github.com/nfnt/resize";
-    fetch = {
-      type = "git";
-      url = "https://github.com/nfnt/resize";
-      rev = "83c6a9932646f83e3267f353373d47347b6036b2";
-      sha256 = "005cpiwq28krbjf0zjwpfh63rp4s4is58700idn24fs3g7wdbwya";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/image";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/image";
-      rev = "e7c1f5e7dbb87d8921928a6d9fc52fb31ce73b24";
-      sha256 = "0czp897aicqw1dgybj0hc2zzwb20rhqkdqm7siqci3yk7yk9cymf";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "daa7c04131f568e31c51927b359a2d197a357058";
-      sha256 = "17gbfvb5iqyayzw0zd6q218zsbf7x74rflvn18wkxvsw95n1y54h";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev = "4b67af870c6ffd08258ef1202f371aebccaf7b68";
-      sha256 = "01mhy1xs2dh18kp6wdk1xnb34lbzv2qkvdwj7w5ha2qgm5rrm4ik";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/alecthomas/kingpin.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/alecthomas/kingpin.v2";
-      rev = "947dcec5ba9c011838740e680966fd7087a71d0d";
-      sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
-    };
-  }
-]
diff --git a/pkgs/desktops/deepin/dde-dock/dde-dock.plugins-dir.patch b/pkgs/desktops/deepin/dde-dock/dde-dock.plugins-dir.patch
deleted file mode 100644
index 87b76045b43d8..0000000000000
--- a/pkgs/desktops/deepin/dde-dock/dde-dock.plugins-dir.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From c48867b73485b34b95f14e9b9bbb54507fc77648 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
-Date: Fri, 19 Apr 2019 18:21:49 -0300
-Subject: [PATCH] Use an environment variable for the plugins directory
-
----
- frame/controller/dockpluginscontroller.cpp          | 2 +-
- plugins/tray/system-trays/systemtrayscontroller.cpp | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/frame/controller/dockpluginscontroller.cpp b/frame/controller/dockpluginscontroller.cpp
-index 32a5885..efd53c8 100644
---- a/frame/controller/dockpluginscontroller.cpp
-+++ b/frame/controller/dockpluginscontroller.cpp
-@@ -126,7 +126,7 @@ void DockPluginsController::startLoader()
- {
-     QString pluginsDir("../plugins");
-     if (!QDir(pluginsDir).exists()) {
--        pluginsDir = "/usr/lib/dde-dock/plugins";
-+        pluginsDir = QProcessEnvironment::systemEnvironment().value("DDE_DOCK_PLUGINS_DIR", "@out@/lib/dde-dock/plugins");
-     }
-     qDebug() << "using dock plugins dir:" << pluginsDir;
-
-diff --git a/plugins/tray/system-trays/systemtrayscontroller.cpp b/plugins/tray/system-trays/systemtrayscontroller.cpp
-index 0c8ca88..7c47d25 100644
---- a/plugins/tray/system-trays/systemtrayscontroller.cpp
-+++ b/plugins/tray/system-trays/systemtrayscontroller.cpp
-@@ -159,7 +159,7 @@ void SystemTraysController::startLoader()
- {
-     QString pluginsDir("../plugins/system-trays");
-     if (!QDir(pluginsDir).exists()) {
--        pluginsDir = "/usr/lib/dde-dock/plugins/system-trays";
-+        pluginsDir = QProcessEnvironment::systemEnvironment().value("DDE_DOCK_PLUGINS_DIR", "@out@/lib/dde-dock/plugins") + "/system-trays";
-     }
-     qDebug() << "using system tray plugins dir:" << pluginsDir;
-
---
-2.21.0
-
diff --git a/pkgs/desktops/deepin/dde-dock/default.nix b/pkgs/desktops/deepin/dde-dock/default.nix
deleted file mode 100644
index 68f2caa63191f..0000000000000
--- a/pkgs/desktops/deepin/dde-dock/default.nix
+++ /dev/null
@@ -1,116 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, cmake
-, pkgconfig
-, qttools
-, qtx11extras
-, qtsvg
-, polkit
-, gsettings-qt
-, dtkcore
-, dtkwidget
-, dde-qt-dbus-factory
-, dde-network-utils
-, dde-daemon
-, deepin-desktop-schemas
-, xorg
-, glib
-, wrapGAppsHook
-, deepin
-, plugins ? [ ]
-, symlinkJoin
-, makeWrapper
-, libdbusmenu
-}:
-
-let
-  unwrapped = mkDerivation rec {
-    pname = "dde-dock";
-    version = "5.0.0";
-
-    src = fetchFromGitHub {
-      owner = "linuxdeepin";
-      repo = pname;
-      rev = version;
-      sha256 = "12dshsqhzajnxm7r53qg0c84b6xlj313qnssnx2m25z4jdp5i7pr";
-    };
-
-    nativeBuildInputs = [
-      cmake
-      pkgconfig
-      qttools
-      wrapGAppsHook
-      deepin.setupHook
-    ];
-
-    buildInputs = [
-      dde-daemon
-      dde-network-utils
-      dde-qt-dbus-factory
-      deepin-desktop-schemas
-      dtkcore
-      dtkwidget
-      glib
-      gsettings-qt
-      libdbusmenu
-      polkit
-      qtsvg
-      qtx11extras
-      xorg.libXdmcp
-      xorg.libXtst
-      xorg.libpthreadstubs
-    ];
-
-    patches = [
-      ./dde-dock.plugins-dir.patch
-    ];
-
-    postPatch = ''
-      searchHardCodedPaths
-      patchShebangs translate_generation.sh
-      fixPath $out                 /etc/dde-dock                plugins/keyboard-layout/CMakeLists.txt
-      fixPath $out                 /usr                         cmake/DdeDock/DdeDockConfig.cmake
-      fixPath $out                 /usr                         dde-dock.pc
-      fixPath $out                 /usr/bin/dde-dock            frame/com.deepin.dde.Dock.service
-      fixPath $out                 /usr/share/dbus-1            CMakeLists.txt
-      fixPath ${dde-daemon}        /usr/lib/deepin-daemon       frame/item/showdesktopitem.cpp
-      fixPath ${dde-network-utils} /usr/share/dde-network-utils frame/main.cpp
-      fixPath ${polkit}            /usr/bin/pkexec              plugins/overlay-warning/overlay-warning-plugin.cpp
-
-      substituteInPlace frame/controller/dockpluginscontroller.cpp --subst-var-by out $out
-      substituteInPlace plugins/tray/system-trays/systemtrayscontroller.cpp --subst-var-by out $out
-    '';
-
-    cmakeFlags = [ "-DDOCK_TRAY_USE_NATIVE_POPUP=YES" ];
-
-    dontWrapQtApps = true;
-
-    preFixup = ''
-      gappsWrapperArgs+=(
-        "''${qtWrapperArgs[@]}"
-      )
-    '';
-
-    postFixup = ''
-      searchHardCodedPaths $out
-    '';
-
-    passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-    meta = with stdenv.lib; {
-      description = "Dock for Deepin Desktop Environment";
-      homepage = "https://github.com/linuxdeepin/dde-dock";
-      license = licenses.gpl3;
-      platforms = platforms.linux;
-      maintainers = with maintainers; [ romildo ];
-    };
-  };
-
-in
-if plugins == [ ]
-then unwrapped
-else import ./wrapper.nix {
-  inherit makeWrapper symlinkJoin plugins;
-  dde-dock = unwrapped;
-}
diff --git a/pkgs/desktops/deepin/dde-dock/wrapper.nix b/pkgs/desktops/deepin/dde-dock/wrapper.nix
deleted file mode 100644
index 1690230a99e59..0000000000000
--- a/pkgs/desktops/deepin/dde-dock/wrapper.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ makeWrapper
-, symlinkJoin
-, dde-dock
-, plugins
-}:
-
-symlinkJoin {
-  name = "dde-dock-with-plugins-${dde-dock.version}";
-
-  paths = [ dde-dock ] ++ plugins;
-
-  buildInputs = [ makeWrapper ];
-
-  postBuild = ''
-    wrapProgram $out/bin/dde-dock \
-      --set DDE_DOCK_PLUGINS_DIR "$out/lib/dde-dock/plugins"
-
-    rm $out/share/dbus-1/services/com.deepin.dde.Dock.service
-
-    substitute ${dde-dock}/share/dbus-1/services/com.deepin.dde.Dock.service $out/share/dbus-1/services/com.deepin.dde.Dock.service \
-      --replace ${dde-dock} $out
-  '';
-
-  inherit (dde-dock) meta;
-}
diff --git a/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-mime-cache-paths.patch b/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-mime-cache-paths.patch
deleted file mode 100644
index 253a67b04ec7b..0000000000000
--- a/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-mime-cache-paths.patch
+++ /dev/null
@@ -1,323 +0,0 @@
-From 29f4ad88e2294ae70b10180e7361d135c4e5c896 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
-Date: Mon, 13 May 2019 00:09:42 -0300
-Subject: [PATCH 2/2] Use XDG to look for mime cache
-
----
- .../shutil/mimesappsmanager.cpp               | 230 ++++++++++--------
- .../shutil/mimesappsmanager.h                 |   6 +-
- 2 files changed, 125 insertions(+), 111 deletions(-)
-
-diff --git a/dde-file-manager-lib/shutil/mimesappsmanager.cpp b/dde-file-manager-lib/shutil/mimesappsmanager.cpp
-index c9e53630..7a21df51 100644
---- a/dde-file-manager-lib/shutil/mimesappsmanager.cpp
-+++ b/dde-file-manager-lib/shutil/mimesappsmanager.cpp
-@@ -552,14 +552,20 @@ QString MimesAppsManager::getMimeAppsCacheFile()
-     return QString("%1/%2").arg(DFMStandardPaths::location(DFMStandardPaths::CachePath), "MimeApps.json");
- }
- 
--QString MimesAppsManager::getMimeInfoCacheFilePath()
-+QStringList MimesAppsManager::getMimeInfoCacheFilePath()
- {
--    return "/usr/share/applications/mimeinfo.cache";
-+    QStringList paths;
-+    for (const QString dir : getMimeInfoCacheFileRootPath() )
-+       paths.append(dir + QDir::separator() + "mimeinfo.cache");
-+    qDebug() << "getMimeInfoCacheFilePath: " << paths;
-+    return paths;
- }
- 
--QString MimesAppsManager::getMimeInfoCacheFileRootPath()
-+QStringList MimesAppsManager::getMimeInfoCacheFileRootPath()
- {
--    return "/usr/share/applications";
-+    QStringList paths = QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation);
-+    qDebug() << "getMimeInfoCacheFileRootPath: " << paths;
-+    return paths;
- }
- 
- QString MimesAppsManager::getDesktopFilesCacheFile()
-@@ -574,23 +580,27 @@ QString MimesAppsManager::getDesktopIconsCacheFile()
- 
- QStringList MimesAppsManager::getDesktopFiles()
- {
--      QStringList desktopFiles;
-+    QStringList desktopFiles;
- 
--      foreach (QString desktopFolder, getApplicationsFolders()) {
--          QDirIterator it(desktopFolder, QStringList("*.desktop"),
--                          QDir::Files | QDir::NoDotAndDotDot,
--                          QDirIterator::Subdirectories);
--          while (it.hasNext()) {
--            it.next();
--            desktopFiles.append(it.filePath());
--          }
--      }
--      return desktopFiles;
-+    foreach (QString desktopFolder, getApplicationsFolders()) {
-+        QDirIterator it(desktopFolder, QStringList("*.desktop"),
-+                        QDir::Files | QDir::NoDotAndDotDot,
-+                        QDirIterator::Subdirectories);
-+        while (it.hasNext()) {
-+          it.next();
-+          desktopFiles.append(it.filePath());
-+        }
-+    }
-+    return desktopFiles;
- }
- 
--QString MimesAppsManager::getDDEMimeTypeFile()
-+QStringList MimesAppsManager::getDDEMimeTypeFile()
- {
--    return QString("%1/%2/%3").arg(getMimeInfoCacheFileRootPath(), "deepin", "dde-mimetype.list");
-+    QStringList paths;
-+    for (const QString path : getMimeInfoCacheFileRootPath())
-+       paths.append(QString("%1/%2/%3").arg(path, "deepin", "dde-mimetype.list"));
-+    qDebug() << "getDDEMimeTypeFile: " << paths;
-+    return paths;
- }
- 
- QMap<QString, DesktopFile> MimesAppsManager::getDesktopObjs()
-@@ -663,124 +673,128 @@ void MimesAppsManager::initMimeTypeApps()
-         MimeApps.insert(key, orderApps);
-     }
- 
--    //check mime apps from cache
--    QFile f(getMimeInfoCacheFilePath());
--    if(!f.open(QIODevice::ReadOnly)){
--        qDebug () << "failed to read mime info cache file:" << f.errorString();
--        return;
--    }
--
-     QStringList audioDesktopList;
-     QStringList imageDeksopList;
-     QStringList textDekstopList;
-     QStringList videoDesktopList;
- 
--    while (!f.atEnd()) {
--        QString data = f.readLine();
--        QString _desktops = data.split("=").last();
--        QString mimeType = data.split("=").first();
--        QStringList desktops = _desktops.split(";");
--
--        foreach (const QString desktop, desktops) {
--            if(desktop.isEmpty() || audioDesktopList.contains(desktop))
--                continue;
-+    //check mime apps from cache
-+    for (const QString path : getMimeInfoCacheFilePath()) {
-+        QFile f(path);
-+        if(!f.open(QIODevice::ReadOnly)){
-+            qDebug () << "failed to read mime info cache file:" << f.errorString();
-+            return;
-+        }
- 
--            if(mimeType.startsWith("audio")){
--                if(!audioDesktopList.contains(desktop))
--                    audioDesktopList << desktop;
--            } else if(mimeType.startsWith("image")){
--                if(!imageDeksopList.contains(desktop))
--                    imageDeksopList << desktop;
--            } else if(mimeType.startsWith("text")){
--                if(!textDekstopList.contains(desktop))
--                    textDekstopList << desktop;
--            } else if(mimeType.startsWith("video")){
--                if(!videoDesktopList.contains(desktop))
--                    videoDesktopList << desktop;
-+        while (!f.atEnd()) {
-+            QString data = f.readLine();
-+            QString _desktops = data.split("=").last();
-+            QString mimeType = data.split("=").first();
-+            QStringList desktops = _desktops.split(";");
-+
-+            foreach (const QString desktop, desktops) {
-+                if(desktop.isEmpty() || audioDesktopList.contains(desktop))
-+                    continue;
-+
-+                if(mimeType.startsWith("audio")){
-+                    if(!audioDesktopList.contains(desktop))
-+                        audioDesktopList << desktop;
-+                } else if(mimeType.startsWith("image")){
-+                    if(!imageDeksopList.contains(desktop))
-+                        imageDeksopList << desktop;
-+                } else if(mimeType.startsWith("text")){
-+                    if(!textDekstopList.contains(desktop))
-+                        textDekstopList << desktop;
-+                } else if(mimeType.startsWith("video")){
-+                    if(!videoDesktopList.contains(desktop))
-+                        videoDesktopList << desktop;
-+                }
-             }
-         }
-+        f.close();
-     }
--    f.close();
- 
--    const QString mimeInfoCacheRootPath = getMimeInfoCacheFileRootPath();
--    foreach (QString desktop, audioDesktopList) {
--        const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
--        if(!QFile::exists(path))
--            continue;
--        DesktopFile df(path);
--        AudioMimeApps.insert(path, df);
--    }
-+    for (const QString mimeInfoCacheRootPath : getMimeInfoCacheFileRootPath()) {
-+        foreach (QString desktop, audioDesktopList) {
-+            const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
-+            if(!QFile::exists(path))
-+                continue;
-+            DesktopFile df(path);
-+            AudioMimeApps.insert(path, df);
-+        }
- 
--    foreach (QString desktop, imageDeksopList) {
--        const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
--        if(!QFile::exists(path))
--            continue;
--        DesktopFile df(path);
--        ImageMimeApps.insert(path, df);
--    }
-+        foreach (QString desktop, imageDeksopList) {
-+            const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
-+            if(!QFile::exists(path))
-+                continue;
-+            DesktopFile df(path);
-+            ImageMimeApps.insert(path, df);
-+        }
- 
--    foreach (QString desktop, textDekstopList) {
--        const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
--        if(!QFile::exists(path))
--            continue;
--        DesktopFile df(path);
--        TextMimeApps.insert(path, df);
--    }
-+        foreach (QString desktop, textDekstopList) {
-+            const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
-+            if(!QFile::exists(path))
-+                continue;
-+            DesktopFile df(path);
-+            TextMimeApps.insert(path, df);
-+        }
- 
--    foreach (QString desktop, videoDesktopList) {
--        const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
--        if(!QFile::exists(path))
--            continue;
--        DesktopFile df(path);
--        VideoMimeApps.insert(path, df);
-+        foreach (QString desktop, videoDesktopList) {
-+            const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
-+            if(!QFile::exists(path))
-+                continue;
-+            DesktopFile df(path);
-+            VideoMimeApps.insert(path, df);
-+        }
-     }
--
-     return;
- }
- 
- void MimesAppsManager::loadDDEMimeTypes()
- {
--    QSettings settings(getDDEMimeTypeFile(), QSettings::IniFormat);
--    qDebug() << settings.childGroups();
-+    for (const QString path : getDDEMimeTypeFile()) {
-+        QSettings settings(path, QSettings::IniFormat);
-+        qDebug() << settings.childGroups();
- 
--    QFile file(getDDEMimeTypeFile());
--    if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
--        return;
--    }
-+        QFile file(path);
-+        if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
-+            continue;
-+        }
-+
-+        // Read propeties
-+        QTextStream in(&file);
-+        QString desktopKey;
-+        while (!in.atEnd()) {
- 
--    // Read propeties
--    QTextStream in(&file);
--    QString desktopKey;
--    while (!in.atEnd()) {
-+          // Read new line
-+          QString line = in.readLine();
- 
--      // Read new line
--      QString line = in.readLine();
-+          // Skip empty line or line with invalid format
-+          if (line.trimmed().isEmpty()) {
-+            continue;
-+          }
- 
--      // Skip empty line or line with invalid format
--      if (line.trimmed().isEmpty()) {
--        continue;
--      }
-+          // Read group
-+          // NOTE: symbols '[' and ']' can be found not only in group names, but
-+          // only group can start with '['
- 
--      // Read group
--      // NOTE: symbols '[' and ']' can be found not only in group names, but
--      // only group can start with '['
-+          if (line.trimmed().startsWith("[") && line.trimmed().endsWith("]")) {
-+                QString tmp = line.trimmed().replace("[", "").replace("]", "");
-+                desktopKey = tmp;
-+                continue;
-+          }
- 
--      if (line.trimmed().startsWith("[") && line.trimmed().endsWith("]")) {
--            QString tmp = line.trimmed().replace("[", "").replace("]", "");
--            desktopKey = tmp;
--            continue;
--      }
--
--      // If we are in correct group and line contains assignment then read data
--      int first_equal = line.indexOf('=');
--      if (!desktopKey.isEmpty() && first_equal >= 0) {
--            QString value = line.mid(first_equal + 1);
--            QStringList mimetypes = value.split(";");
--            DDE_MimeTypes.insert(desktopKey, mimetypes);
--            desktopKey.clear();
-+          // If we are in correct group and line contains assignment then read data
-+          int first_equal = line.indexOf('=');
-+          if (!desktopKey.isEmpty() && first_equal >= 0) {
-+                QString value = line.mid(first_equal + 1);
-+                QStringList mimetypes = value.split(";");
-+                DDE_MimeTypes.insert(desktopKey, mimetypes);
-+                desktopKey.clear();
-+            }
-         }
-+        file.close();
-     }
--    file.close();
- }
- 
- bool MimesAppsManager::lessByDateTime(const QFileInfo &f1, const QFileInfo &f2)
-diff --git a/dde-file-manager-lib/shutil/mimesappsmanager.h b/dde-file-manager-lib/shutil/mimesappsmanager.h
-index 223c80aa..00a61302 100644
---- a/dde-file-manager-lib/shutil/mimesappsmanager.h
-+++ b/dde-file-manager-lib/shutil/mimesappsmanager.h
-@@ -101,12 +101,12 @@ public:
- 
-     static QStringList getApplicationsFolders();
-     static QString getMimeAppsCacheFile();
--    static QString getMimeInfoCacheFilePath();
--    static QString getMimeInfoCacheFileRootPath();
-+    static QStringList getMimeInfoCacheFilePath();
-+    static QStringList getMimeInfoCacheFileRootPath();
-     static QString getDesktopFilesCacheFile();
-     static QString getDesktopIconsCacheFile();
-     static QStringList getDesktopFiles();
--    static QString getDDEMimeTypeFile();
-+    static QStringList getDDEMimeTypeFile();
-     static QMap<QString, DesktopFile> getDesktopObjs();
-     static void initMimeTypeApps();
-     static void loadDDEMimeTypes();
--- 
-2.21.0
-
diff --git a/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-paths.patch b/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-paths.patch
deleted file mode 100644
index 3ced15e7e5a44..0000000000000
--- a/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-paths.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From e68d983a6befd223087916cb3fe31baee77decc4 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
-Date: Sun, 12 May 2019 08:50:07 -0300
-Subject: [PATCH 1/2] Use qt library to determine where to look for application
- files
-
----
- dde-file-manager-lib/shutil/fileutils.cpp     | 34 ++++++++++++-------
- .../shutil/mimesappsmanager.cpp               | 11 ++----
- 2 files changed, 25 insertions(+), 20 deletions(-)
-
-diff --git a/dde-file-manager-lib/shutil/fileutils.cpp b/dde-file-manager-lib/shutil/fileutils.cpp
-index ae8120d3..d6a0573a 100644
---- a/dde-file-manager-lib/shutil/fileutils.cpp
-+++ b/dde-file-manager-lib/shutil/fileutils.cpp
-@@ -242,13 +242,19 @@ bool FileUtils::isArchive(const QString &path)
-  */
- QStringList FileUtils::getApplicationNames() {
-   QStringList appNames;
--  QDirIterator it("/usr/share/applications", QStringList("*.desktop"),
--                  QDir::Files | QDir::NoDotAndDotDot,
--                  QDirIterator::Subdirectories);
--  while (it.hasNext()) {
--    it.next();
--    appNames.append(it.fileName());
-+
-+  const QStringList desktopDirs = QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation);
-+  qDebug() << "dde-file-manager getApplicationNames desktopDirs:" << desktopDirs;
-+  for (const QString &dir : desktopDirs) {
-+    QDirIterator it(dir, QStringList("*.desktop"),
-+                    QDir::Files | QDir::NoDotAndDotDot,
-+                    QDirIterator::Subdirectories);
-+    while (it.hasNext()) {
-+      it.next();
-+      appNames.append(it.fileName());
-+    }
-   }
-+  
-   return appNames;
- }
- //---------------------------------------------------------------------------
-@@ -259,12 +265,16 @@ QStringList FileUtils::getApplicationNames() {
-  */
- QList<DesktopFile> FileUtils::getApplications() {
-   QList<DesktopFile> apps;
--  QDirIterator it("/usr/share/applications", QStringList("*.desktop"),
--                  QDir::Files | QDir::NoDotAndDotDot,
--                  QDirIterator::Subdirectories);
--  while (it.hasNext()) {
--    it.next();
--    apps.append(DesktopFile(it.filePath()));
-+  const QStringList desktopDirs = QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation);
-+  qDebug() << "dde-file-manager getApplications desktopDirs:" << desktopDirs;
-+  for (const QString &dir : desktopDirs) {
-+    QDirIterator it(dir, QStringList("*.desktop"),
-+                    QDir::Files | QDir::NoDotAndDotDot,
-+                    QDirIterator::Subdirectories);
-+    while (it.hasNext()) {
-+      it.next();
-+      apps.append(DesktopFile(it.filePath()));
-+    }
-   }
-   return apps;
- }
-diff --git a/dde-file-manager-lib/shutil/mimesappsmanager.cpp b/dde-file-manager-lib/shutil/mimesappsmanager.cpp
-index c6149702..c9e53630 100644
---- a/dde-file-manager-lib/shutil/mimesappsmanager.cpp
-+++ b/dde-file-manager-lib/shutil/mimesappsmanager.cpp
-@@ -542,14 +542,9 @@ QStringList MimesAppsManager::getrecommendedAppsFromMimeWhiteList(const DUrl &ur
- 
- QStringList MimesAppsManager::getApplicationsFolders()
- {
--    QStringList desktopFolders;
--    desktopFolders << QString("/usr/share/applications/")
--                   << QString("/usr/local/share/applications/")
--                   << QString("/usr/share/gnome/applications/")
--                   << QString("/var/lib/flatpak/exports/share/applications")
--                   << QDir::homePath() + QString("/.local/share/flatpak/exports/share/applications")
--                   << QDir::homePath() + QString( "/.local/share/applications" );
--    return desktopFolders;
-+    QStringList paths = QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation);
-+    qDebug() << "dde-file-manager getApplicationsFolders:" << paths;
-+    return paths;
- }
- 
- QString MimesAppsManager::getMimeAppsCacheFile()
--- 
-2.21.0
-
diff --git a/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.pixmaps-paths.patch b/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.pixmaps-paths.patch
deleted file mode 100644
index 582760e6db2af..0000000000000
--- a/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.pixmaps-paths.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 084c3cfcf4995c109ca2e96f042fe341f925b0b4 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
-Date: Thu, 16 May 2019 19:00:52 -0300
-Subject: [PATCH 4/4] Use xdg to look for pixmap icons
-
----
- dde-file-manager-lib/shutil/fileutils.cpp | 15 ++++++++++-----
- 1 file changed, 10 insertions(+), 5 deletions(-)
-
-diff --git a/dde-file-manager-lib/shutil/fileutils.cpp b/dde-file-manager-lib/shutil/fileutils.cpp
-index d6a0573a..e912e7c2 100644
---- a/dde-file-manager-lib/shutil/fileutils.cpp
-+++ b/dde-file-manager-lib/shutil/fileutils.cpp
-@@ -362,11 +362,16 @@ QIcon FileUtils::searchAppIcon(const DesktopFile &app,
-   }
- 
-   // Last chance
--  QDir appIcons("/usr/share/pixmaps","", 0, QDir::Files | QDir::NoDotAndDotDot);
--  QStringList iconFiles = appIcons.entryList();
--  QStringList searchIcons = iconFiles.filter(name);
--  if (searchIcons.count() > 0) {
--    return QIcon("/usr/share/pixmaps/" + searchIcons.at(0));
-+  const QStringList dirs = QStandardPaths::standardLocations(QStandardPaths::GenericDataLocation);
-+  qDebug() << "searchAppIcon: last chance: look for pixmaps at: " << dirs;
-+  for (const QString &dir : dirs) {
-+    const QString path = dir + QDir::separator() + "pixmaps";
-+    QDir appIcons(path,"", 0, QDir::Files | QDir::NoDotAndDotDot);
-+    QStringList iconFiles = appIcons.entryList();
-+    QStringList searchIcons = iconFiles.filter(name);
-+    if (searchIcons.count() > 0) {
-+      return QIcon(path + QDir::separator() + searchIcons.at(0));
-+    }
-   }
- 
-   // Default icon
--- 
-2.21.0
-
diff --git a/pkgs/desktops/deepin/dde-file-manager/default.nix b/pkgs/desktops/deepin/dde-file-manager/default.nix
deleted file mode 100644
index 4258e2aa859ea..0000000000000
--- a/pkgs/desktops/deepin/dde-file-manager/default.nix
+++ /dev/null
@@ -1,298 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, avfs
-, dde-daemon
-, dde-dock
-, dde-polkit-agent
-, dde-qt-dbus-factory
-, deepin
-, deepin-anything
-, deepin-desktop-schemas
-, deepin-gettext-tools
-, deepin-movie-reborn
-, deepin-shortcut-viewer
-, deepin-terminal
-, disomaster
-, dtkcore
-, dtkwidget
-, ffmpegthumbnailer
-, file
-, glib
-, gnugrep
-, gsettings-qt
-, gvfs
-, jemalloc
-, kcodecs
-, libX11
-, libsecret
-, polkit
-, polkit-qt
-, poppler
-, procps
-, qmake
-, qt5integration
-, qtmultimedia
-, qtsvg
-, qttools
-, qtx11extras
-, runtimeShell
-, samba
-, shadow
-, taglib
-, udisks2-qt5
-, xdg-user-dirs
-, xorg
-, zlib
-, wrapGAppsHook
-}:
-
-mkDerivation rec {
-  pname = "dde-file-manager";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0n2nl09anqdq0n5yn688n385rn81lcpybs0sa8m311k3k9ndkkyr";
-  };
-
-  nativeBuildInputs = [
-    deepin.setupHook
-    qmake
-    qttools
-    pkgconfig
-    deepin-gettext-tools
-    wrapGAppsHook
-  ];
-
-  buildInputs = [
-    avfs
-    dde-daemon
-    dde-dock
-    dde-polkit-agent
-    dde-qt-dbus-factory
-    deepin-anything
-    deepin-desktop-schemas
-    deepin-movie-reborn.dev
-    deepin-shortcut-viewer
-    deepin-terminal
-    disomaster
-    dtkcore
-    dtkwidget
-    ffmpegthumbnailer
-    file
-    glib
-    gnugrep
-    gsettings-qt
-    gvfs
-    jemalloc
-    kcodecs
-    libsecret
-    polkit
-    polkit-qt
-    poppler
-    procps
-    qt5integration
-    qtmultimedia
-    qtsvg
-    qtx11extras
-    samba
-    taglib
-    udisks2-qt5
-    xdg-user-dirs
-    xorg.libX11
-    xorg.libxcb
-    xorg.xcbutil
-    xorg.xcbutilwm
-    xorg.xorgproto
-    zlib
-  ];
-
-  patches = [
-    ./dde-file-manager.fix-paths.patch
-    ./dde-file-manager.fix-mime-cache-paths.patch
-    ./dde-file-manager.pixmaps-paths.patch
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-
-    patchShebangs dde-desktop/translate_generation.sh
-    patchShebangs dde-desktop/translate_ts2desktop.sh
-    patchShebangs dde-file-manager-lib/generate_translations.sh
-    patchShebangs dde-file-manager/generate_translations.sh
-    patchShebangs dde-file-manager/translate_ts2desktop.sh
-    patchShebangs usb-device-formatter/generate_translations.sh
-    patchShebangs usb-device-formatter/translate_ts2desktop.sh
-
-    # x-terminal-emulator is a virtual package in Debian systems. The
-    # terminal emulator is configured by Debian's alternative system.
-    # It is not available on NixOS. Use deepin-terminal instead
-    sed -i -e "s,x-terminal-emulator,deepin-terminal," \
-      dde-file-manager-lib/shutil/fileutils.cpp
-
-    sed -i -e "s,\$\$\\[QT_INSTALL_LIBS\\],$out/lib," \
-       dde-file-manager-lib/dde-file-manager-lib.pro \
-       dde-file-thumbnail-tool/common.pri \
-       common/common.pri
-
-    sed -i '/^QMAKE_PKGCONFIG_DESTDIR/i QMAKE_PKGCONFIG_PREFIX = $$PREFIX' \
-       dde-file-manager-lib/dde-file-manager-lib.pro
-
-    fixPath ${dde-dock} /usr/include/dde-dock \
-      dde-dock-plugins/disk-mount/disk-mount.pro
-
-    # treefrog is not available in NixOS, and I am not sure if it is really needed
-    #fixPath $ {treefrog-framework} /usr/include/treefrog \
-    #  dde-sharefiles/appbase.pri
-
-    fixPath ${deepin-anything} /usr/share/dbus-1/interfaces \
-      dde-file-manager-lib/dbusinterface/dbusinterface.pri
-
-    sed -i -e "s,\$\$system(\$\$PKG_CONFIG --variable libdir deepin-anything-server-lib),$out/lib," \
-      deepin-anything-server-plugins/dde-anythingmonitor/dde-anythingmonitor.pro
-
-    fixPath ${dde-daemon} /usr/lib/deepin-daemon/desktop-toggle \
-      dde-zone/mainwindow.h
-
-    fixPath ${deepin-gettext-tools} /usr/bin/deepin-desktop-ts-convert \
-      dde-desktop/translate_desktop2ts.sh \
-      dde-desktop/translate_ts2desktop.sh \
-      dde-file-manager/translate_desktop2ts.sh \
-      dde-file-manager/translate_ts2desktop.sh \
-      usb-device-formatter/translate_desktop2ts.sh \
-      usb-device-formatter/translate_ts2desktop.sh
-
-    fixPath ${avfs} /usr/bin/mountavfs dde-file-manager-lib/shutil/fileutils.cpp
-    fixPath ${avfs} /usr/bin/umountavfs dde-file-manager-lib/shutil/fileutils.cpp
-
-    fixPath ${deepin-terminal} /usr/bin/deepin-terminal \
-      dde-file-manager-lib/shutil/fileutils.cpp
-
-    fixPath $out /usr/share/dde-file-manager \
-      dde-sharefiles/appbase.pri \
-      dde-sharefiles/dde-sharefiles.pro
-
-    fixPath $out /usr/share/usb-device-formatter \
-      usb-device-formatter/main.cpp
-
-    fixPath $out /usr/share/applications \
-      dde-file-manager/mips/dde-file-manager-autostart.desktop \
-      dde-desktop/development.pri
-
-    fixPath $out /usr/bin \
-      dbusservices/com.deepin.dde.desktop.service \
-      dde-desktop/data/com.deepin.dde.desktop.service \
-      dde-desktop/dbus/filedialog/com.deepin.filemanager.filedialog.service \
-      dde-desktop/dbus/filemanager1/org.freedesktop.FileManager.service \
-      dde-file-manager-daemon/dbusservice/com.deepin.filemanager.daemon.service \
-      dde-file-manager-daemon/dbusservice/dde-filemanager-daemon.service \
-      dde-file-manager-daemon/dde-file-manager-daemon.pro \
-      dde-file-manager-lib/dde-file-manager-lib.pro \
-      dde-file-manager-lib/pkexec/com.deepin.pkexec.dde-file-manager.policy \
-      dde-file-manager/dde-file-manager-xdg-autostart.desktop \
-      dde-file-manager/dde-file-manager.desktop \
-      dde-file-manager/dde-file-manager.pro \
-      dde-file-manager/mips/dde-file-manager-autostart.desktop \
-      dde-file-manager/mips/dde-file-manager.desktop \
-      dde-file-manager/pkexec/com.deepin.pkexec.dde-file-manager.policy \
-      usb-device-formatter/pkexec/com.deepin.pkexec.usb-device-formatter.policy \
-      usb-device-formatter/usb-device-formatter.desktop \
-      usb-device-formatter/usb-device-formatter.pro
-      fixPath $out /etc \
-      dde-file-manager/dde-file-manager.pro \
-      dde-file-manager-daemon/dde-file-manager-daemon.pro
-
-    fixPath $out /usr \
-      common/common.pri \
-      dde-desktop/dbus/filedialog/filedialog.pri \
-      dde-desktop/dbus/filemanager1/filemanager1.pri \
-      dde-desktop/development.pri \
-      dde-dock-plugins/disk-mount/disk-mount.pro \
-      dde-file-manager-daemon/dde-file-manager-daemon.pro \
-      usb-device-formatter/usb-device-formatter.pro
-
-    sed -i -e "s,xdg-user-dir,${xdg-user-dirs}/bin/xdg-user-dir," \
-      dde-file-manager/dde-xdg-user-dirs-update
-
-    sed -i -e "s,Exec=dde-file-manager,Exec=$out/bin/dde-file-manager," \
-      dde-file-manager/dde-file-manager.desktop
-
-    sed -i -e "s,Exec=gio,Exec=${glib.bin}/bin/gio," \
-      dde-desktop/data/applications/dde-trash.desktop \
-      dde-desktop/data/applications/dde-computer.desktop
-
-    sed -i -e "s,/usr/lib/gvfs/gvfsd,${gvfs}/libexec/gvfsd," \
-      dde-file-manager-lib/gvfs/networkmanager.cpp
-
-    sed -i -e "s,/usr/sbin/smbd,${samba}/bin/smbd," \
-           -e "s,/usr/sbin/groupadd,${shadow}/bin/groupadd," \
-           -e "s,/usr/sbin/adduser,${shadow}/bin/adduser," \
-      dde-file-manager-daemon/usershare/usersharemanager.cpp
-
-    sed -i -e 's,startDetached("deepin-shortcut-viewer",startDetached("${deepin-shortcut-viewer}/bin/deepin-shortcut-viewer",' \
-      dde-file-manager-lib/controllers/appcontroller.cpp
-
-    sed -i -e 's,/bin/bash,${runtimeShell},' \
-           -e 's,\<ps\>,${procps}/bin/ps,' \
-           -e 's,\<grep\>,${gnugrep}/bin/grep,' \
-      utils/utils.cpp \
-      dde-file-manager-lib/controllers/fileeventprocessor.cpp
-
-    # The hard coded path in `QString("/etc/xdg/%1/%2")` in
-    # dde-file-manager-lib/interfaces/dfmsettings.cpp
-    # does not needed a fix because all the standard locations
-    # are tried before faling back to /etc/xdg.
-
-    # I do not know yet how to deal with:
-    #   dde-file-manager-lib/sw_label/llsdeepinlabellibrary.h:        return "/usr/lib/sw_64-linux-gnu/dde-file-manager/libllsdeeplabel.so";
-    #   dde-file-manager-lib/sw_label/filemanagerlibrary.h:        return "/usr/lib/sw_64-linux-gnu/dde-file-manager/libfilemanager.so";
-    #   dde-file-manager-lib/sw_label/libinstall.sh:mkdir /usr/lib/sw_64-linux-gnu/dde-file-manager
-    #   dde-file-manager-lib/sw_label/libinstall.sh:cp libfilemanager.so libllsdeeplabel.so /usr/lib/sw_64-linux-gnu/dde-file-manager
-    # They are not present on my installations of Deepin Linux, Arch Linux and Ubuntu. Can they be ignored?
-
-    # Notes:
-    # - As file-roller is looked in the path using QStandardPaths::findExecutable, it is not been added as a dependency.
-    # - deepin-qt5config is a dependency exclusive to the Deepin Linux distribution. No other distribution has it, according to repology.
-  '';
-
-  qmakeFlags = [
-    "QMAKE_CFLAGS_ISYSTEM="
-
-    # Disable ffmpeg
-    "CONFIG+=DISABLE_FFMPEG"
-  ];
-
-  preBuild = ''
-    export LD_LIBRARY_PATH="$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${zlib}/lib";
-    export LD_LIBRARY_PATH="$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${libX11}/lib";
-  '';
-
-  dontWrapQtApps = true;
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      "''${qtWrapperArgs[@]}"
-    )
-  '';
-
-  postFixup = ''
-    # debuging
-    unset LD_LIBRARY_PATH
-    searchForUnresolvedDLL $out
-    searchHardCodedPaths $out
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "File manager and desktop module for Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/dde-file-manager";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/dde-kwin/0001-dde-kwin.pc-make-paths-relative.patch b/pkgs/desktops/deepin/dde-kwin/0001-dde-kwin.pc-make-paths-relative.patch
deleted file mode 100644
index 707eb20740953..0000000000000
--- a/pkgs/desktops/deepin/dde-kwin/0001-dde-kwin.pc-make-paths-relative.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From c4edb65554f90a5abfc2ecbf63587b8c6ef2653d Mon Sep 17 00:00:00 2001
-From: worldofpeace <worldofpeace@protonmail.ch>
-Date: Tue, 22 Oct 2019 17:20:24 -0400
-Subject: [PATCH] dde-kwin.pc: make paths relative
-
-Values like libdir should be relative to the literal ${prefix}.
-We also use @ONLY so we don't substitute values like ${prefix}
-with CMake resulting in an unintentional replacement.
----
- plugins/kwin-xcb/lib/CMakeLists.txt |  2 +-
- plugins/kwin-xcb/lib/dde-kwin.pc.in | 18 +++++++++---------
- 2 files changed, 10 insertions(+), 10 deletions(-)
-
-diff --git a/plugins/kwin-xcb/lib/CMakeLists.txt b/plugins/kwin-xcb/lib/CMakeLists.txt
-index 0189b74..62e5553 100644
---- a/plugins/kwin-xcb/lib/CMakeLists.txt
-+++ b/plugins/kwin-xcb/lib/CMakeLists.txt
-@@ -61,7 +61,7 @@ install_files(
-     kwinutils.h
- )
- 
--configure_file(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc)
-+configure_file(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
- if (CMAKE_INSTALL_LIBDIR)
-     install_files("/${CMAKE_INSTALL_LIBDIR}/pkgconfig" FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc)
- elseif (CMAKE_LIBRARY_OUTPUT_DIRECTORY)
-diff --git a/plugins/kwin-xcb/lib/dde-kwin.pc.in b/plugins/kwin-xcb/lib/dde-kwin.pc.in
-index 9b1d813..1179761 100644
---- a/plugins/kwin-xcb/lib/dde-kwin.pc.in
-+++ b/plugins/kwin-xcb/lib/dde-kwin.pc.in
-@@ -1,13 +1,13 @@
--prefix=${CMAKE_INSTALL_PREFIX}
--exec_prefix=${CMAKE_INSTALL_PREFIX}
--libdir=${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}
--includedir=${INCLUDE_OUTPUT_PATH}
-+prefix=@CMAKE_INSTALL_PREFIX@
-+exec_prefix=${prefix}
-+libdir=${prefix}/lib
-+includedir=@INCLUDE_OUTPUT_PATH@
- 
- 
--Name: ${PROJECT_NAME}
-+Name: @PROJECT_NAME@
- Description: DDE KWin plugin library
--Version: ${PROJECT_VERSION}
--Libs: -l${PROJECT_NAME}
--Libs.private: -L/usr/X11R6/lib64 -lQt5X11Extras -lKF5WindowSystem -lQt5Widgets -lQt5Gui -lKF5ConfigCore -lKF5CoreAddons -lQt5Core -lGL -lpthread   
--Cflags: -I${INCLUDE_OUTPUT_PATH}
-+Version: @PROJECT_VERSION@
-+Libs: -l$@PROJECT_NAME@
-+Libs.private: -L/usr/X11R6/lib64 -lQt5X11Extras -lKF5WindowSystem -lQt5Widgets -lQt5Gui -lKF5ConfigCore -lKF5CoreAddons -lQt5Core -lGL -lpthread
-+Cflags: -I@INCLUDE_OUTPUT_PATH@
- 
--- 
-2.23.0
-
diff --git a/pkgs/desktops/deepin/dde-kwin/default.nix b/pkgs/desktops/deepin/dde-kwin/default.nix
deleted file mode 100644
index ce1a1a8dda036..0000000000000
--- a/pkgs/desktops/deepin/dde-kwin/default.nix
+++ /dev/null
@@ -1,142 +0,0 @@
-{ stdenv
-, mkDerivation
-, pkgconfig
-, fetchFromGitHub
-, deepin
-, cmake
-, extra-cmake-modules
-, qtbase
-, libxcb
-, kglobalaccel
-, kwindowsystem
-, kcoreaddons
-, kwin
-, dtkcore
-, gsettings-qt
-, fontconfig
-, deepin-desktop-schemas
-, glib
-, libXrender
-, mtdev
-, qttools
-, deepin-gettext-tools
-, kwayland
-, qtx11extras
-, qtquickcontrols2
-, epoxy
-, qt5integration
-, dde-session-ui
-, dbus
-, wrapGAppsHook
-}:
-
-mkDerivation rec {
-  pname = "dde-kwin";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0bvkx9h5ygj46a0j76kfyq3gvk6zn4fx6clhrmcr40hbi2k33cbl";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    deepin-gettext-tools
-    deepin.setupHook
-    extra-cmake-modules
-    pkgconfig
-    wrapGAppsHook
-  ];
-
-  buildInputs = [
-    deepin-desktop-schemas
-    dtkcore
-    epoxy
-    fontconfig
-    glib
-    gsettings-qt
-    kcoreaddons
-    kglobalaccel
-    kwayland
-    kwin
-    kwindowsystem
-    libXrender
-    libxcb
-    mtdev
-    qtbase
-    qtquickcontrols2
-    qttools
-    qtx11extras
-    qt5integration
-  ];
-
-  # Need to add kwayland around:
-  # * https://github.com/linuxdeepin/dde-kwin/blob/5226bb984c844129f9fa589da56e77decb7b39a1/plugins/kwineffects/blur/CMakeLists.txt#L14
-  NIX_CFLAGS_COMPILE = [
-    "-I${kwayland.dev}/include/KF5"
-  ];
-
-  cmakeFlags = [
-    "-DKWIN_VERSION=${(builtins.parseDrvName kwin.name).version}"
-  ];
-
-  patches = [
-    ./0001-dde-kwin.pc-make-paths-relative.patch
-    ./fix-paths.patch
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-
-    patchShebangs translate_ts2desktop.sh \
-      translate_generation.sh \
-      translate_desktop2ts.sh \
-      plugins/kwin-xcb/plugin/translate_generation.sh
-
-    fixPath ${deepin-gettext-tools} /usr/bin/deepin-desktop-ts-convert translate_desktop2ts.sh translate_ts2desktop.sh
-
-    fixPath $out /etc/xdg configures/CMakeLists.txt deepin-wm-dbus/deepinwmfaker.cpp
-
-    # TODO: Need environmental patch
-    fixPath /run/current-system/sw /usr/lib plugins/kwin-xcb/plugin/main.cpp
-
-    substituteInPlace configures/kwin-wm-multitaskingview.desktop \
-      --replace "dbus-send" "${dbus}/bin/dbus-send"
-
-    fixPath ${dde-session-ui} /usr/lib/deepin-daemon/dde-warning-dialog deepin-wm-dbus/deepinwmfaker.cpp
-
-    # Correct qt plugin installation path to be within dde-kwin prefix.
-    substituteInPlace CMakeLists.txt \
-      --subst-var-by plugin_path "$out/$qtPluginPrefix"
-  '';
-
-  postInstall = ''
-    # Correct invalid path in .pc
-    substituteInPlace $out/lib/pkgconfig/dde-kwin.pc \
-      --replace "-L/usr/X11R6/lib64" ""
-
-    chmod +x $out/bin/kwin_no_scale
-  '';
-
-  dontWrapQtApps = true;
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      "''${qtWrapperArgs[@]}"
-    )
-  '';
-
-  enableParallelBuilding = true;
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "KWin configuration for Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/dde-kwin";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo worldofpeace ];
-  };
-}
diff --git a/pkgs/desktops/deepin/dde-kwin/fix-paths.patch b/pkgs/desktops/deepin/dde-kwin/fix-paths.patch
deleted file mode 100644
index 1bf576e5c1a55..0000000000000
--- a/pkgs/desktops/deepin/dde-kwin/fix-paths.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index feef49d..ecb7ed2 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -26,9 +26,9 @@ macro(query_qmake args output)
-     endif()
- endmacro()
-
--query_qmake("QT_INSTALL_PLUGINS" QT_INSTALL_PLUGINS)
-+set(QT_INSTALL_PLUGINS @plugin_path@)
-
--set(PLUGIN_INSTALL_PATH ${QT_INSTALL_PLUGINS}/platforms)
-+set(PLUGIN_INSTALL_PATH @plugin_path@/platforms)
- # Find includes in corresponding build directories
- set(CMAKE_INCLUDE_CURRENT_DIR ON)
- # Instruct CMake to run moc automatically when needed
diff --git a/pkgs/desktops/deepin/dde-launcher/default.nix b/pkgs/desktops/deepin/dde-launcher/default.nix
deleted file mode 100644
index 0a50f7177bae9..0000000000000
--- a/pkgs/desktops/deepin/dde-launcher/default.nix
+++ /dev/null
@@ -1,101 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, cmake
-, dde-qt-dbus-factory
-, dde-session-ui
-, deepin
-, deepin-desktop-schemas
-, deepin-wallpapers
-, dtkcore
-, dtkwidget
-, gsettings-qt
-, qtsvg
-, qttools
-, qtx11extras
-, which
-, xdg_utils
-, wrapGAppsHook
-, glib
-}:
-
-mkDerivation rec {
-  pname = "dde-launcher";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0zh6bb0r3pgjrnw9rba46ghdzza1ka1mv7r1znf8gw24wsjgjcpn";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    pkgconfig
-    qttools
-    wrapGAppsHook
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dde-qt-dbus-factory
-    dde-session-ui
-    deepin-desktop-schemas
-    deepin-wallpapers
-    dtkcore
-    dtkwidget
-    glib
-    gsettings-qt
-    qtsvg
-    qtx11extras
-    which
-    xdg_utils
-  ];
-
-  postPatch = ''
-    # debugging
-    searchHardCodedPaths
-
-    substituteInPlace CMakeLists.txt --replace "/usr/share" "$out/share"
-
-    substituteInPlace src/dbusservices/com.deepin.dde.Launcher.service --replace "/usr" "$out"
-
-    substituteInPlace src/historywidget.cpp --replace "xdg-open" "${xdg_utils}/bin/xdg-open"
-    substituteInPlace src/widgets/miniframebottombar.cpp --replace "dde-shutdown" "${dde-session-ui}/bin/dde-shutdown"
-    substituteInPlace src/widgets/miniframerightbar.cpp --replace "which" "${which}/bin/which"
-
-    # Uncomment (and remove space after $) after packaging deepin-manual
-    #substituteInPlace src/sharedeventfilter.cpp --replace "dman" "$ {deepin-manual}/bin/dman"
-
-    for f in src/boxframe/*.cpp; do
-      substituteInPlace $f --replace "/usr/share/backgrounds/default_background.jpg" "${deepin-wallpapers}/share/backgrounds/deepin/desktop.jpg"
-    done
-
-    # note: `dbus-send` path does not need to be hard coded because it is not used for dtkcore >= 2.0.8.0
-  '';
-
-  dontWrapQtApps = true;
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      "''${qtWrapperArgs[@]}"
-    )
-  '';
-
-  postFixup = ''
-    # debugging
-    searchHardCodedPaths $out
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin Desktop Environment launcher module";
-    homepage = "https://github.com/linuxdeepin/dde-launcher";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/dde-network-utils/default.nix b/pkgs/desktops/deepin/dde-network-utils/default.nix
deleted file mode 100644
index d54558acf080b..0000000000000
--- a/pkgs/desktops/deepin/dde-network-utils/default.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, substituteAll
-, qmake
-, pkgconfig
-, qttools
-, dde-qt-dbus-factory
-, proxychains
-, which
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "dde-network-utils";
-  version = "5.0.1";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0670kfnkplf7skkd1ql6y9x15kmrcbdv1005qwkg4vn8hic6s0z3";
-  };
-
-  nativeBuildInputs = [
-    qmake
-    pkgconfig
-    qttools
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dde-qt-dbus-factory
-    proxychains
-    which
-  ];
-
-  patches = [
-    (substituteAll {
-      src = ./fix-paths.patch;
-      inherit which proxychains;
-    })
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths  # for debugging
-    patchShebangs translate_generation.sh
-  '';
-
-  postFixup = ''
-    searchHardCodedPaths $out  # for debugging
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin network utils";
-    homepage = "https://github.com/linuxdeepin/dde-network-utils";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/dde-network-utils/fix-paths.patch b/pkgs/desktops/deepin/dde-network-utils/fix-paths.patch
deleted file mode 100644
index 9f7ecd423c56a..0000000000000
--- a/pkgs/desktops/deepin/dde-network-utils/fix-paths.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -ur dde-network-utils-master.orig/dde-network-utils.pro dde-network-utils-master/dde-network-utils.pro
---- dde-network-utils-master.orig/dde-network-utils.pro	2019-04-04 03:37:46.000000000 -0300
-+++ dde-network-utils-master/dde-network-utils.pro	2019-04-07 05:56:28.283195087 -0300
-@@ -52,6 +52,7 @@
- 
- QMAKE_PKGCONFIG_NAME = libddenetworkutils
- QMAKE_PKGCONFIG_DESCRIPTION = libddenetworkutils
-+QMAKE_PKGCONFIG_PREFIX = $$PREFIX
- QMAKE_PKGCONFIG_INCDIR = $$includes.path
- QMAKE_PKGCONFIG_LIBDIR = $$target.path
- QMAKE_PKGCONFIG_DESTDIR = pkgconfig
-diff -ur dde-network-utils-master.orig/networkworker.cpp dde-network-utils-master/networkworker.cpp
---- dde-network-utils-master.orig/networkworker.cpp	2019-04-04 03:37:46.000000000 -0300
-+++ dde-network-utils-master/networkworker.cpp	2019-04-07 05:54:28.656479216 -0300
-@@ -80,7 +80,7 @@
-         }
-     }
- 
--    const bool isAppProxyVaild = QProcess::execute("which", QStringList() << "/usr/bin/proxychains4") == 0;
-+    const bool isAppProxyVaild = QProcess::execute("@which@/bin/which", QStringList() << "@proxychains@/bin/proxychains4") == 0;
-     m_networkModel->onAppProxyExistChanged(isAppProxyVaild);
- }
- 
diff --git a/pkgs/desktops/deepin/dde-polkit-agent/dde-polkit-agent.plugins-dir.patch b/pkgs/desktops/deepin/dde-polkit-agent/dde-polkit-agent.plugins-dir.patch
deleted file mode 100644
index a6941e975eb41..0000000000000
--- a/pkgs/desktops/deepin/dde-polkit-agent/dde-polkit-agent.plugins-dir.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 4f457d38e9e75bc97ee7dba633bf0cdd61b8cd5b Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
-Date: Fri, 19 Apr 2019 22:01:16 -0300
-Subject: [PATCH] Use an environment variable to find plugins
-
----
- pluginmanager.cpp | 18 ++++++++++++------
- 1 file changed, 12 insertions(+), 6 deletions(-)
-
-diff --git a/pluginmanager.cpp b/pluginmanager.cpp
-index 0c03237..79bdf86 100644
---- a/pluginmanager.cpp
-+++ b/pluginmanager.cpp
-@@ -34,13 +34,19 @@ QList<QButtonGroup*> PluginManager::reduceGetOptions(const QString &actionID)
- void PluginManager::load()
- {
- 
--    QDir dir("/usr/lib/polkit-1-dde/plugins/");
--    QFileInfoList pluginFiles = dir.entryInfoList((QStringList("*.so")));
-+    QStringList pluginsDirs = QProcessEnvironment::systemEnvironment().value("DDE_POLKIT_PLUGINS_DIRS").split(QDir::listSeparator(), QString::SkipEmptyParts);
-+    pluginsDirs.append("/usr/lib/polkit-1-dde/plugins/");
- 
--    for (const QFileInfo &pluginFile : pluginFiles) {
--       AgentExtension *plugin = loadFile(pluginFile.absoluteFilePath());
--       if (plugin)
--           m_plugins << plugin;
-+    for (const QString &dirName : pluginsDirs) {
-+        QDir dir(dirName);
-+
-+        QFileInfoList pluginFiles = dir.entryInfoList((QStringList("*.so")));
-+
-+        for (const QFileInfo &pluginFile : pluginFiles) {
-+            AgentExtension *plugin = loadFile(pluginFile.absoluteFilePath());
-+            if (plugin)
-+                m_plugins << plugin;
-+        }
-     }
- }
- 
--- 
-2.21.0
-
diff --git a/pkgs/desktops/deepin/dde-polkit-agent/default.nix b/pkgs/desktops/deepin/dde-polkit-agent/default.nix
deleted file mode 100644
index 1ca9a80abaf1a..0000000000000
--- a/pkgs/desktops/deepin/dde-polkit-agent/default.nix
+++ /dev/null
@@ -1,60 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, qttools
-, polkit-qt
-, dtkcore
-, dtkwidget
-, dde-qt-dbus-factory
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "dde-polkit-agent";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "00p8syx6rfwhq7wdsk37hm9mvwd0kwj9h0s39hii892h1psd84q9";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-    qttools
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dde-qt-dbus-factory
-    dtkcore
-    dtkwidget
-    polkit-qt
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-    patchShebangs translate_generation.sh
-
-    fixPath $out /usr dde-polkit-agent.pro polkit-dde-authentication-agent-1.desktop
-    fixPath /run/current-system/sw /usr/lib/polkit-1-dde/plugins pluginmanager.cpp
-  '';
-
-  postFixup = ''
-    searchHardCodedPaths $out
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "PolicyKit agent for Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/dde-polkit-agent";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/dde-qt-dbus-factory/default.nix b/pkgs/desktops/deepin/dde-qt-dbus-factory/default.nix
deleted file mode 100644
index c7efb0f4b044f..0000000000000
--- a/pkgs/desktops/deepin/dde-qt-dbus-factory/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, qmake
-, python3
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "dde-qt-dbus-factory";
-  version = "5.0.1";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "1wbh4jgvy3c09ivy0vvfk0azkg4d2sv37y23c9rq49jb3sakcjgm";
-  };
-
-  nativeBuildInputs = [
-    qmake
-    python3
-    deepin.setupHook
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-    fixPath $out /usr \
-      libdframeworkdbus/DFrameworkdbusConfig.in \
-      libdframeworkdbus/libdframeworkdbus.pro
-  '';
-
-  enableParallelBuilding = true;
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Qt DBus interface library for Deepin software";
-    homepage = "https://github.com/linuxdeepin/dde-qt-dbus-factory";
-    license = with licenses; [ gpl3Plus lgpl2Plus ];
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/dde-session-ui/default.nix b/pkgs/desktops/deepin/dde-session-ui/default.nix
deleted file mode 100644
index ff785f16c81df..0000000000000
--- a/pkgs/desktops/deepin/dde-session-ui/default.nix
+++ /dev/null
@@ -1,157 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, dbus
-, dde-daemon
-, dde-qt-dbus-factory
-, deepin
-, deepin-desktop-schemas
-, deepin-gettext-tools
-, deepin-icon-theme
-, deepin-wallpapers
-, dtkcore
-, dtkwidget
-, gnugrep
-, gsettings-qt
-, lightdm_qt
-, onboard
-, qtsvg
-, qttools
-, qtx11extras
-, setxkbmap
-, utillinux
-, which
-, xkeyboard_config
-, xorg
-, xrandr
-, wrapGAppsHook
-}:
-
-mkDerivation rec {
-  pname = "dde-session-ui";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "1gy9nlpkr9ayrs1z2dvd7h0dqlw6fq2m66d9cs48qyfkr6c8l9jj";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-    qttools
-    deepin-gettext-tools
-    wrapGAppsHook
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dbus
-    dde-daemon
-    dde-qt-dbus-factory
-    deepin-desktop-schemas
-    deepin-icon-theme
-    deepin-wallpapers
-    dtkcore
-    dtkwidget
-    gnugrep
-    gsettings-qt
-    lightdm_qt
-    onboard
-    qtsvg
-    qtx11extras
-    setxkbmap
-    utillinux
-    which
-    xkeyboard_config
-    xorg.libXcursor
-    xorg.libXrandr
-    xorg.libXtst
-    xrandr
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths  # debugging
-
-    patchShebangs translate_generation.sh translate_desktop.sh
-
-    substituteInPlace translate_desktop.sh --replace "/usr/bin/deepin-desktop-ts-convert" "deepin-desktop-ts-convert"
-
-    find -type f -exec sed -i -e "s,path = /etc,path = $out/etc," {} +
-    find -type f -exec sed -i -e "s,path = /usr,path = $out," {} +
-    find -type f -exec sed -i -e "s,/usr/share/dde-session-ui,$out/share/dde-session-ui," {} +
-
-    substituteInPlace dde-osd/dde-osd_autostart.desktop --replace "Exec=/usr/lib/deepin-daemon/dde-osd" "Exec=$out/lib/deepin-daemon/dde-osd"
-    substituteInPlace dde-osd/com.deepin.dde.osd.service --replace "Exec=/usr/lib/deepin-daemon/dde-osd" "Exec=$out/lib/deepin-daemon/dde-osd"
-    substituteInPlace dde-lock/com.deepin.dde.lockFront.service --replace "Exec=/usr/bin/dde-lock" "Exec=$out/bin/dde-lock"
-    substituteInPlace dmemory-warning-dialog/com.deepin.dde.MemoryWarningDialog.service --replace "Exec=/usr/bin/dmemory-warning-dialog" "Exec=$out/bin/dmemory-warning-dialog"
-    substituteInPlace dde-warning-dialog/com.deepin.dde.WarningDialog.service --replace "Exec=/usr/lib/deepin-daemon/dde-warning-dialog" "Exec=$out/lib/deepin-daemon/dde-warning-dialog"
-    substituteInPlace dde-shutdown/com.deepin.dde.shutdownFront.service --replace "Exec=/usr/bin/dde-shutdown" "Exec=$out/bin/dde-shutdown"
-    substituteInPlace dde-welcome/com.deepin.dde.welcome.service --replace "Exec=/usr/lib/deepin-daemon/dde-welcome" "Exec=$out/lib/deepin-daemon/dde-welcome"
-    substituteInPlace session-ui-guardien/session-ui-guardien.desktop --replace "Exec=/usr/bin/session-ui-guardien" "Exec=$out/bin/session-ui-guardien"
-    substituteInPlace lightdm-deepin-greeter/lightdm-deepin-greeter.desktop --replace "Exec=/usr/bin/deepin-greeter" "Exec=$out/bin/deepin-greeter"
-    substituteInPlace misc/applications/deepin-toggle-desktop.desktop.in --replace "Exec=/usr/lib/deepin-daemon/desktop-toggle" "Exec=${dde-daemon}/lib/deepin-daemon/desktop-toggle"
-
-    # Uncomment (and remove space after $) after packaging deepin-system-monitor
-    #substituteInPlace dde-shutdown/view/contentwidget.cpp --replace "/usr/bin/deepin-system-monitor" "$ {deepin-system-monitor}/bin/deepin-system-monitor"
-
-    substituteInPlace dde-offline-upgrader/main.cpp --replace "dbus-send" "${dbus}/bin/dbus-send"
-    substituteInPlace dde-osd/kblayoutindicator.cpp --replace "dbus-send" "${dbus}/bin/dbus-send"
-    substituteInPlace dde-shutdown/view/contentwidget.cpp --replace "/usr/share/backgrounds/deepin" "${deepin-wallpapers}/share/backgrounds/deepin"
-    substituteInPlace dde-welcome/mainwidget.cpp --replace "dbus-send" "${dbus}/bin/dbus-send"
-    substituteInPlace dmemory-warning-dialog/src/buttondelegate.cpp --replace "dbus-send" "${dbus}/bin/dbus-send"
-    substituteInPlace dmemory-warning-dialog/src/buttondelegate.cpp --replace "kill" "${utillinux}/bin/dbus-send"
-    substituteInPlace global_util/xkbparser.h --replace "/usr/share/X11/xkb/rules/base.xml" "${xkeyboard_config}/share/X11/xkb/rules/base.xml"
-    substituteInPlace lightdm-deepin-greeter/deepin-greeter --replace "/etc/deepin/greeters.d" "$out/etc/deepin/greeters.d"
-    substituteInPlace lightdm-deepin-greeter/main.cpp --replace "/usr/share/icons/deepin" "${deepin-icon-theme}/share/icons/deepin"
-    substituteInPlace lightdm-deepin-greeter/scripts/00-xrandr --replace "egrep" "${gnugrep}/bin/egrep"
-    substituteInPlace lightdm-deepin-greeter/scripts/00-xrandr --replace "xrandr" "${xrandr}/bin/xrandr"
-    substituteInPlace lightdm-deepin-greeter/scripts/lightdm-deepin-greeter --replace "/usr/bin/lightdm-deepin-greeter" "$out/bin/lightdm-deepin-greeter"
-    substituteInPlace session-ui-guardien/guardien.cpp --replace "dde-lock" "$out/bin/dde-lock"
-    substituteInPlace session-ui-guardien/guardien.cpp --replace "dde-shutdown" "$out/bin/dde-shutdown"
-    substituteInPlace dde-lock/lockworker.cpp --replace "dde-switchtogreeter" "$out/bin/dde-switchtogreeter"
-    substituteInPlace dde-lock/lockworker.cpp --replace "which" "${which}/bin/which"
-    substituteInPlace session-widgets/userinfo.cpp --replace "/usr/share/wallpapers/deepin" "${deepin-wallpapers}/share/wallpapers/deepin"
-    substituteInPlace widgets/fullscreenbackground.cpp --replace "/usr/share/wallpapers/deepin" "${deepin-wallpapers}/share/wallpapers/deepin"
-    substituteInPlace widgets/kblayoutwidget.cpp --replace "setxkbmap" "${setxkbmap}/bin/setxkbmap"
-    substituteInPlace widgets/virtualkbinstance.cpp --replace "onboard" "${onboard}/bin/onboard"
-
-    # fix default background url
-    substituteInPlace widgets/fullscreenbackground.cpp --replace "/usr/share/backgrounds/default_background.jpg" "${deepin-wallpapers}/share/backgrounds/deepin/desktop.jpg"
-
-    # NOTES
-    # - on deepin linux /usr/share/icons/default/index.theme is controlled by alternatives, without an equivalent mechanism in NixOS
-    # - do not wrap dde-dman-portal related files: it appears it has been removed: https://github.com/linuxdeepin/dde-session-ui/commit/3bd028cf135ad22c784c0146e447ef34a69af768
-  '';
-
-  dontWrapQtApps = true;
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      "''${qtWrapperArgs[@]}"
-    )
-  '';
-
-  postFixup = ''
-    # wrapGAppsHook or wrapQtAppsHook does not work with binaries outside of $out/bin or $out/libexec
-    for binary in $out/lib/deepin-daemon/*; do
-      wrapProgram $binary "''${gappsWrapperArgs[@]}"
-    done
-
-    searchHardCodedPaths $out  # debugging
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin desktop-environment - Session UI module";
-    homepage = "https://github.com/linuxdeepin/dde-session-ui";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-anything/default.nix b/pkgs/desktops/deepin/deepin-anything/default.nix
deleted file mode 100644
index 5fa6c93951d0f..0000000000000
--- a/pkgs/desktops/deepin/deepin-anything/default.nix
+++ /dev/null
@@ -1,82 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, fetchpatch
-, pkgconfig
-, qtbase
-, udisks2-qt5
-, utillinux
-, dtkcore
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "deepin-anything";
-  version = "5.0.1";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "1kvyffrii4b012f6ld1ih14qrn7gg5cxbdpbkac0wxb22hnz0azm";
-  };
-
-  patches = [
-    # fix compilation error and add support to kernel 5.6
-    # https://github.com/linuxdeepin/deepin-anything/pull/27
-    (fetchpatch {
-      name = "linux-5.6.patch";
-      url = "https://github.com/linuxdeepin/deepin-anything/commit/764b820c2bcd7248993349b32f91043fc58ee958.patch";
-      sha256 = "1ww4xllxc2s04px6fy8wp5cyw54xaz155ry30sqz21vl8awfr36h";
-    })
-  ];
-
-  outputs = [ "out" "modsrc" ];
-
-  nativeBuildInputs = [
-    pkgconfig
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dtkcore
-    qtbase
-    udisks2-qt5
-    utillinux
-  ];
-
-  enableParallelBuilding = true;
-
-  makeFlags = [
-    "DEB_HOST_MULTIARCH="
-    "PREFIX=${placeholder "out"}"
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths  # for debugging
-    fixPath $modsrc /usr/src Makefile
-    fixPath $out /usr Makefile
-    fixPath $out /usr server/tool/tool.pro
-    fixPath $out /etc server/tool/tool.pro
-    fixPath $out /usr/bin \
-      server/tool/deepin-anything-tool.service \
-      server/tool/com.deepin.anything.service \
-      server/monitor/deepin-anything-monitor.service
-    sed -e 's,/lib/systemd,$$PREFIX/lib/systemd,' -i server/monitor/src/src.pro server/tool/tool.pro
-  '';
-
-  postFixup = ''
-    searchHardCodedPaths $out  # for debugging
-    searchHardCodedPaths $modsrc  # for debugging
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin file search tool";
-    homepage = "https://github.com/linuxdeepin/deepin-anything";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-calculator/default.nix b/pkgs/desktops/deepin/deepin-calculator/default.nix
deleted file mode 100644
index 67ead7d314aaf..0000000000000
--- a/pkgs/desktops/deepin/deepin-calculator/default.nix
+++ /dev/null
@@ -1,57 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, qttools
-, qtsvg
-, dtkcore
-, dtkwidget
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "deepin-calculator";
-  version = "5.0.1";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0f26y7b3giybybhvlzbnwcw8kidzvhq66h0c15n9ww81gnlqf7v5";
-  };
-
-  nativeBuildInputs = [
-    qmake
-    pkgconfig
-    qttools
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dtkcore
-    dtkwidget
-    qtsvg
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths  # debugging
-    patchShebangs translate_generation.sh
-    fixPath $out /usr deepin-calculator.pro
-    substituteInPlace deepin-calculator.desktop --replace "Exec=deepin-calculator" "Exec=$out/bin/deepin-calculator"
-  '';
-
-  postFixup = ''
-    searchHardCodedPaths $out  # debugging
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Easy to use calculator for Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/deepin-calculator";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-desktop-base/default.nix b/pkgs/desktops/deepin/deepin-desktop-base/default.nix
deleted file mode 100644
index 74fa53b715d0f..0000000000000
--- a/pkgs/desktops/deepin/deepin-desktop-base/default.nix
+++ /dev/null
@@ -1,68 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, deepin-wallpapers
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "deepin-desktop-base";
-  version = "2019.07.10";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0rs7bjy35k5gc5nbba1cijhdz16zny30lgmcf2ckx1pkdszk2vra";
-  };
-
-  nativeBuildInputs = [
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    deepin-wallpapers
-  ];
-
-  # TODO: Fedora recommended dependencies:
-  #   deepin-wallpapers
-  #   plymouth-theme-deepin
-
-  postPatch = ''
-    searchHardCodedPaths
-
-    fixPath $out /etc Makefile
-    fixPath $out /usr Makefile
-
-    # Remove Deepin distro's lsb-release
-    # Don't override systemd timeouts
-    # Remove apt-specific templates
-    echo ----------------------------------------------------------------
-    echo grep --color=always -E 'lsb-release|systemd|python-apt|backgrounds' Makefile
-    grep --color=always -E 'lsb-release|systemd|python-apt|backgrounds' Makefile
-    echo ----------------------------------------------------------------
-    sed -i -E '/lsb-release|systemd|python-apt|backgrounds/d' Makefile
-  '';
-
-  postInstall = ''
-    # Make a symlink for deepin-version
-    ln -s ../lib/deepin/desktop-version $out/etc/deepin-version
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Base assets and definitions for Deepin Desktop Environment";
-    # TODO: revise
-    longDescription = ''
-      This package provides some components for Deepin desktop environment.
-      - deepin logo
-      - deepin desktop version
-      - login screen background image
-      - language information
-    '';
-    homepage = "https://github.com/linuxdeepin/deepin-desktop-base";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-desktop-schemas/default.nix b/pkgs/desktops/deepin/deepin-desktop-schemas/default.nix
deleted file mode 100644
index 15f9498cf0db5..0000000000000
--- a/pkgs/desktops/deepin/deepin-desktop-schemas/default.nix
+++ /dev/null
@@ -1,79 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, python3
-, dconf
-, glib
-, deepin-gtk-theme
-, deepin-icon-theme
-, deepin-sound-theme
-, deepin-wallpapers
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "deepin-desktop-schemas";
-  version = "3.13.9";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "1c69j6s7561zb1hrd1j3ihji1nvpgfzfgnp6svsv8jd8dg8vs8l1";
-  };
-
-  nativeBuildInputs = [
-    python3
-    glib.dev
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dconf
-    deepin-gtk-theme
-    deepin-icon-theme
-    deepin-sound-theme
-    deepin-wallpapers
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-
-    # fix default background url
-    sed -i -e 's,/usr/share/backgrounds/default_background.jpg,/usr/share/backgrounds/deepin/desktop.jpg,' \
-      overrides/common/com.deepin.wrap.gnome.desktop.override
-
-    fixPath ${deepin-wallpapers} /usr/share/backgrounds \
-      overrides/common/com.deepin.wrap.gnome.desktop.override
-
-    fixPath ${deepin-wallpapers} /usr/share/wallpapers/deepin \
-      schemas/com.deepin.dde.appearance.gschema.xml
-
-    # still hardcoded paths:
-    #   /etc/gnome-settings-daemon/xrandr/monitors.xml                                ? gnome3.gnome-settings-daemon
-    #   /usr/share/backgrounds/gnome/adwaita-lock.jpg                                 ? gnome3.gnome-backgrounds
-    #   /usr/share/backgrounds/gnome/adwaita-timed.xml                                gnome3.gnome-backgrounds
-    #   /usr/share/desktop-directories
-  '';
-
-  makeFlags = [
-    "PREFIX=${placeholder "out"}"
-  ];
-
-  doCheck = true;
-  checkTarget = "test";
-
-  postInstall = ''
-    glib-compile-schemas --strict $out/share/glib-2.0/schemas
-    searchHardCodedPaths $out
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "GSettings deepin desktop-wide schemas";
-    homepage = "https://github.com/linuxdeepin/deepin-desktop-schemas";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-editor/default.nix b/pkgs/desktops/deepin/deepin-editor/default.nix
deleted file mode 100644
index 0124ca8cc9e23..0000000000000
--- a/pkgs/desktops/deepin/deepin-editor/default.nix
+++ /dev/null
@@ -1,72 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, cmake
-, deepin
-, dtkcore
-, dtkwidget
-, kcodecs
-, qttools
-, syntax-highlighting
-, wrapQtAppsHook
-}:
-
-stdenv.mkDerivation rec {
-  pname = "deepin-editor";
-  version = "1.2.9.1";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0g7c3adqwn8i4ndxdrzibahr75dddz1fiqnsh3bjj1jjr86rv4ks";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    pkgconfig
-    qttools
-    wrapQtAppsHook
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dtkcore
-    dtkwidget
-    kcodecs
-    syntax-highlighting
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths  # debugging
-
-    patchShebangs translate_generation.sh
-
-    fixPath $out /usr \
-      CMakeLists.txt \
-      dedit/main.cpp \
-      src/resources/settings.json \
-      src/thememodule/themelistmodel.cpp
-
-    substituteInPlace deepin-editor.desktop \
-      --replace "Exec=deepin-editor" "Exec=$out/bin/deepin-editor"
-
-    substituteInPlace src/editwrapper.cpp \
-      --replace "appExec = \"deepin-editor\"" "appExec = \"$out/bin/deepin-editor\""
-  '';
-
-  postFixup = ''
-    searchHardCodedPaths $out  # debugging
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Simple editor for Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/deepin-editor";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo worldofpeace ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-gettext-tools/default.nix b/pkgs/desktops/deepin/deepin-gettext-tools/default.nix
deleted file mode 100644
index 432add458debf..0000000000000
--- a/pkgs/desktops/deepin/deepin-gettext-tools/default.nix
+++ /dev/null
@@ -1,55 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, gettext
-, python3Packages
-, perlPackages
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "deepin-gettext-tools";
-  version = "1.0.8";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "03cwa82dd14a31v44jd3z0kpiri6g21ar4f48s8ph78nvjy55880";
-  };
-
-  nativeBuildInputs = [
-    python3Packages.wrapPython
-  ];
-
-  buildInputs = [
-    gettext
-    perlPackages.perl
-    perlPackages.XMLLibXML
-    perlPackages.ConfigTiny
-    python3Packages.python
-  ];
-
-  makeFlags = [
-    "PREFIX=${placeholder "out"}"
-  ];
-
-  postPatch = ''
-    sed -e 's/sudo cp/cp/' -i src/generate_mo.py
-  '';
-
-  postFixup = ''
-    wrapPythonPrograms
-    wrapPythonProgramsIn "$out/lib/${pname}"
-    wrapProgram $out/bin/deepin-desktop-ts-convert --set PERL5LIB $PERL5LIB
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin Internationalization utilities";
-    homepage = "https://github.com/linuxdeepin/deepin-gettext-tools";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-gtk-theme/default.nix b/pkgs/desktops/deepin/deepin-gtk-theme/default.nix
deleted file mode 100644
index eee074705852b..0000000000000
--- a/pkgs/desktops/deepin/deepin-gtk-theme/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, gtk-engine-murrine
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "deepin-gtk-theme";
-  version = "17.10.11";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = "deepin-gtk-theme";
-    rev = version;
-    sha256 = "0zs6mq70yd1k3d9zm3q6zxnw1md56r4imad5imdxwx58yxdx47fw";
-  };
-
-  propagatedUserEnvPkgs = [
-    gtk-engine-murrine
-  ];
-
-  makeFlags = [
-    "PREFIX=${placeholder "out"}"
-  ];
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin GTK Theme";
-    homepage = "https://github.com/linuxdeepin/deepin-gtk-theme";
-    license = licenses.lgpl3;
-    platforms = platforms.unix;
-    maintainers = [ maintainers.romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-icon-theme/default.nix b/pkgs/desktops/deepin/deepin-icon-theme/default.nix
deleted file mode 100644
index b56b219faffaf..0000000000000
--- a/pkgs/desktops/deepin/deepin-icon-theme/default.nix
+++ /dev/null
@@ -1,67 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, gtk3
-, xcursorgen
-, papirus-icon-theme
-, hicolor-icon-theme
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "deepin-icon-theme";
-  version = "2020.05.21";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0b1s6kf0q804zbbghly981wzacy1spi8168shf3x8w95rqj6463p";
-  };
-
-  nativeBuildInputs = [
-    gtk3
-    xcursorgen
-  ];
-
-  propagatedBuildInputs = [
-    papirus-icon-theme
-    hicolor-icon-theme
-  ];
-
-  dontDropIconThemeCache = true;
-
-  buildTargets = "all hicolor-links";
-
-  postPatch = ''
-    # fix: hicolor links should follow the deepin -> bloom naming change
-    # https://github.com/linuxdeepin/deepin-icon-theme/pull/24
-    substituteInPlace tools/hicolor.links --replace deepin bloom
-
-    substituteInPlace Sea/index.theme --replace Inherits=deepin Inherits=bloom
-  '';
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out/share/icons
-    cp -vai bloom* Sea $out/share/icons
-
-    for theme in $out/share/icons/*; do
-      gtk-update-icon-cache $theme
-    done
-
-    cp -vai usr/share/icons/hicolor $out/share/icons
-
-    runHook postInstall
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Icons for the Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/deepin-icon-theme";
-    license = licenses.gpl3;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-image-viewer/default.nix b/pkgs/desktops/deepin/deepin-image-viewer/default.nix
deleted file mode 100644
index 43c18c85abcbd..0000000000000
--- a/pkgs/desktops/deepin/deepin-image-viewer/default.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, qttools
-, qtsvg
-, qtx11extras
-, dtkcore
-, dtkwidget
-, qt5integration
-, freeimage
-, libraw
-, libexif
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "deepin-image-viewer";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "01524hfdy3wvdf07n9b3qb8jdpxzg2hwjpl4gxvr68qws5nbnb3c";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-    qttools
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    qtsvg
-    qtx11extras
-    dtkcore
-    dtkwidget
-    qt5integration
-    freeimage
-    libraw
-    libexif
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-    patchShebangs viewer/generate_translations.sh
-    fixPath $out /usr viewer/com.deepin.ImageViewer.service
-    sed -i qimage-plugins/freeimage/freeimage.pro \
-           qimage-plugins/libraw/libraw.pro \
-      -e "s,\$\$\[QT_INSTALL_PLUGINS\],$out/$qtPluginPrefix,"
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Image Viewer for Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/deepin-image-viewer";
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux;
-    badPlatforms = [ "aarch64-linux" ]; # See https://github.com/NixOS/nixpkgs/pull/46463#issuecomment-420274189
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-menu/default.nix b/pkgs/desktops/deepin/deepin-menu/default.nix
deleted file mode 100644
index 983fe4e1c4d5a..0000000000000
--- a/pkgs/desktops/deepin/deepin-menu/default.nix
+++ /dev/null
@@ -1,54 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, dtkcore
-, dtkwidget
-, qt5integration
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "deepin-menu";
-  version = "3.4.8";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "09i0ybllymlj7s46pxma5py6x8nknfja4gxn5gj9kpf2c37qsqjc";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dtkcore
-    dtkwidget
-    qt5integration
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-    fixPath $out /usr \
-      data/com.deepin.menu.service \
-      deepin-menu.desktop \
-      deepin-menu.pro
-  '';
-
-  enableParallelBuilding = true;
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin menu service";
-    homepage = "https://github.com/linuxdeepin/deepin-menu";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-movie-reborn/default.nix b/pkgs/desktops/deepin/deepin-movie-reborn/default.nix
deleted file mode 100644
index 68daffb0d1570..0000000000000
--- a/pkgs/desktops/deepin/deepin-movie-reborn/default.nix
+++ /dev/null
@@ -1,85 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, fetchpatch
-, cmake
-, pkgconfig
-, qttools
-, qtx11extras
-, dtkcore
-, dtkwidget
-, ffmpeg_3
-, ffmpegthumbnailer
-, mpv
-, pulseaudio
-, libdvdnav
-, libdvdread
-, xorg
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "deepin-movie-reborn";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0cly8q0514a58s3h3wsvx9yxar7flz6i2q8xkrkfjias22b3z7b0";
-  };
-
-  outputs = [ "out" "dev" ];
-
-  nativeBuildInputs = [
-    cmake
-    pkgconfig
-    qttools
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dtkcore
-    dtkwidget
-    ffmpeg_3
-    ffmpegthumbnailer
-    libdvdnav
-    libdvdread
-    mpv
-    pulseaudio
-    qtx11extras
-    xorg.libXdmcp
-    xorg.libXtst
-    xorg.libpthreadstubs
-    xorg.xcbproto
-  ];
-
-  patches = [
-    # fix: build failed if cannot find dtk-settings tool
-    (fetchpatch {
-      url = "https://github.com/linuxdeepin/deepin-movie-reborn/commit/fbb307b.patch";
-      sha256 = "0915za0khki0729rvcfpxkh6vxhqwc47cgcmjc90kfq1004221vx";
-    })
-  ];
-
-  NIX_LDFLAGS = "-ldvdnav";
-
-  postPatch = ''
-    searchHardCodedPaths  # debugging
-
-    sed -i src/libdmr/libdmr.pc.in -e "s,/usr,$out," -e 's,libdir=''${prefix}/,libdir=,'
-
-    substituteInPlace src/deepin-movie.desktop \
-      --replace "Exec=deepin-movie" "Exec=$out/bin/deepin-movie"
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin movie player";
-    homepage = "https://github.com/linuxdeepin/deepin-movie-reborn";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-shortcut-viewer/default.nix b/pkgs/desktops/deepin/deepin-shortcut-viewer/default.nix
deleted file mode 100644
index 76d8847b73fce..0000000000000
--- a/pkgs/desktops/deepin/deepin-shortcut-viewer/default.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, dtkcore
-, dtkwidget
-, qt5integration
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "deepin-shortcut-viewer";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "13vz8kjdqkrhgpvdgrvwn62vwzbyqp88hjm5m4rcqg3bh56709ma";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-  ];
-
-  buildInputs = [
-    dtkcore
-    dtkwidget
-    qt5integration
-  ];
-
-  enableParallelBuilding = true;
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Pop-up shortcut viewer for Deepin applications";
-    homepage = "https://github.com/linuxdeepin/deepin-shortcut-viewer";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-sound-theme/default.nix b/pkgs/desktops/deepin/deepin-sound-theme/default.nix
deleted file mode 100644
index e71c0cb77c5bd..0000000000000
--- a/pkgs/desktops/deepin/deepin-sound-theme/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "deepin-sound-theme";
-  version = "15.10.3";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = "deepin-sound-theme";
-    rev = version;
-    sha256 = "1sw4nrn7q7wk1hpicm05apyc0mihaw42iqm52wb8ib8gm1qiylr9";
-  };
-
-  makeFlags = [
-    "PREFIX=${placeholder "out"}"
-  ];
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin sound theme";
-    homepage = "https://github.com/linuxdeepin/deepin-sound-theme";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = [ maintainers.romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-terminal/default.nix b/pkgs/desktops/deepin/deepin-terminal/default.nix
deleted file mode 100644
index ae31213794278..0000000000000
--- a/pkgs/desktops/deepin/deepin-terminal/default.nix
+++ /dev/null
@@ -1,117 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, pkgconfig
-, cmake
-, ninja
-, vala_0_40
-, fetchpatch
-, gettext
-, at-spi2-core
-, dbus
-, epoxy
-, expect
-, gtk3
-, json-glib
-, libXdmcp
-, libgee
-, libpthreadstubs
-, librsvg
-, libsecret
-, libtasn1
-, libxcb
-, libxkbcommon
-, p11-kit
-, pcre
-, vte
-, wnck
-, libselinux
-, gnutls
-, pcre2
-, libsepol
-, utillinux
-, deepin-menu
-, deepin-shortcut-viewer
-, deepin
-, wrapGAppsHook
-}:
-
-stdenv.mkDerivation rec {
-  pname = "deepin-terminal";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = "deepin-terminal";
-    rev = version;
-    sha256 = "1929saj828b438d07caw3cjhqq60v6gni7mi3fqrg9wdjz81xwv7";
-  };
-
-  patches = [
-    # Fix build with VTE 0.60
-    (fetchpatch {
-      url = "https://github.com/linuxdeepin/deepin-terminal/commit/542d1035b609698ee81aa7971d20ca8e5930743d.patch";
-      sha256 = "1pihiy70yc25fm5fx7i7v9gmi65v4mhldvi7xwv8rgr2z6hbfj41";
-    })
-  ];
-
-  nativeBuildInputs = [
-    pkgconfig
-    cmake
-    ninja
-    vala_0_40 # xcb.vapi:411.3-411.48: error: missing return statement at end of subroutine body
-    gettext
-    libselinux libsepol utillinux # required by gio
-    deepin.setupHook
-    wrapGAppsHook
-  ];
-
-  buildInputs = [
-    at-spi2-core
-    dbus
-    deepin-menu
-    deepin-shortcut-viewer
-    epoxy
-    expect
-    gtk3
-    json-glib
-    libXdmcp
-    libgee
-    libpthreadstubs
-    librsvg
-    libsecret
-    libtasn1
-    libxcb
-    libxkbcommon
-    p11-kit
-    pcre
-    vte
-    wnck
-    gnutls
-    pcre2
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-  '';
-
-  cmakeFlags = [
-    "-DTEST_BUILD=OFF"
-    "-DUSE_VENDOR_LIB=OFF"
-    "-DVERSION=${version}"
-  ];
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Default terminal emulator for Deepin";
-    longDescription = ''
-      Deepin terminal, it sharpens your focus in the world of command line!
-      It is an advanced terminal emulator with workspace, multiple
-      windows, remote management, quake mode and other features.
-    '';
-    homepage = "https://github.com/linuxdeepin/deepin-terminal";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = [ maintainers.romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-turbo/default.nix b/pkgs/desktops/deepin/deepin-turbo/default.nix
deleted file mode 100644
index 6bba51ac674b9..0000000000000
--- a/pkgs/desktops/deepin/deepin-turbo/default.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, cmake
-, pkgconfig
-, qtbase
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "deepin-turbo";
-  version = "0.0.3";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "15l0pgszmbirlaxj04ishj43kyvigsl1yaf58kxlbdb3lkmcp5f3";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    pkgconfig
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    qtbase
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths  # for debugging
-    fixPath $out /usr/lib/systemd src/booster-dtkwidget/CMakeLists.txt
-    fixPath $out /usr/lib/deepin-turbo src/booster-dtkwidget/deepin-turbo-booster-dtkwidget.service
-  '';
-
-  postFixup = ''
-    searchHardCodedPaths $out  # for debugging
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "A daemon that helps to launch applications faster";
-    homepage = "https://github.com/linuxdeepin/deepin-turbo";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-wallpapers/default.nix b/pkgs/desktops/deepin/deepin-wallpapers/default.nix
deleted file mode 100644
index 4fa3d6043d5cb..0000000000000
--- a/pkgs/desktops/deepin/deepin-wallpapers/default.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, dde-api
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "deepin-wallpapers";
-  version = "1.7.7";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = "deepin-wallpapers";
-    rev = version;
-    sha256 = "09cfnxbpms98ibqbi4xd51181q3az5n8rmndcdr9w12kyzniz7xv";
-  };
-
-  nativeBuildInputs = [
-    dde-api
-    deepin.setupHook
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths # debugging
-
-    sed -i -e "s:/usr/lib/deepin-api:${dde-api}/lib/deepin-api:" Makefile
-    sed -i -e "s:/usr/share/wallpapers:$out/share/wallpapers:" Makefile
-  '';
-
-  installPhase = ''
-    mkdir -p $out/share/wallpapers/deepin
-    cp -a deepin/* deepin-community/* deepin-private/* $out/share/wallpapers/deepin
-    mkdir -p $out/var/cache
-    cp -a image-blur $out/var/cache
-    
-    # Suggested by upstream
-    mkdir -p $out/share/backgrounds/deepin
-    ln -s ../../wallpapers/deepin/Hummingbird_by_Shu_Le.jpg $out/share/backgrounds/deepin/desktop.jpg
-    ln -s $(echo -n $out/share/wallpapers/deepin/Hummingbird_by_Shu_Le.jpg | md5sum | cut -d " " -f 1).jpg \
-      $out/var/cache/image-blur/$(echo -n $out/share/backgrounds/deepin/desktop.jpg | md5sum | cut -d " " -f 1).jpg
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Wallpapers for Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/deepin-wallpapers";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = [ maintainers.romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/default.nix b/pkgs/desktops/deepin/default.nix
deleted file mode 100644
index b177b2ccf3560..0000000000000
--- a/pkgs/desktops/deepin/default.nix
+++ /dev/null
@@ -1,62 +0,0 @@
-{ pkgs, makeScope, libsForQt5 }:
-let
-  packages = self: with self; {
-    setupHook = ./setup-hook.sh;
-
-    # Update script tailored to deepin packages from git repository
-    updateScript = { pname, version, src }:
-      pkgs.genericUpdater {
-        inherit pname version;
-        attrPath = "deepin.${pname}";
-        versionLister = "${pkgs.common-updater-scripts}/bin/list-git-tags ${src.meta.homepage}";
-        ignoredVersions = "^2014(\\.|rc)|^v[0-9]+";
-      };
-
-    dde-api = callPackage ./dde-api { };
-    dde-calendar = callPackage ./dde-calendar { };
-    dde-control-center = callPackage ./dde-control-center { };
-    dde-daemon = callPackage ./dde-daemon { };
-    dde-dock = callPackage ./dde-dock { };
-    dde-file-manager = callPackage ./dde-file-manager { };
-    dde-kwin = callPackage ./dde-kwin { };
-    dde-launcher = callPackage ./dde-launcher { };
-    dde-network-utils = callPackage ./dde-network-utils { };
-    dde-polkit-agent = callPackage ./dde-polkit-agent { };
-    dde-qt-dbus-factory = callPackage ./dde-qt-dbus-factory { };
-    dde-session-ui = callPackage ./dde-session-ui { };
-    deepin-anything = callPackage ./deepin-anything { };
-    deepin-calculator = callPackage ./deepin-calculator { };
-    deepin-desktop-base = callPackage ./deepin-desktop-base { };
-    deepin-desktop-schemas = callPackage ./deepin-desktop-schemas { };
-    deepin-editor = callPackage ./deepin-editor { };
-    deepin-gettext-tools = callPackage ./deepin-gettext-tools { };
-    deepin-gtk-theme = callPackage ./deepin-gtk-theme { };
-    deepin-icon-theme = callPackage ./deepin-icon-theme { };
-    deepin-image-viewer = callPackage ./deepin-image-viewer { };
-    deepin-menu = callPackage ./deepin-menu { };
-    deepin-movie-reborn = callPackage ./deepin-movie-reborn { };
-    deepin-shortcut-viewer = callPackage ./deepin-shortcut-viewer { };
-    deepin-sound-theme = callPackage ./deepin-sound-theme { };
-    deepin-terminal = callPackage ./deepin-terminal {
-      wnck = pkgs.libwnck3;
-    };
-    deepin-turbo = callPackage ./deepin-turbo { };
-    deepin-wallpapers = callPackage ./deepin-wallpapers { };
-    disomaster = callPackage ./disomaster { };
-    dpa-ext-gnomekeyring = callPackage ./dpa-ext-gnomekeyring { };
-    dtkcore = callPackage ./dtkcore { };
-    dtkwidget = callPackage ./dtkwidget { };
-    dtkwm = callPackage ./dtkwm { };
-    go-dbus-factory = callPackage ./go-dbus-factory { };
-    go-gir-generator = callPackage ./go-gir-generator { };
-    go-lib = callPackage ./go-lib { };
-    qcef = callPackage ./qcef { };
-    qt5integration = callPackage ./qt5integration { };
-    qt5platform-plugins = callPackage ./qt5platform-plugins { };
-    startdde = callPackage ./startdde { };
-    udisks2-qt5 = callPackage ./udisks2-qt5 { };
-
-  };
-
-in
-makeScope libsForQt5.newScope packages
diff --git a/pkgs/desktops/deepin/disomaster/default.nix b/pkgs/desktops/deepin/disomaster/default.nix
deleted file mode 100644
index 89cbe34ceaa26..0000000000000
--- a/pkgs/desktops/deepin/disomaster/default.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, qtbase
-, libisoburn
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "disomaster";
-  version = "5.0.1";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "1kmhlnw37pdmlf7k9zry657xlhz40m9nzg361kiyisn186pfqpws";
-  };
-
-  nativeBuildInputs = [
-    deepin.setupHook
-    pkgconfig
-    qmake
-  ];
-
-  buildInputs = [
-    libisoburn
-    qtbase
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths  # debugging
-  '';
-
-  qmakeFlags = [
-    "QMAKE_PKGCONFIG_PREFIX=${placeholder "out"}"
-  ];
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "A libisoburn wrapper for Qt";
-    homepage = "https://github.com/linuxdeepin/disomaster";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo worldofpeace ];
-  };
-}
diff --git a/pkgs/desktops/deepin/dpa-ext-gnomekeyring/default.nix b/pkgs/desktops/deepin/dpa-ext-gnomekeyring/default.nix
deleted file mode 100644
index 2caef7ce91661..0000000000000
--- a/pkgs/desktops/deepin/dpa-ext-gnomekeyring/default.nix
+++ /dev/null
@@ -1,49 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, qttools
-, gnome3
-, dde-polkit-agent
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "dpa-ext-gnomekeyring";
-  version = "5.0.1";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "168j42nwyw7vcgwc0fha2pjpwwlgir70fq1hns4ia1dkdqa1nhzw";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-    qttools
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dde-polkit-agent
-    gnome3.libgnome-keyring
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-    patchShebangs translate_generation.sh
-    fixPath $out /usr dpa-ext-gnomekeyring.pro gnomekeyringextention.cpp
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "GNOME keyring extension for dde-polkit-agent";
-    homepage = "https://github.com/linuxdeepin/dpa-ext-gnomekeyring";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/dtkcore/default.nix b/pkgs/desktops/deepin/dtkcore/default.nix
deleted file mode 100644
index 570b0cc2c11ea..0000000000000
--- a/pkgs/desktops/deepin/dtkcore/default.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, gsettings-qt
-, pythonPackages
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "dtkcore";
-  version = "2.1.1";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0xdh6mmrv8yr6mjmlwj0fv037parkkwfwlaibcbrskwxqp9iri1y";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-    pythonPackages.wrapPython
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    gsettings-qt
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths  # debugging
-
-    # Fix shebang
-    sed -i tools/script/dtk-translate.py -e "s,#!env,#!/usr/bin/env,"
-  '';
-
-  qmakeFlags = [
-    "DTK_VERSION=${version}"
-    "LIB_INSTALL_DIR=${placeholder "out"}/lib"
-    "MKSPECS_INSTALL_DIR=${placeholder "out"}/mkspecs"
-  ];
-
-  postFixup = ''
-    chmod +x $out/lib/libdtk-${version}/DCore/bin/*.py
-    wrapPythonProgramsIn "$out/lib/libdtk-${version}/DCore/bin" "$out $pythonPath"
-    searchHardCodedPaths $out  # debugging
-  '';
-
-  enableParallelBuilding = true;
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin tool kit core library";
-    homepage = "https://github.com/linuxdeepin/dtkcore";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/dtkwidget/default.nix b/pkgs/desktops/deepin/dtkwidget/default.nix
deleted file mode 100644
index 9be222830db45..0000000000000
--- a/pkgs/desktops/deepin/dtkwidget/default.nix
+++ /dev/null
@@ -1,65 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, qttools
-, qtmultimedia
-, qtsvg
-, qtx11extras
-, librsvg
-, libstartup_notification
-, gsettings-qt
-, dde-qt-dbus-factory
-, dtkcore
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "dtkwidget";
-  version = "2.1.1";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0yqrm1p0k1843ldvcd79dxl26ybyl5kljl6vwhzc58sx7pw4qmvh";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-    qttools
-  ];
-
-  buildInputs = [
-    qtmultimedia
-    qtsvg
-    qtx11extras
-    librsvg
-    libstartup_notification
-    gsettings-qt
-    dde-qt-dbus-factory
-    dtkcore
-  ];
-
-  outRef = placeholder "out";
-
-  qmakeFlags = [
-    "INCLUDE_INSTALL_DIR=${outRef}/include"
-    "LIB_INSTALL_DIR=${outRef}/lib"
-    "QT_HOST_DATA=${outRef}"
-  ];
-
-  enableParallelBuilding = true;
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin graphical user interface library";
-    homepage = "https://github.com/linuxdeepin/dtkwidget";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/dtkwm/default.nix b/pkgs/desktops/deepin/dtkwm/default.nix
deleted file mode 100644
index 56031f11492a4..0000000000000
--- a/pkgs/desktops/deepin/dtkwm/default.nix
+++ /dev/null
@@ -1,58 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, fetchpatch
-, pkgconfig
-, qmake
-, qtx11extras
-, dtkcore
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "dtkwm";
-  version = "2.0.12";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0rdzzqsggqarldwb4yp5s4sf5czicgxbdmibjn0pw32129r2d1g3";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-  ];
-
-  buildInputs = [
-    dtkcore
-    qtx11extras
-  ];
-
-  patches = [
-    # Set DTK_MODULE_NAME
-    (fetchpatch {
-      url = "https://github.com/linuxdeepin/dtkwm/commit/2490891a.patch";
-      sha256 = "0krydxjpnaihkgs1n49b6mcf3rd3lkispcnkb1j5vpfs9hp9f48j";
-    })
-  ];
-
-  outRef = placeholder "out";
-
-  qmakeFlags = [
-    "QT_HOST_DATA=${outRef}"
-    "INCLUDE_INSTALL_DIR=${outRef}/include"
-    "LIB_INSTALL_DIR=${outRef}/lib"
-  ];
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin graphical user interface library";
-    homepage = "https://github.com/linuxdeepin/dtkwm";
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/go-dbus-factory/default.nix b/pkgs/desktops/deepin/go-dbus-factory/default.nix
deleted file mode 100644
index 1c1afd9d099c0..0000000000000
--- a/pkgs/desktops/deepin/go-dbus-factory/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "go-dbus-factory";
-  version = "0.9.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "06fqyad9f50gcjsjkh7929yyaprahdjhnd0dr4gl2797a7wysl3f";
-  };
-
-  makeFlags = [
-    "PREFIX=${placeholder "out"}"
-  ];
-
-  postPatch = ''
-    sed -i -e 's:/share/gocode:/share/go:' Makefile
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "GoLang DBus factory for the Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/go-dbus-factory";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/go-gir-generator/default.nix b/pkgs/desktops/deepin/go-gir-generator/default.nix
deleted file mode 100644
index 7768f9afc85e9..0000000000000
--- a/pkgs/desktops/deepin/go-gir-generator/default.nix
+++ /dev/null
@@ -1,59 +0,0 @@
-{ stdenv
-, fetchpatch
-, fetchFromGitHub
-, pkgconfig
-, go
-, gobject-introspection
-, libgudev
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "go-gir-generator";
-  version = "2.0.2";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "1ydzll8zlk897iqcihvv6p046p0rzr4qqz2drmz2nx95njp8n03a";
-  };
-
-  patches = [
-    # Fix compatibility with glib 2.63+
-    # https://github.com/linuxdeepin/go-gir-generator/pull/11
-    (fetchpatch {
-      url = "https://github.com/linuxdeepin/go-gir-generator/commit/7dea15a1a491f28d2ac8c411068ccefeba01aae3.patch";
-      sha256 = "182d30qkj1rx9ynpj9zfxh53nykvfq9wxk4502zc42gfvadgzfgd";
-    })
-  ];
-
-  nativeBuildInputs = [
-    pkgconfig
-    go
-  ];
-
-  buildInputs = [
-    gobject-introspection
-    libgudev
-  ];
-
-  postPatch = ''
-    sed -i -e 's:/share/gocode:/share/go:' Makefile
-  '';
-
-  makeFlags = [
-    "PREFIX=${placeholder "out"}"
-    "GOCACHE=$(TMPDIR)/go-cache"
-  ];
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Generate static golang bindings for GObject";
-    homepage = "https://github.com/linuxdeepin/go-gir-generator";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/go-lib/default.nix b/pkgs/desktops/deepin/go-lib/default.nix
deleted file mode 100644
index 7129d912e30db..0000000000000
--- a/pkgs/desktops/deepin/go-lib/default.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, glib
-, xorg
-, gdk-pixbuf
-, pulseaudio
-, mobile-broadband-provider-info
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "go-lib";
-  version = "5.4.5";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "021sq7nzvfwsa5ccsb3vdjk53m7cf693xm4wkdkrkf8pja6vz94q";
-  };
-
-  buildInputs = [
-    glib
-    xorg.libX11
-    gdk-pixbuf
-    pulseaudio
-    mobile-broadband-provider-info
-  ];
-
-  installPhase = ''
-    mkdir -p $out/share/go/src/pkg.deepin.io/lib
-    cp -a * $out/share/go/src/pkg.deepin.io/lib
-
-    rm -r $out/share/go/src/pkg.deepin.io/lib/debian
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Go bindings for Deepin Desktop Environment development";
-    homepage = "https://github.com/linuxdeepin/go-lib";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/qcef/default.nix b/pkgs/desktops/deepin/qcef/default.nix
deleted file mode 100644
index c37915377d885..0000000000000
--- a/pkgs/desktops/deepin/qcef/default.nix
+++ /dev/null
@@ -1,127 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, cmake
-, qtbase
-, qttools
-, qtwebchannel
-, qtx11extras
-, gnome2
-, nss
-, nspr
-, alsaLib
-, atk
-, cairo
-, cups
-, dbus
-, expat
-, fontconfig
-, gdk-pixbuf
-, glib
-, gtk2
-, libxcb
-, pango
-, pulseaudio
-, xorg
-, deepin
-}:
-
-let
-  rpahtLibraries = [
-    stdenv.cc.cc.lib # libstdc++.so.6
-    alsaLib
-    atk
-    cairo
-    cups
-    dbus
-    expat
-    fontconfig
-    gdk-pixbuf
-    glib
-    gnome2.GConf
-    gtk2
-    libxcb
-    nspr
-    nss
-    pango
-    pulseaudio
-    xorg.libX11
-    xorg.libXScrnSaver
-    xorg.libXcomposite
-    xorg.libXcursor
-    xorg.libXdamage
-    xorg.libXext
-    xorg.libXfixes
-    xorg.libXi
-    xorg.libXrandr
-    xorg.libXrender
-    xorg.libXtst
-  ];
-
-  libPath = stdenv.lib.makeLibraryPath rpahtLibraries;
-
-in
-mkDerivation rec {
-  pname = "qcef";
-  version = "1.1.8";
-
-  srcs = [
-    (fetchFromGitHub {
-      owner = "linuxdeepin";
-      repo = pname;
-      rev = version;
-      sha256 = "14a33af1h3wj3yph080c1ri3m27bqj1v1k0jdqc63x7c3smnpwfk";
-      name = pname;
-    })
-    (fetchFromGitHub {
-      owner = "linuxdeepin";
-      repo = "cef-binary";
-      rev = "fecf00339545d2819224333cc506d5aa22ae8008";
-      sha256 = "06i1zc7ciy7d0qhndiwpjrsii0x5i5hg9j6ddi4w5yf1nzgsrj4n";
-      name = "cef-binary";
-    })
-  ];
-
-  sourceRoot = pname;
-
-  nativeBuildInputs = [
-    pkgconfig
-    cmake
-    qttools
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    qtbase
-    qtwebchannel
-    qtx11extras
-  ] ++ rpahtLibraries;
-
-  postUnpack = ''
-    rmdir ${pname}/cef
-    ln -s ../cef-binary ${pname}/cef
-  '';
-
-  postPatch = ''
-    searchHardCodedPaths
-    fixPath $out /usr src/core/qcef_global_settings.{h,cpp}
-    sed '/COMMAND rm -rf Release Resources/a COMMAND ldd qcef/libcef.so' -i src/CMakeLists.txt
-    sed '/COMMAND rm -rf Release Resources/a COMMAND patchelf --set-rpath ${libPath} qcef/libcef.so' -i src/CMakeLists.txt
-  '';
-
-  postFixup = ''
-    searchHardCodedPaths $out
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version; src = (builtins.head srcs); };
-
-  meta = with stdenv.lib; {
-    description = "Qt5 binding of Chromium Embedded Framework";
-    homepage = "https://github.com/linuxdeepin/qcef";
-    license = licenses.lgpl3;
-    platforms = platforms.linux;
-    badPlatforms = [ "aarch64-linux" ]; # the cef-binary is not available
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/qt5integration/default.nix b/pkgs/desktops/deepin/qt5integration/default.nix
deleted file mode 100644
index e3bbaba068bda..0000000000000
--- a/pkgs/desktops/deepin/qt5integration/default.nix
+++ /dev/null
@@ -1,65 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, mtdev
-, lxqt
-, qtx11extras
-, qtmultimedia
-, qtsvg
-, qt5platform-plugins
-, qtstyleplugins
-, dtkcore
-, dtkwidget
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "qt5integration";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "140wb3vcm2ji8jhqdxv8f4shiknia1zk8fssqlp09kzc1cmb4ncy";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-  ];
-
-  buildInputs = [
-    dtkcore
-    dtkwidget
-    qt5platform-plugins
-    mtdev
-    lxqt.libqtxdg
-    qtstyleplugins
-    qtx11extras
-    qtmultimedia
-    qtsvg
-  ];
-
-  postPatch = ''
-    sed -i dstyleplugin/dstyleplugin.pro \
-           platformthemeplugin/qt5deepintheme-plugin.pro \
-           iconengineplugins/svgiconengine/svgiconengine.pro \
-           imageformatplugins/svg/svg.pro \
-      -e "s,\$\$\[QT_INSTALL_PLUGINS\],$out/$qtPluginPrefix,"
-  '';
-
-  enableParallelBuilding = true;
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Qt platform theme integration plugins for DDE";
-    homepage = "https://github.com/linuxdeepin/qt5integration";
-    license = with licenses; [ gpl3 lgpl2Plus bsd2 ];
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/qt5platform-plugins/default.nix b/pkgs/desktops/deepin/qt5platform-plugins/default.nix
deleted file mode 100644
index 33e4863c0d941..0000000000000
--- a/pkgs/desktops/deepin/qt5platform-plugins/default.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, qtx11extras
-, libSM
-, mtdev
-, cairo
-, deepin
-, qtbase
-}:
-
-mkDerivation rec {
-  pname = "qt5platform-plugins";
-  version = "5.0.11";
-
-  srcs = [
-    (fetchFromGitHub {
-      owner = "linuxdeepin";
-      repo = pname;
-      rev = version;
-      sha256 = "14xkr3p49716jc9v7ksj6jgcmfa65qicqrmablizfi71srg3z2pr";
-    })
-    qtbase.src
-  ];
-
-  sourceRoot = "source";
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-  ];
-
-  buildInputs = [
-    qtx11extras
-    libSM
-    mtdev
-    cairo
-    qtbase
-  ];
-
-  postPatch = ''
-    # The Qt5 platforms plugin is vendored in the package, however what's there is not always up-to-date with what's in nixpkgs.
-    # We simply copy the headers from qtbase's source tarball.
-    mkdir -p platformplugin/libqt5xcbqpa-dev/${qtbase.version}
-    cp -r ../qtbase-everywhere-src-${qtbase.version}/src/plugins/platforms/xcb/*.h platformplugin/libqt5xcbqpa-dev/${qtbase.version}/
-  '';
-
-  qmakeFlags = [
-    "INSTALL_PATH=${placeholder "out"}/${qtbase.qtPluginPrefix}/platforms"
-  ];
-
-  passthru.updateScript = deepin.updateScript { inherit pname version; src = (builtins.head srcs); };
-
-  meta = with stdenv.lib; {
-    description = "Qt platform theme integration plugin for DDE";
-    homepage = "https://github.com/linuxdeepin/qt5platform-plugins";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/setup-hook.sh b/pkgs/desktops/deepin/setup-hook.sh
deleted file mode 100755
index ce1d7330a2221..0000000000000
--- a/pkgs/desktops/deepin/setup-hook.sh
+++ /dev/null
@@ -1,64 +0,0 @@
-# Helper functions for deepin packaging
-
-searchHardCodedPaths() {
-    # Usage:
-    #
-    #   searchHardCodedPaths [-a] [<path>]
-    #
-    # Looks for ocurrences of FHS hard coded paths and command
-    # invocations in the given path (default: current directory) for
-    # the purpose of debugging a derivation. The option -a enables
-    # processing binary files as if they were text.
-
-    local binary
-    if [ "$1" = "-a" ]; then
-        binary="-a"
-        shift
-    fi
-
-    local path=$1
-
-    echo ----------- looking for command invocations in $path
-    grep --color=always -r -E '\<(ExecStart|Exec|startDetached|execute|exec\.(Command|LookPath))\>' $path || true
-
-    echo ----------- looking for hard coded paths in $path
-    grep --color=always $binary -r -E '/(usr|bin|sbin|etc|var|opt)\>' $path || true
-
-    echo ----------- done
-}
-
-fixPath() {
-    # Usage:
-    #
-    #   fixPath <parent dir> <path> <files>
-    #
-    # replaces occurences of <path> by <parent_dir><path> in <files>
-    # removing /usr from the start of <path> if present
-
-    local parentdir=$1
-    local path=$2
-    local newpath=$parentdir$(echo $path | sed "s,^/usr,,")
-    local files=("${@:3}")
-    echo ======= grep --color=always "${path}" "${files[@]}"
-    grep --color=always "${path}" "${files[@]}"
-    echo +++++++ sed -i -e "s,$path,$newpath,g" "${files[@]}"
-    sed -i -e "s,$path,$newpath,g" "${files[@]}"
-}
-
-searchForUnresolvedDLL() {
-    # Usage:
-    #
-    #   searchForUnresolvedDLL <dir>
-    #
-    # looks in <dir> for executables with unresolved dynamic library paths
-
-    local dir="$1"
-    echo ======= Looking for executables with unresolved dynamic library dependencies
-    echo $dir
-    for f in $(find -L "$dir" -type f -executable); do
-      if (ldd $f | grep -q "not found"); then
-        echo $f
-        ldd $f | grep --color=always "not found"
-      fi
-    done
-}
diff --git a/pkgs/desktops/deepin/startdde/default.nix b/pkgs/desktops/deepin/startdde/default.nix
deleted file mode 100644
index ab17f04db68f9..0000000000000
--- a/pkgs/desktops/deepin/startdde/default.nix
+++ /dev/null
@@ -1,160 +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
-  '';
-
-  postFixup = ''
-    searchHardCodedPaths $out  # debugging
-  '';
-
-  passthru = {
-    updateScript = deepin.updateScript { inherit pname version src; };
-    providedSessions = [ "deepin" ];
-  };
-
-  meta = with stdenv.lib; {
-    description = "Starter of deepin desktop environment";
-    homepage = "https://github.com/linuxdeepin/startdde";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/startdde/deps.nix b/pkgs/desktops/deepin/startdde/deps.nix
deleted file mode 100644
index 8898b8c50fb76..0000000000000
--- a/pkgs/desktops/deepin/startdde/deps.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
-[
-  {
-    goPackagePath = "github.com/cryptix/wav";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cryptix/wav";
-      rev = "8bdace674401f0bd3b63c65479b6a6ff1f9d5e44";
-      sha256 = "18nyqv0ic35fs9fny8sj84c00vbxs8mnric6vr6yl42624fh5id6";
-    };
-  }
-  {
-    goPackagePath = "github.com/linuxdeepin/go-x11-client";
-    fetch = {
-      type = "git";
-      url = "https://github.com/linuxdeepin/go-x11-client";
-      rev = "b5b01565d224d5ccd5a4143d9099acceb23e182a";
-      sha256 = "1lnffjp8bqy6f8caw6drg1js6hny5w7432riqchcrcd4q85d94rs";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "daa7c04131f568e31c51927b359a2d197a357058";
-      sha256 = "17gbfvb5iqyayzw0zd6q218zsbf7x74rflvn18wkxvsw95n1y54h";
-    };
-  }
-]
diff --git a/pkgs/desktops/deepin/udisks2-qt5/default.nix b/pkgs/desktops/deepin/udisks2-qt5/default.nix
deleted file mode 100644
index 0fcc2e9f9f71b..0000000000000
--- a/pkgs/desktops/deepin/udisks2-qt5/default.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, qmake
-, qtbase
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "udisks2-qt5";
-  version = "5.0.3";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0c87ks9glwhk4m2s7kf7mb43q011yi6l3qjq2ammmfqwl8xal69a";
-  };
-
-  nativeBuildInputs = [
-    deepin.setupHook
-    qmake
-  ];
-
-  buildInputs = [
-    qtbase
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths # debugging
-  '';
-
-  qmakeFlags = [
-    "QMAKE_PKGCONFIG_PREFIX=${placeholder "out"}"
-  ];
-
-  postFixup = ''
-    searchHardCodedPaths $out # debugging
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "UDisks2 D-Bus interfaces binding for Qt5";
-    homepage = "https://github.com/linuxdeepin/udisks2-qt5";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/enlightenment/efl/default.nix b/pkgs/desktops/enlightenment/efl/default.nix
index 0fa5edc934c48..9ce0306b549a0 100644
--- a/pkgs/desktops/enlightenment/efl/default.nix
+++ b/pkgs/desktops/enlightenment/efl/default.nix
@@ -191,8 +191,10 @@ stdenv.mkDerivation rec {
   '';
 
   postFixup = ''
-    # EFL applications depend on libcurl, which is linked at runtime by hand in code (it is dlopened)
+    # Some libraries are linked at runtime by hand in code (they are dlopened)
     patchelf --add-needed ${curl.out}/lib/libcurl.so $out/lib/libecore_con.so
+    patchelf --add-needed ${libpulseaudio}/lib/libpulse.so $out/lib/libecore_audio.so
+    patchelf --add-needed ${libsndfile.out}/lib/libsndfile.so $out/lib/libecore_audio.so
   '';
 
   meta = {
diff --git a/pkgs/desktops/enlightenment/terminology/default.nix b/pkgs/desktops/enlightenment/terminology/default.nix
index e70b9cdc9b53f..2d0d34ec067ea 100644
--- a/pkgs/desktops/enlightenment/terminology/default.nix
+++ b/pkgs/desktops/enlightenment/terminology/default.nix
@@ -21,6 +21,10 @@ stdenv.mkDerivation rec {
     mesa
   ];
 
+  mesonFlags = [
+    "-D edje-cc=${efl}/bin/edje_cc"
+  ];
+
   meta = {
     description = "Powerful terminal emulator based on EFL";
     homepage = "https://www.enlightenment.org/about-terminology";
diff --git a/pkgs/desktops/gnome-2/desktop/mail-notification/default.nix b/pkgs/desktops/gnome-2/desktop/mail-notification/default.nix
index 68c1b3b5da439..99175e25120ce 100644
--- a/pkgs/desktops/gnome-2/desktop/mail-notification/default.nix
+++ b/pkgs/desktops/gnome-2/desktop/mail-notification/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, pkgconfig, glib, gnome2, dbus-glib, gmime, gnome-icon-theme, libnotify, libgnome-keyring, openssl, cyrus_sasl, gnonlin, sylpheed, gob2, gettext, intltool, libxml2, hicolor-icon-theme, tango-icon-theme }:
+{ stdenv, fetchFromGitHub, pkgconfig, glib, gnome2, dbus-glib, gmime, gnome-icon-theme, libnotify, libgnome-keyring, openssl, cyrus_sasl, sylpheed, gob2, gettext, intltool, libxml2, hicolor-icon-theme, tango-icon-theme }:
 
 stdenv.mkDerivation rec {
   rev = "9ae8768";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig ];
-   buildInputs = [ glib dbus-glib gmime libnotify libgnome-keyring openssl cyrus_sasl gnonlin sylpheed gob2 gettext intltool gnome2.GConf gnome2.libgnomeui dbus-glib gmime libnotify gnome2.scrollkeeper libxml2 gnome-icon-theme hicolor-icon-theme tango-icon-theme ];
+   buildInputs = [ glib dbus-glib gmime libnotify libgnome-keyring openssl cyrus_sasl sylpheed gob2 gettext intltool gnome2.GConf gnome2.libgnomeui dbus-glib gmime libnotify gnome2.scrollkeeper libxml2 gnome-icon-theme hicolor-icon-theme tango-icon-theme ];
 
   prePatch = ''
     sed -i  -e '/jb_rule_set_install_message/d' -e '/jb_rule_add_install_command/d' jbsrc/jb.c
diff --git a/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix b/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix
index d248ad37d02c3..20cc3877efb72 100644
--- a/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   patches = [
     (fetchpatch {
       name = "0001-gnome-scores.h-Convert-to-UTF-8.patch";
-      url = "https://github.com/GNOME/libgnomeui/commit/30334c28794ef85d8973f4ed0779b5ceed6594f2.diff";
+      url = "https://gitlab.gnome.org/Archive/libgnomeui/-/commit/30334c28794ef85d8973f4ed0779b5ceed6594f2.diff";
       sha256 = "1sn8j8dkam14wfkpw8nga3gk63wniff243mzv3jp0fvv52q8sqhk";
     })
   ];
diff --git a/pkgs/desktops/pantheon/apps/appcenter/default.nix b/pkgs/desktops/pantheon/apps/appcenter/default.nix
index 2432389383864..18ee7bdd844a2 100644
--- a/pkgs/desktops/pantheon/apps/appcenter/default.nix
+++ b/pkgs/desktops/pantheon/apps/appcenter/default.nix
@@ -31,13 +31,13 @@
 
 stdenv.mkDerivation rec {
   pname = "appcenter";
-  version = "3.4.1";
+  version = "3.4.2";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1bwkjxl4k49hvy88llif82hdancda9692vjwkw4bxy2cbz8444zx";
+    sha256 = "sha256-8r0DlmG8xlCQ1uFHZQjXG2ls4VBrsRzrVY8Ey3/OYAU=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix b/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
index 058148e07c822..0695b6e4006ee 100644
--- a/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "1csxsr2c8qvl97xz9ahwn91z095nzgr0i1mbcb1spljll2sr9lkj";
+    sha256 = "sha256-ctKUtaBU0qvDYquGCPL7tiTwQ7IcqvT7SXRjxETWXbM=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix b/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
index cdb5e860650c2..e8f0e37620e5d 100644
--- a/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
@@ -26,7 +26,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-calendar";
-  version = "5.0.6";
+  version = "5.1.0";
 
   repoName = "calendar";
 
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0lmadk4yzf1kiiqshwqcxzcyia1haq1avv6pyzvsaywxhqwdsini";
+    sha256 = "sha256-b72BmChl/Ql0ljLRcPMNbJcOV4cVqz5D2j+5BGUi4Go=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/elementary-camera/default.nix b/pkgs/desktops/pantheon/apps/elementary-camera/default.nix
index 9874d87eae9fa..e7bb60a062d8f 100644
--- a/pkgs/desktops/pantheon/apps/elementary-camera/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-camera/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "13jg224h2436swd6kdkfs22icg0ja9lshvxwg5bqnb5fshspkjba";
+    sha256 = "sha256-asl5NdSuLItXebxvqGlSEjwWhdButmka12YQAYkQT44=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/elementary-code/default.nix b/pkgs/desktops/pantheon/apps/elementary-code/default.nix
index 635b5cfc73526..3454ff086c9a8 100644
--- a/pkgs/desktops/pantheon/apps/elementary-code/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-code/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "158zrzyyy507rxcbsb5am9768zbakpwrl61ixab57zla7z51l0g0";
+    sha256 = "sha256-4AEayj+K/lOW6jEYmvmdan1kTqqqLL1YzwcU7/3PH5U=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/elementary-dock/default.nix b/pkgs/desktops/pantheon/apps/elementary-dock/default.nix
index 1e3db99bab52c..7cc34f8c82c98 100644
--- a/pkgs/desktops/pantheon/apps/elementary-dock/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-dock/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, fetchpatch
 , vala
 , atk
 , cairo
@@ -40,6 +41,14 @@ stdenv.mkDerivation rec {
     sha256 = "01vinik73s0vmk56samgf49zr2bl4wjv44x15sz2cmh744llckja";
   };
 
+  patches = [
+    # Fix double includedir path in plank.pc
+    (fetchpatch {
+      url = "https://github.com/elementary/dock/commit/3bc368e2c4fafcd5b8baca2711c773b0e2441c7c.patch";
+      sha256 = "0gg35phi1cg7ixljc388i0h70w323r1gqzjhanccnsbjpqsgvs3k";
+    })
+  ];
+
   nativeBuildInputs = [
     gettext
     meson
diff --git a/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix b/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix
index 3b257b0812f00..29b897012e7d6 100644
--- a/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0rc4ifs4hd4cj0v028bzc45v64pwx21xylwrhb20jpw61ainfi8s";
+    sha256 = "sha256-GkVnowqGXwnEgplT34Po/BKzC2F/IQE2kIw0SLSLhGU=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/elementary-files/0001-filechooser-module-hardcode-gsettings-for-nixos.patch b/pkgs/desktops/pantheon/apps/elementary-files/0001-filechooser-module-hardcode-gsettings-for-nixos.patch
new file mode 100644
index 0000000000000..9bcedac3f035f
--- /dev/null
+++ b/pkgs/desktops/pantheon/apps/elementary-files/0001-filechooser-module-hardcode-gsettings-for-nixos.patch
@@ -0,0 +1,35 @@
+From f51974c9736c3e28755245d15729578214652343 Mon Sep 17 00:00:00 2001
+Message-Id: <f51974c9736c3e28755245d15729578214652343.1599178185.git-series.worldofpeace@protonmail.ch>
+From: worldofpeace <worldofpeace@protonmail.ch>
+Date: Thu,  3 Sep 2020 20:08:15 -0400
+Subject: [PATCH] filechooser-module: hardcode gsettings for nixos
+
+---
+ filechooser-module/FileChooserDialog.vala | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/filechooser-module/FileChooserDialog.vala b/filechooser-module/FileChooserDialog.vala
+index a70fe10..08fde2c 100644
+--- a/filechooser-module/FileChooserDialog.vala
++++ b/filechooser-module/FileChooserDialog.vala
+@@ -60,10 +60,14 @@ public class CustomFileChooserDialog : Object {
+         /* If not local only during creation, strange bug occurs on fresh installs */
+         chooser_dialog.local_only = true;
+ 
+-        var files_preferences = new Settings ("io.elementary.files.preferences");
++        SettingsSchemaSource sss = new SettingsSchemaSource.from_directory ("@ELEMENTARY_FILES_GSETTINGS_PATH@", SettingsSchemaSource.get_default (), true);
++        SettingsSchema preferences_schema = sss.lookup ("io.elementary.files.preferences", false);
++        SettingsSchema chooser_schema = sss.lookup ("io.elementary.files.file-chooser", false);
++
++        var files_preferences = new Settings.full (preferences_schema, null, null);
+         is_single_click = files_preferences.get_boolean ("single-click");
+ 
+-        var chooser_settings = new Settings ("io.elementary.files.file-chooser");
++        var chooser_settings = new Settings.full (chooser_schema, null, null);
+ 
+         assign_container_box ();
+         remove_gtk_widgets ();
+
+base-commit: 57cb89b64fd2d5c08f4aaf23e8c74bfaa5d0384f
+-- 
+git-series 0.9.1
diff --git a/pkgs/desktops/pantheon/apps/elementary-files/default.nix b/pkgs/desktops/pantheon/apps/elementary-files/default.nix
index f6215e5025b2a..9433edc9ce5f4 100644
--- a/pkgs/desktops/pantheon/apps/elementary-files/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-files/default.nix
@@ -17,7 +17,7 @@
 , libnotify
 , libunity
 , pango
-, plank
+, elementary-dock
 , bamf
 , sqlite
 , libdbusmenu-gtk3
@@ -31,7 +31,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-files";
-  version = "4.4.4";
+  version = "4.5.0";
 
   repoName = "files";
 
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "1hsh9kg30l90r2aqrrap1nfmgjf0la8mfd8h4xm6d7acailcnhmb";
+    sha256 = "sha256-wtQW1poX791DAlSFdVV9psnCfBDeVXI2fDZ2GcvvNn8=";
   };
 
   passthru = {
@@ -64,6 +64,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     bamf
+    elementary-dock
     elementary-icon-theme
     granite
     gtk3
@@ -75,13 +76,12 @@ stdenv.mkDerivation rec {
     libnotify
     libunity
     pango
-    plank
     sqlite
     zeitgeist
   ];
 
   patches = [
-    ./hardcode-gsettings.patch
+    ./0001-filechooser-module-hardcode-gsettings-for-nixos.patch
   ];
 
   postPatch = ''
diff --git a/pkgs/desktops/pantheon/apps/elementary-files/hardcode-gsettings.patch b/pkgs/desktops/pantheon/apps/elementary-files/hardcode-gsettings.patch
deleted file mode 100644
index 3191f4e3cb2bf..0000000000000
--- a/pkgs/desktops/pantheon/apps/elementary-files/hardcode-gsettings.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/filechooser-module/FileChooserDialog.vala b/filechooser-module/FileChooserDialog.vala
-index cb7c3c49..8b1899d1 100644
---- a/filechooser-module/FileChooserDialog.vala
-+++ b/filechooser-module/FileChooserDialog.vala
-@@ -57,10 +57,15 @@ public class CustomFileChooserDialog : Object {
-         chooser_dialog.deletable = false;
-         chooser_dialog.local_only = false;
- 
--        var settings = new Settings ("io.elementary.files.preferences");
-+        SettingsSchemaSource sss = new SettingsSchemaSource.from_directory ("@ELEMENTARY_FILES_GSETTINGS_PATH@", SettingsSchemaSource.get_default (), true);
-+        SettingsSchema preferences_schema = sss.lookup ("io.elementary.files.preferences", false);
-+        SettingsSchema chooser_schema = sss.lookup ("io.elementary.files.file-chooser", false);
-+
-+        var settings = new Settings.full (preferences_schema, null, null);
-+
-         is_single_click = settings.get_boolean ("single-click");
- 
--        var chooser_settings = new Settings ("io.elementary.files.file-chooser");
-+        var chooser_settings = new Settings.full (chooser_schema, null, null);
- 
-         assign_container_box ();
-         remove_gtk_widgets ();
diff --git a/pkgs/desktops/pantheon/apps/elementary-music/default.nix b/pkgs/desktops/pantheon/apps/elementary-music/default.nix
index 8849965eddecb..0e34b29f1de0f 100644
--- a/pkgs/desktops/pantheon/apps/elementary-music/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-music/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0cb0mwsp5w2bmjq8ap9mi0jvaqr9fgq00gfrkj0mzb5x5c26hrnw";
+    sha256 = "sha256-3GZoBCu9rF+BnNk9APBzKWO1JYg1XYWwrEvwcjWvYDE=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/elementary-photos/default.nix b/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
index 252791df1d5f8..d3d931e44fccb 100644
--- a/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "09jjic165rmprc2cszsgj2m3j3f5p8v9pxx5mj66a0gj3ar3hfbd";
+    sha256 = "sha256-bTk4shryAWWMrKX3mza6xQ05qpBPf80Ey7fmYgKLUiY=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix b/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix
index 611e683491fc8..da67ac0aed841 100644
--- a/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "179ib2ldvhdx3hks5lqyx2cvlkk3j1qccvlfwh2yd2bl79zpk3ma";
+    sha256 = "sha256-qo55fzp0ieYF5I5uxnCQY066mege06InHL3B3ahYMZ0=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix b/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
index c7c1c8780ed6c..ddd5c0a0eac3b 100644
--- a/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "119iwmzbpkj4nmxinqfsh73lx23g8gbl6ha6wc4mc4fq9hpnc9c2";
+    sha256 = "sha256-giVmL0zYEVYJ40ZBQ9dDb4hOx4HaYRt7tUTOu37lMYU=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/elementary-videos/default.nix b/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
index 03b730cecac59..f51c6c0090d3e 100644
--- a/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "07dwhshdc78wia0fsbzz6iv651znzzasfil91w60v29kgc4s2b1i";
+    sha256 = "sha256-MSyhCXsziQ0MD4lGp9X/9odidjT/L+2Aihwd1qCGvB0=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/sideload/default.nix b/pkgs/desktops/pantheon/apps/sideload/default.nix
index 05f0f40db4a74..2fc5d560da0f6 100644
--- a/pkgs/desktops/pantheon/apps/sideload/default.nix
+++ b/pkgs/desktops/pantheon/apps/sideload/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0mlc3nm2navzxm8k1rwpbw4w6mv30lmhqybm8jqxd4v8x7my73vq";
+    sha256 = "sha256-eI/j6+lok9axRHV5DCsFY1fDCV+X5zBR7X8rK6odjFY=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
index d7a50fc7e5cc8..9937edc22b5ba 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0g8lhdwv9g16kjn7yxnl6x4rscjl2206ljfnghpxc4b5lwhqxxnw";
+    sha256 = "sha256-3PaOIadlEdYvfNZJaoAQVDKdSTfUdn+snCa8tHmDFD0=";
   };
 
   patches = [
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
index 3c810a5f4f321..86db11a3dc312 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1zs2qmglh85ami07dnlq3lfwl5ikc4abvz94a35k6fhfs703lay2";
+    sha256 = "sha256-wis6wNEOOjPLUCT9vRRhMxbKHR2Y2nZArKogSF/FQv8=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
index e5f423bea8a7b..b5a8cc7665161 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0wzm390g8di4ks3w637a0wl4j7g89j321xkz5msd9058gksvaaxs";
+    sha256 = "sha256-uiu19XyogNR0LX/2IIZM6B1JKAfqDMOHniQ29EAa9XM=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
index 425d278587836..ab1e0b5280a81 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0ksxx45mm0cvnb5jphyxsf843rn2rgb0yxv9j0ydh2xp4qgvvyva";
+    sha256 = "sha256-avu9Hya3C9g8kGl3D9bLwuZBkNPdwyvLspuBWgvpXU8=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
index ee714e1962e53..95a454b36f435 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1kkd75kp24zq84wfmc00brqxximfsi4sqyx8a7rbl7zaspf182xa";
+    sha256 = "sha256-qgsU3NXqH7ryUah7rEnUrsbecV4AsOo4QfgTcWc5bc4=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
index 568d9bd24c8db..490c8c57a67c9 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0ijzm91gycx8iaf3sd8i07b5899gbryxd6klzjh122d952wsyfcs";
+    sha256 = "sha256-mjmvuSipCRGg/HSa1n1eLyVU1gERNT2ciqgz/0KqX0Y=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/0001-Remove-Install-Unlisted-Engines-function.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/0001-Remove-Install-Unlisted-Engines-function.patch
new file mode 100644
index 0000000000000..42900c3806277
--- /dev/null
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/0001-Remove-Install-Unlisted-Engines-function.patch
@@ -0,0 +1,700 @@
+From 4fd6da39ab33a6eef46ee2c64eb4f5595c7fe633 Mon Sep 17 00:00:00 2001
+Message-Id: <4fd6da39ab33a6eef46ee2c64eb4f5595c7fe633.1599180249.git-series.worldofpeace@protonmail.ch>
+From: worldofpeace <worldofpeace@protonmail.ch>
+Date: Thu,  3 Sep 2020 20:43:25 -0400
+Subject: [PATCH] Remove Install Unlisted Engines function
+
+https://github.com/elementary/switchboard-plug-keyboard/issues/324
+---
+ src/Dialogs/InstallEngineDialog.vala           | 140 +------------------
+ src/Dialogs/ProgressDialog.vala                |  82 +----------
+ src/InputMethod/Installer/InstallList.vala     |  73 +---------
+ src/InputMethod/Installer/UbuntuInstaller.vala | 142 +------------------
+ src/InputMethod/Installer/aptd-client.vala     |  93 +------------
+ src/Widgets/InputMethod/AddEnginesPopover.vala |  12 +--
+ src/Widgets/InputMethod/LanguagesRow.vala      |  43 +-----
+ src/meson.build                                |   6 +-
+ 8 files changed, 591 deletions(-)
+ delete mode 100644 src/Dialogs/InstallEngineDialog.vala
+ delete mode 100644 src/Dialogs/ProgressDialog.vala
+ delete mode 100644 src/InputMethod/Installer/InstallList.vala
+ delete mode 100644 src/InputMethod/Installer/UbuntuInstaller.vala
+ delete mode 100644 src/InputMethod/Installer/aptd-client.vala
+ delete mode 100644 src/Widgets/InputMethod/LanguagesRow.vala
+
+diff --git a/src/Dialogs/InstallEngineDialog.vala b/src/Dialogs/InstallEngineDialog.vala
+deleted file mode 100644
+index ffba3a8..0000000
+--- a/src/Dialogs/InstallEngineDialog.vala
++++ /dev/null
+@@ -1,140 +0,0 @@
+-/*
+-* Copyright 2019-2020 elementary, Inc. (https://elementary.io)
+-*
+-* This program is free software: you can redistribute it and/or modify
+-* it under the terms of the GNU General Public License as published by
+-* the Free Software Foundation, either version 3 of the License, or
+-* (at your option) any later version.
+-*
+-* This program is distributed in the hope that it will be useful,
+-* but WITHOUT ANY WARRANTY; without even the implied warranty of
+-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-* GNU General Public License for more details.
+-*
+-* You should have received a copy of the GNU General Public License
+-* along with this program.  If not, see <https://www.gnu.org/licenses/>.
+-*/
+-
+-public class Pantheon.Keyboard.InputMethodPage.InstallEngineDialog : Granite.MessageDialog {
+-    private InstallList? engines_filter;
+-
+-    public InstallEngineDialog (Gtk.Window parent) {
+-        Object (
+-            primary_text: _("Choose an engine to install"),
+-            secondary_text: _("Select an engine from the list to install and use."),
+-            image_icon: new ThemedIcon ("extension"),
+-            transient_for: parent,
+-            buttons: Gtk.ButtonsType.CANCEL
+-        );
+-    }
+-
+-    construct {
+-        var languages_list = new Gtk.ListBox () {
+-            activate_on_single_click = true,
+-            expand = true,
+-            selection_mode = Gtk.SelectionMode.NONE
+-        };
+-
+-        foreach (var language in InstallList.get_all ()) {
+-            var lang = new LanguagesRow (language);
+-            languages_list.add (lang);
+-        }
+-
+-        var back_button = new Gtk.Button.with_label (_("Languages")) {
+-            halign = Gtk.Align.START,
+-            margin = 6
+-        };
+-        back_button.get_style_context ().add_class (Granite.STYLE_CLASS_BACK_BUTTON);
+-
+-        var language_title = new Gtk.Label ("");
+-
+-        var language_header = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 6);
+-        language_header.pack_start (back_button);
+-        language_header.set_center_widget (language_title);
+-
+-        var listbox = new Gtk.ListBox () {
+-            expand = true
+-        };
+-        listbox.set_filter_func (filter_function);
+-        listbox.set_sort_func (sort_function);
+-
+-        foreach (var language in InstallList.get_all ()) {
+-            foreach (var engine in language.get_components ()) {
+-                listbox.add (new EnginesRow (engine));
+-            }
+-        }
+-
+-        var scrolled = new Gtk.ScrolledWindow (null, null);
+-        scrolled.add (listbox);
+-
+-        var engine_list_grid = new Gtk.Grid () {
+-            orientation = Gtk.Orientation.VERTICAL
+-        };
+-        engine_list_grid.get_style_context ().add_class (Gtk.STYLE_CLASS_VIEW);
+-        engine_list_grid.add (language_header);
+-        engine_list_grid.add (new Gtk.Separator (Gtk.Orientation.HORIZONTAL));
+-        engine_list_grid.add (scrolled);
+-
+-        var stack = new Gtk.Stack () {
+-            height_request = 200,
+-            width_request = 300,
+-            transition_type = Gtk.StackTransitionType.SLIDE_LEFT_RIGHT
+-        };
+-        stack.add (languages_list);
+-        stack.add (engine_list_grid);
+-
+-        var frame = new Gtk.Frame (null);
+-        frame.add (stack);
+-
+-        custom_bin.add (frame);
+-        custom_bin.show_all ();
+-
+-        var install_button = add_button (_("Install"), Gtk.ResponseType.OK);
+-        install_button.sensitive = false;
+-        install_button.get_style_context ().add_class (Gtk.STYLE_CLASS_SUGGESTED_ACTION);
+-
+-        languages_list.row_activated.connect ((row) => {
+-            stack.visible_child = engine_list_grid;
+-            language_title.label = ((LanguagesRow) row).language.get_name ();
+-            engines_filter = ((LanguagesRow) row).language;
+-            listbox.invalidate_filter ();
+-            var adjustment = scrolled.get_vadjustment ();
+-            adjustment.set_value (adjustment.lower);
+-        });
+-
+-        back_button.clicked.connect (() => {
+-            stack.visible_child = languages_list;
+-            install_button.sensitive = false;
+-        });
+-
+-        listbox.selected_rows_changed.connect (() => {
+-            foreach (var engines_row in listbox.get_children ()) {
+-                ((EnginesRow) engines_row).selected = false;
+-            }
+-
+-            ((EnginesRow) listbox.get_selected_row ()).selected = true;
+-            install_button.sensitive = true;
+-        });
+-
+-        response.connect ((response_id) => {
+-            if (response_id == Gtk.ResponseType.OK) {
+-                string engine_to_install = ((EnginesRow) listbox.get_selected_row ()).engine_name;
+-                UbuntuInstaller.get_default ().install (engine_to_install);
+-            }
+-        });
+-    }
+-
+-    [CCode (instance_pos = -1)]
+-    private bool filter_function (Gtk.ListBoxRow row) {
+-        if (InstallList.get_language_from_engine_name (((EnginesRow) row).engine_name) == engines_filter) {
+-            return true;
+-        }
+-
+-        return false;
+-    }
+-
+-    [CCode (instance_pos = -1)]
+-    private int sort_function (Gtk.ListBoxRow row1, Gtk.ListBoxRow row2) {
+-        return ((EnginesRow) row1).engine_name.collate (((EnginesRow) row1).engine_name);
+-    }
+-}
+diff --git a/src/Dialogs/ProgressDialog.vala b/src/Dialogs/ProgressDialog.vala
+deleted file mode 100644
+index f110aca..0000000
+--- a/src/Dialogs/ProgressDialog.vala
++++ /dev/null
+@@ -1,82 +0,0 @@
+-/*
+-* Copyright 2011-2020 elementary, Inc. (https://elementary.io)
+-*
+-* This program is free software: you can redistribute it
+-* and/or modify it under the terms of the GNU Lesser General Public License as
+-* published by the Free Software Foundation, either version 3 of the
+-* License, or (at your option) any later version.
+-*
+-* This program is distributed in the hope that it will be
+-* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+-* Public License for more details.
+-*
+-* You should have received a copy of the GNU General Public License along
+-* with this program. If not, see http://www.gnu.org/licenses/.
+-*/
+-
+-public class Pantheon.Keyboard.InputMethodPage.ProgressDialog : Gtk.Dialog {
+-    public int progress {
+-        set {
+-            if (value >= 100) {
+-                destroy ();
+-            }
+-
+-            progress_bar.fraction = value / 100.0;
+-        }
+-    }
+-
+-    private Gtk.ProgressBar progress_bar;
+-
+-    construct {
+-        var image = new Gtk.Image.from_icon_name ("preferences-desktop-locale", Gtk.IconSize.DIALOG) {
+-            valign = Gtk.Align.START
+-        };
+-
+-        var primary_label = new Gtk.Label (null) {
+-            max_width_chars = 50,
+-            wrap = true,
+-            xalign = 0
+-        };
+-        primary_label.get_style_context ().add_class (Granite.STYLE_CLASS_PRIMARY_LABEL);
+-
+-        unowned UbuntuInstaller installer = UbuntuInstaller.get_default ();
+-        switch (installer.transaction_mode) {
+-            case UbuntuInstaller.TransactionMode.INSTALL:
+-                primary_label.label = _("Installing %s").printf (installer.engine_to_address);
+-                break;
+-            case UbuntuInstaller.TransactionMode.REMOVE:
+-                primary_label.label = _("Removing %s").printf (installer.engine_to_address);
+-                break;
+-        }
+-
+-        progress_bar = new Gtk.ProgressBar () {
+-            hexpand = true,
+-            valign = Gtk.Align.START,
+-            width_request = 300
+-        };
+-
+-        var cancel_button = (Gtk.Button) add_button (_("Cancel"), 0);
+-
+-        installer.bind_property ("install-cancellable", cancel_button, "sensitive");
+-
+-        var grid = new Gtk.Grid () {
+-            column_spacing = 12,
+-            margin = 6,
+-            row_spacing = 6
+-        };
+-        grid.attach (image, 0, 0, 1, 2);
+-        grid.attach (primary_label, 1, 0);
+-        grid.attach (progress_bar, 1, 1);
+-        grid.show_all ();
+-
+-        border_width = 6;
+-        deletable = false;
+-        get_content_area ().add (grid);
+-
+-        cancel_button.clicked.connect (() => {
+-            installer.cancel_install ();
+-            destroy ();
+-        });
+-    }
+-}
+diff --git a/src/InputMethod/Installer/InstallList.vala b/src/InputMethod/Installer/InstallList.vala
+deleted file mode 100644
+index 275c302..0000000
+--- a/src/InputMethod/Installer/InstallList.vala
++++ /dev/null
+@@ -1,73 +0,0 @@
+-/*
+-* 2019-2020 elementary, Inc. (https://elementary.io)
+-*
+-* This program is free software: you can redistribute it and/or modify
+-* it under the terms of the GNU General Public License as published by
+-* the Free Software Foundation, either version 3 of the License, or
+-* (at your option) any later version.
+-*
+-* This program is distributed in the hope that it will be useful,
+-* but WITHOUT ANY WARRANTY; without even the implied warranty of
+-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-* GNU General Public License for more details.
+-*
+-* You should have received a copy of the GNU General Public License
+-* along with this program.  If not, see <https://www.gnu.org/licenses/>.
+-*/
+-
+-public enum Pantheon.Keyboard.InputMethodPage.InstallList {
+-    JA,
+-    KO,
+-    ZH;
+-
+-    public string get_name () {
+-        switch (this) {
+-            case JA:
+-                return _("Japanese");
+-            case KO:
+-                return _("Korean");
+-            case ZH:
+-                return _("Chinese");
+-            default:
+-                assert_not_reached ();
+-        }
+-    }
+-
+-    public string[] get_components () {
+-        switch (this) {
+-            case JA:
+-                return { "ibus-anthy", "ibus-mozc", "ibus-skk" };
+-            case KO:
+-                return { "ibus-hangul" };
+-            case ZH:
+-                return { "ibus-cangjie", "ibus-chewing", "ibus-pinyin" };
+-            default:
+-                assert_not_reached ();
+-        }
+-    }
+-
+-    public static InstallList get_language_from_engine_name (string engine_name) {
+-        switch (engine_name) {
+-            case "ibus-anthy":
+-                return JA;
+-            case "ibus-mozc":
+-                return JA;
+-            case "ibus-skk":
+-                return JA;
+-            case "ibus-hangul":
+-                return KO;
+-            case "ibus-cangjie":
+-                return ZH;
+-            case "ibus-chewing":
+-                return ZH;
+-            case "ibus-pinyin":
+-                return ZH;
+-            default:
+-                assert_not_reached ();
+-        }
+-    }
+-
+-    public static InstallList[] get_all () {
+-        return { JA, KO, ZH };
+-    }
+-}
+diff --git a/src/InputMethod/Installer/UbuntuInstaller.vala b/src/InputMethod/Installer/UbuntuInstaller.vala
+deleted file mode 100644
+index b65aa1f..0000000
+--- a/src/InputMethod/Installer/UbuntuInstaller.vala
++++ /dev/null
+@@ -1,142 +0,0 @@
+-/*
+-* Copyright 2011-2020 elementary, Inc. (https://elementary.io)
+-*
+-* This program is free software: you can redistribute it
+-* and/or modify it under the terms of the GNU Lesser General Public License as
+-* published by the Free Software Foundation, either version 3 of the
+-* License, or (at your option) any later version.
+-*
+-* This program is distributed in the hope that it will be
+-* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+-* Public License for more details.
+-*
+-* You should have received a copy of the GNU General Public License along
+-* with this program. If not, see http://www.gnu.org/licenses/.
+-*/
+-
+-public class Pantheon.Keyboard.InputMethodPage.UbuntuInstaller : Object {
+-    private AptdProxy aptd;
+-    private AptdTransactionProxy proxy;
+-
+-    public bool install_cancellable { get; private set; }
+-    public TransactionMode transaction_mode { get; private set; }
+-    public string engine_to_address { get; private set; }
+-
+-    public signal void install_finished (string langcode);
+-    public signal void install_failed ();
+-    public signal void remove_finished (string langcode);
+-    public signal void progress_changed (int progress);
+-
+-    public enum TransactionMode {
+-        INSTALL,
+-        REMOVE,
+-        INSTALL_MISSING,
+-    }
+-
+-    Gee.HashMap<string, string> transactions;
+-
+-    private static GLib.Once<UbuntuInstaller> instance;
+-    public static unowned UbuntuInstaller get_default () {
+-        return instance.once (() => {
+-            return new UbuntuInstaller ();
+-        });
+-    }
+-
+-    private UbuntuInstaller () {}
+-
+-    construct {
+-        transactions = new Gee.HashMap<string, string> ();
+-        aptd = new AptdProxy ();
+-
+-        try {
+-            aptd.connect_to_aptd ();
+-        } catch (Error e) {
+-            warning ("Could not connect to APT daemon");
+-        }
+-    }
+-
+-    public void install (string engine_name) {
+-        transaction_mode = TransactionMode.INSTALL;
+-        engine_to_address = engine_name;
+-        string[] packages = {};
+-        packages += engine_to_address;
+-
+-        foreach (var packet in packages) {
+-            message ("Packet: %s", packet);
+-        }
+-
+-        aptd.install_packages.begin (packages, (obj, res) => {
+-            try {
+-                var transaction_id = aptd.install_packages.end (res);
+-                transactions.@set (transaction_id, "i-" + engine_name);
+-                run_transaction (transaction_id);
+-            } catch (Error e) {
+-                warning ("Could not queue downloads: %s", e.message);
+-            }
+-        });
+-    }
+-
+-    public void cancel_install () {
+-        if (install_cancellable) {
+-            warning ("cancel_install");
+-            try {
+-                proxy.cancel ();
+-            } catch (Error e) {
+-                warning ("cannot cancel installation:%s", e.message);
+-            }
+-        }
+-    }
+-
+-    private void run_transaction (string transaction_id) {
+-        proxy = new AptdTransactionProxy ();
+-        proxy.finished.connect (() => {
+-            on_apt_finshed (transaction_id, true);
+-        });
+-
+-        proxy.property_changed.connect ((prop, val) => {
+-            if (prop == "Progress") {
+-                progress_changed ((int) val.get_int32 ());
+-            }
+-
+-            if (prop == "Cancellable") {
+-                install_cancellable = val.get_boolean ();
+-            }
+-        });
+-
+-        try {
+-            proxy.connect_to_aptd (transaction_id);
+-            proxy.simulate ();
+-
+-            proxy.run ();
+-        } catch (Error e) {
+-            on_apt_finshed (transaction_id, false);
+-            warning ("Could no run transaction: %s", e.message);
+-        }
+-    }
+-
+-    private void on_apt_finshed (string id, bool success) {
+-        if (!success) {
+-            install_failed ();
+-            transactions.unset (id);
+-            return;
+-        }
+-
+-        if (!transactions.has_key (id)) { //transaction already removed
+-            return;
+-        }
+-
+-        var action = transactions.get (id);
+-        var lang = action[2:action.length];
+-
+-        message ("ID %s -> %s", id, success ? "success" : "failed");
+-
+-        if (action[0:1] == "i") { // install
+-            install_finished (lang);
+-        } else {
+-            remove_finished (lang);
+-        }
+-
+-        transactions.unset (id);
+-    }
+-}
+diff --git a/src/InputMethod/Installer/aptd-client.vala b/src/InputMethod/Installer/aptd-client.vala
+deleted file mode 100644
+index ee5c3f5..0000000
+--- a/src/InputMethod/Installer/aptd-client.vala
++++ /dev/null
+@@ -1,93 +0,0 @@
+-/*
+- * Copyright (C) 2012 Canonical Ltd
+- *
+- * This program is free software: you can redistribute it and/or modify
+- * it under the terms of the GNU General Public License version 3 as
+- * published by the Free Software Foundation.
+- *
+- * This program is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+- * GNU General Public License for more details.
+- *
+- * You should have received a copy of the GNU General Public License
+- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+- *
+- * Authored by Pawel Stolowski <pawel.stolowski@canonical.com>
+- */
+-
+-namespace Pantheon.Keyboard.InputMethodPage {
+-    private const string APTD_DBUS_NAME = "org.debian.apt";
+-    private const string APTD_DBUS_PATH = "/org/debian/apt";
+-
+-    /**
+-    * Expose a subset of org.debian.apt interfaces -- only what's needed by applications lens.
+-    */
+-    [DBus (name = "org.debian.apt")]
+-    public interface AptdService : GLib.Object {
+-        public abstract async string install_packages (string[] packages) throws GLib.Error;
+-        public abstract async string remove_packages (string[] packages) throws GLib.Error;
+-        public abstract async void quit () throws GLib.Error;
+-    }
+-
+-    [DBus (name = "org.debian.apt.transaction")]
+-    public interface AptdTransactionService : GLib.Object {
+-        public abstract void run () throws GLib.Error;
+-        public abstract void simulate () throws GLib.Error;
+-        public abstract void cancel () throws GLib.Error;
+-        public signal void finished (string exit_state);
+-        public signal void property_changed (string property, Variant val);
+-    }
+-
+-    public class AptdProxy : GLib.Object {
+-        private AptdService _aptd_service;
+-
+-        public void connect_to_aptd () throws GLib.Error {
+-            _aptd_service = Bus.get_proxy_sync (BusType.SYSTEM, APTD_DBUS_NAME, APTD_DBUS_PATH);
+-        }
+-
+-        public async string install_packages (string[] packages) throws GLib.Error {
+-            string res = yield _aptd_service.install_packages (packages);
+-            return res;
+-        }
+-
+-        public async string remove_packages (string[] packages) throws GLib.Error {
+-            string res = yield _aptd_service.remove_packages (packages);
+-            return res;
+-        }
+-
+-        public async void quit () throws GLib.Error {
+-            yield _aptd_service.quit ();
+-        }
+-    }
+-
+-    public class AptdTransactionProxy : GLib.Object {
+-        public signal void finished (string transaction_id);
+-        public signal void property_changed (string property, Variant variant);
+-
+-        private AptdTransactionService _aptd_service;
+-
+-        public void connect_to_aptd (string transaction_id) throws GLib.Error {
+-            _aptd_service = Bus.get_proxy_sync (BusType.SYSTEM, APTD_DBUS_NAME, transaction_id);
+-            _aptd_service.finished.connect ((exit_state) => {
+-                debug ("aptd transaction finished: %s\n", exit_state);
+-                finished (transaction_id);
+-            });
+-            _aptd_service.property_changed.connect ((prop, variant) => {
+-                property_changed (prop, variant);
+-            });
+-        }
+-
+-        public void simulate () throws GLib.Error {
+-            _aptd_service.simulate ();
+-        }
+-
+-        public void run () throws GLib.Error {
+-            _aptd_service.run ();
+-        }
+-
+-        public void cancel () throws GLib.Error {
+-            _aptd_service.cancel ();
+-        }
+-    }
+-}
+diff --git a/src/Widgets/InputMethod/AddEnginesPopover.vala b/src/Widgets/InputMethod/AddEnginesPopover.vala
+index 46e005d..6b56c6b 100644
+--- a/src/Widgets/InputMethod/AddEnginesPopover.vala
++++ b/src/Widgets/InputMethod/AddEnginesPopover.vala
+@@ -49,8 +49,6 @@ public class Pantheon.Keyboard.InputMethodPage.AddEnginesPopover : Gtk.Popover {
+         };
+         scrolled.add (listbox);
+ 
+-        var install_button = new Gtk.Button.with_label (_("Install Unlisted Engines…"));
+-
+         var cancel_button = new Gtk.Button.with_label (_("Cancel"));
+ 
+         var add_button = new Gtk.Button.with_label (_("Add Engine"));
+@@ -61,10 +59,8 @@ public class Pantheon.Keyboard.InputMethodPage.AddEnginesPopover : Gtk.Popover {
+             margin = 12,
+             spacing = 6
+         };
+-        button_box.add (install_button);
+         button_box.add (cancel_button);
+         button_box.add (add_button);
+-        button_box.set_child_secondary (install_button, true);
+ 
+         var grid = new Gtk.Grid ();
+         grid.attach (search_entry, 0, 0);
+@@ -92,14 +88,6 @@ public class Pantheon.Keyboard.InputMethodPage.AddEnginesPopover : Gtk.Popover {
+             listbox.invalidate_filter ();
+         });
+ 
+-        install_button.clicked.connect (() => {
+-            popdown ();
+-
+-            var install_dialog = new InstallEngineDialog ((Gtk.Window) get_toplevel ());
+-            install_dialog.run ();
+-            install_dialog.destroy ();
+-        });
+-
+         cancel_button.clicked.connect (() => {
+             popdown ();
+         });
+diff --git a/src/Widgets/InputMethod/LanguagesRow.vala b/src/Widgets/InputMethod/LanguagesRow.vala
+deleted file mode 100644
+index dc064ae..0000000
+--- a/src/Widgets/InputMethod/LanguagesRow.vala
++++ /dev/null
+@@ -1,43 +0,0 @@
+-/*
+-* 2019-2020 elementary, Inc. (https://elementary.io)
+-*
+-* This program is free software: you can redistribute it and/or modify
+-* it under the terms of the GNU General Public License as published by
+-* the Free Software Foundation, either version 3 of the License, or
+-* (at your option) any later version.
+-*
+-* This program is distributed in the hope that it will be useful,
+-* but WITHOUT ANY WARRANTY; without even the implied warranty of
+-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-* GNU General Public License for more details.
+-*
+-* You should have received a copy of the GNU General Public License
+-* along with this program.  If not, see <https://www.gnu.org/licenses/>.
+-*/
+-
+-public class Pantheon.Keyboard.InputMethodPage.LanguagesRow : Gtk.ListBoxRow {
+-    public InstallList language { get; construct; }
+-
+-    public LanguagesRow (InstallList language) {
+-        Object (language: language);
+-    }
+-
+-    construct {
+-        var label = new Gtk.Label (language.get_name ()) {
+-            halign = Gtk.Align.START,
+-            hexpand = true
+-        };
+-
+-        var caret = new Gtk.Image.from_icon_name ("pan-end-symbolic", Gtk.IconSize.MENU);
+-
+-        var grid = new Gtk.Grid () {
+-            margin = 3,
+-            margin_start = 6,
+-            margin_end = 6
+-        };
+-        grid.add (label);
+-        grid.add (caret);
+-
+-        add (grid);
+-    }
+-}
+diff --git a/src/meson.build b/src/meson.build
+index 28f07c1..a515419 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -16,7 +16,6 @@ plug_files = files(
+     'Widgets/Shortcuts/CustomTree.vala',
+     'Widgets/Layout/Display.vala',
+     'Widgets/Layout/AddLayoutPopover.vala',
+-    'Widgets/InputMethod/LanguagesRow.vala',
+     'Widgets/InputMethod/EnginesRow.vala',
+     'Widgets/InputMethod/AddEnginesPopover.vala',
+     'Views/Shortcuts.vala',
+@@ -36,11 +35,6 @@ plug_files = files(
+     'Layout/AdvancedSettingsGrid.vala',
+     'InputMethod/Utils.vala',
+     'InputMethod/AddEnginesList.vala',
+-    'InputMethod/Installer/UbuntuInstaller.vala',
+-    'InputMethod/Installer/InstallList.vala',
+-    'InputMethod/Installer/aptd-client.vala',
+-    'Dialogs/ProgressDialog.vala',
+-    'Dialogs/InstallEngineDialog.vala',
+     'Dialogs/ConflictDialog.vala',
+ )
+ 
+
+base-commit: 9d9eddeb7da8450a309496c25066f4f78a9d4070
+-- 
+git-series 0.9.1
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
index 5f55edb77c7dc..d1180f37ed066 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
@@ -15,20 +15,25 @@
 , 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 = nix-update-script {
       attrPath = "pantheon.${pname}";
@@ -46,6 +51,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     granite
     gtk3
+    ibus
     libgee
     libgnomekbd
     libxklavier
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
index 27c7db368da06..78a74c59e9ed9 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0jfykvdpjlymnks8mhlv9957ybq7srqqq23isjvh0jvc2r3cd7sq";
+    sha256 = "sha256-WJ/GRhZsSwC31HEIjHHWBy9/Skqbwor0tNVTedue3kk=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
index f6a22af75d7f3..2ce9aad5666e0 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
@@ -18,13 +18,13 @@
 
 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 = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
index 09c61e1625da8..37f69a3cc1410 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "02amm2j6blpfc16p5rm64p8shnppzsg49hz4v196mli5xr1r441h";
+    sha256 = "sha256-MBCSQ+4l0mpS2OTDRJ7+91qo0SWm5nJNYO7SZaSoVQk=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
index cbe65e68a6110..16e8c7e66c177 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "03h8ii8zz59fpp4fwlvyx3m3550096fn7a6w612b1rbj3dqhlmh9";
+    sha256 = "sha256-CVYKcRty5bBEMNyoY51JAJQy6uh+U+7IvS6V/1GMCA4=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
index af65327fb82a2..d877d43d1378d 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, 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,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1nnsv745inbdqk3xnbcaqmj87vr3kzh5hazbh8v3ib33cpi7wy88";
+    sha256 = "sha256-CHl+4mVjrDg2gusrWOCfI++DZMWKLdvHxG3ZWMjZ2to=";
   };
 
   passthru = {
@@ -29,17 +29,17 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     bamf
+    elementary-dock
     elementary-settings-daemon
+    gala
     gexiv2
     glib
     gnome-desktop
     granite
     gtk3
     libgee
-    gala
-    wingpanel
-    plank
     switchboard
+    wingpanel
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
index 1405fb698d130..0549a797dbcb1 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0zbqv3bnwxapp9b442fjg9fizxmndva8vby5qicx0yy7l68in1xk";
+    sha256 = "sha256-swcbkaHHe9BZxMWvjdRutvYfXXrSCUJWuld1btfYeH0=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
index fcb1f26eb9666..2e8f05d8416d4 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1jxpq4rvkrii85imnipbw44zjinq1sc0cq39lssprzfd4g5hjw5n";
+    sha256 = "sha256-tnAJyyPN/Xy1pmlgBpgO2Eb5CeHrRltjQTHmuTPBt8s=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
index df62a0b34b6ab..fd2a24db3e8a1 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0177lsly8qpqsfas3qc263as77h2k35avhw9708h1v8bllb3l2sb";
+    sha256 = "sha256-Sws6FqUL7QAROInDrcqYAp6j1TCC4aGV0/hi5Kmm5wQ=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
index 515660739d393..47c4928c08b56 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1awkz16nydlgi8a2dd6agfnd3qwl2qsvv6wnn8bhaz1kbv1v9kpw";
+    sha256 = "sha256-/M60w14zfAUXspabvTUWlOPRrHvKtCYUio82b034k6s=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
index 6f89331593c33..cab47c94cb997 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
@@ -17,13 +17,13 @@
 
 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 = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard/default.nix b/pkgs/desktops/pantheon/apps/switchboard/default.nix
index 9901879005354..1327c4739eb79 100644
--- a/pkgs/desktops/pantheon/apps/switchboard/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "12xir2gssr0x21sgm5m620bvd6b6y8dcm26cj4s1wsn8qb59jx9p";
+    sha256 = "sha256-N3WZysLIah40kcyIyhryZpm2FxCmlvp0EB1krZ/IsYs=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
index 78267e1bdd4ac..05f1f10a5a7e4 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0aqq0d21mqgrfiyhpfa8k51wxw2pia0qlsgp0sli79v7nwn3ykbq";
+    sha256 = "sha256-eE0/LLdnpxOpBvdpioGKV/DOQ5lIuQt9dPnhGkQDGCs=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
index 39d23c05b745d..a12101c04d006 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0rs68cb39r9vq85pr8h3mgmyjpj8bkhkxr5cz4cn5947kf776wg9";
+    sha256 = "sha256-6XFzjpuHpGIZ+azkPuFcSF7p66sDonwLwjvlNBZDRmc=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix
index 2abe677d748a5..e18cac7d4ab60 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "1dc583lq61c361arjl3s44d2k72c46bqvcqv1c3s69f2ndsnxjdz";
+    sha256 = "sha256-v8ludbPCJaMHCxuzjZchTJwpGiF6UJlVMIMFg+lAhbU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix b/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix
index 2d54580d3e651..975497cb9e4b5 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0c63nds2ylqgcp39s13mfwhipgyw8cirn0bhybp291l5g86ii6s3";
+    sha256 = "sha256-Q5sYDXqFhiTu8nABmyND3L8bIXd1BJ3GZQ9TL3SzwzA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix b/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
index 81cb4b51dc486..a8cf30e9732e8 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "00z31alwn2skhksrhp2jk75f6jlaipzk91hclx7na4gbcyrw7ahw";
+    sha256 = "sha256-HKrDs2frEWVPpwyGNP+NikrjyplSXJj1hFMLy6kK4wM=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
index 42eb8fb37715b..de93b0d36834a 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "1zrsvbd386f7r3jbvjf8j08v1n5cpzkbjjaj2lxvjn8b81xgwy8j";
+    sha256 = "sha256-Enn+ekALWbk7FVJJuea/rNiwEZDIyb3kyMcZNNraOv8=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix b/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix
index 2580907a59232..f435104b3205d 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix
@@ -8,7 +8,7 @@
 , epiphany
 , elementary-settings-daemon
 , gtk3
-, plank
+, elementary-dock
 , gsettings-desktop-schemas
 , extraGSettingsOverrides ? ""
 , extraGSettingsOverridePackages ? []
@@ -17,13 +17,13 @@
 let
 
   gsettingsOverridePackages = [
+    elementary-dock
     elementary-settings-daemon
     epiphany
     gala
-    mutter
     gsettings-desktop-schemas
     gtk3
-    plank
+    mutter
   ] ++ extraGSettingsOverridePackages;
 
 in
diff --git a/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix b/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix
index 2bfa1c2208862..31ed7f3672a99 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "1cq9smvrnzc12gp6rzcdxc3x0sbgcch246r5m2c7m2561mfg1d5l";
+    sha256 = "sha256-tLTwXA2miHqYqCUbIiBjb2nQB+uN/WzuE4F9m3fVCbM=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix b/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix
index 0d6de8a77d505..7610551fb9c1c 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "1w3cfap7j42x14mqpfqdm46hk5xc0v5kv8r6wxcnknr3sfxi8qlp";
+    sha256 = "sha256-l2IUu9Mj22lZ5yajPcsGrJcJDakNu4srCV0Qea5ybPA=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix b/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix
index 798757ba726eb..4e6afb9ff89de 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0v8fx58fn309glxi2zxxlnddw8lkmjr025f22ml3p483zkvbcm2c";
+    sha256 = "sha256-TFS29vwDkTtoFcIVAbKskyLemqW9fxE7fQkM61DpDm0=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/desktop/gala/default.nix b/pkgs/desktops/pantheon/desktop/gala/default.nix
index eb865d695e299..349b4cd63b5dc 100644
--- a/pkgs/desktops/pantheon/desktop/gala/default.nix
+++ b/pkgs/desktops/pantheon/desktop/gala/default.nix
@@ -20,7 +20,7 @@
 , gnome-desktop
 , mutter
 , clutter
-, plank
+, elementary-dock
 , elementary-icon-theme
 , elementary-settings-daemon
 , wrapGAppsHook
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1qd8ynn04rzkki68w4x3ryq6fhlbi6mk359rx86a8ni084fsprh4";
+    sha256 = "sha256-BOarHUEgWqQM6jmVMauJi0JnsM+jE45MnPNnAqz1qOE=";
   };
 
   passthru = {
@@ -58,16 +58,16 @@ 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 = [
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
index 45141dc1d3d93..3e58a2a101a59 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
@@ -15,7 +15,7 @@
 , appstream
 , gnome-menus
 , json-glib
-, plank
+, elementary-dock
 , bamf
 , switchboard
 , libunity
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0wsfvyp0z6c612nl348dr6sar0qghhfcgkzcx3108x8v743v7rim";
+    sha256 = "sha256-NeazBzkbdQTC6OzPxxyED4OstMkNkUGtCIaZD67fTnM=";
   };
 
   passthru = {
@@ -57,6 +57,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     bamf
+    elementary-dock
     gnome-menus
     granite
     gtk3
@@ -65,7 +66,6 @@ stdenv.mkDerivation rec {
     libhandy
     libsoup
     libunity
-    plank
     switchboard
     wingpanel
     zeitgeist
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
index 310f908d35d89..51c87d5f34b2c 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0ylbpai05b300h07b94xcmw9xi7qx13l1q38zlg2n95d3c5264dp";
+    sha256 = "sha256-txEjChutJCse/WjgQEfo+MSeeGWdpHUABGCsAqK6i3o=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
index 1d2d94ad01aa6..09583877fb132 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0z5a4jkmg8jw3yjdq89njhqcpms2rbq7rnsh83q9gh8v3qidk75d";
+    sha256 = "sha256-rZzZIh4bwZfwQFDbfPDKQtfLMJQ2IdykH1yiV6ckqnw=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
index 838c592c989f2..712b25d22f453 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0q32qc6jh5w0i1ixkl59pys8r3hxmbig8854q7sxi07vlk9g3i7y";
+    sha256 = "sha256-/sTx0qT7gNj1waQg9OKqHY6MtL+p0NljiIAXKA3DYmA=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
index 76d6368fcebcd..7f1ee7fbfbac8 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1ja789m4d3akm3i9fl3kazfcny376xl4apv445mrwkwlvcfyylf1";
+    sha256 = "sha256-wVHvHduUT55rIWRfRWg3Z3jL3FdzUJfiqFONRmpCR8k=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
index 30456eee461ab..05d0b0a0beb18 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
@@ -15,13 +15,13 @@
 
 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 = {
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
index bf206868f944e..99ba52212a296 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0qp13iaf2956ss4d6w6vwnzdvb7izqmyh6xrdii7j8gxxwjd4lxm";
+    sha256 = "sha256-tVPSJO/9IXlibLkb6Cv+8azdvuXbcNOI1qYk4VQc4WI=";
   };
 
   patches = [
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
index ac9f07232f128..3ad4ab4d662d2 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
@@ -18,13 +18,13 @@
 
 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 = {
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
index 410acc3733022..4812e2bc91df8 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "02inp8xdxfx8qxjdf2nazw46ahp1gv3skd922ma6kgx5w4wxh5l8";
+    sha256 = "sha256-iBbYOeGlv2lUFSK1qcd+4UJlCP/KCtdkx6i73jq6Ngo=";
   };
 
   patches = [
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
index eb1d4807325f9..02f7984eee98d 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
@@ -19,13 +19,13 @@
 
 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 = {
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
index 0c456b13111e4..08eda9aa3685b 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0sz3m64s5clirmiamx67iq42spba7sggcb29sny44z9f939vly4r";
+    sha256 = "sha256-mXi600gufUK81Uks9p4+al0tCI7H9KpizZGyoomp42s=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/granite/default.nix b/pkgs/desktops/pantheon/granite/default.nix
index 69b53c78ed2e8..8b5ad8d5e6b54 100644
--- a/pkgs/desktops/pantheon/granite/default.nix
+++ b/pkgs/desktops/pantheon/granite/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "13qfhq8xndikk6kmybibs6a4ddyp6mhvbsp2yy4qr7aiiyxf7mna";
+    sha256 = "sha256-ytbjuo9RnYyJ9+LqtWE117dGlNErLl+nmTM22xGGDo8=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/services/contractor/default.nix b/pkgs/desktops/pantheon/services/contractor/default.nix
index 11152defc6548..76874878ff7d5 100644
--- a/pkgs/desktops/pantheon/services/contractor/default.nix
+++ b/pkgs/desktops/pantheon/services/contractor/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1jzqv7pglhhyrkj1pfk1l624zn1822wyl5dp6gvwn4sk3iqxwwhl";
+    sha256 = "sha256-FHLecRxTE8v3M7cV6rkQKNhPhKFhuhvkzB5C+u7Z+Ms=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix b/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix
index 2f7bfaa155bb2..2213bcb4e3771 100644
--- a/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix
+++ b/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "09pl1ynrmqjj844np4ww2i18z7kgx5kmj5ggfp8lqmxgsny7g8m3";
+    sha256 = "sha256-o6J3vNWvV0zRde8VWWfpb56PQhSck2sJQVLimq0P9CY=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix b/pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix
index b8c87cfd546ea..3bb68475096f7 100644
--- a/pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix
+++ b/pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0svfp0qyb6nx4mjl3jx4aqmb4x24m25jpi75mdis3yfr3c1xz9nh";
+    sha256 = "sha256-0KbfAxvZ+aFjq+XEK4uoRHSyKlaky0FlJd2a5TG4bms=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix b/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix
index 4b9be31015a29..11e0aaee3ad96 100644
--- a/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix
+++ b/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1lky7pw47d5mdza3bhq0ahdhgdv159ixngdsc1ys6j1kszsfxc1f";
+    sha256 = "sha256-LrDu9NczSKN9YLo922MqYbcHG1QAwzXUb7W0Q/g9ftI=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix b/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix
index 61679320505c5..ad8cf7e82e935 100644
--- a/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix
+++ b/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1kd6spwfwy5r2mrf7xh5l2wrazqia8vr4j3g27s97vn7fcg4pgb0";
+    sha256 = "sha256-YL1LHnPH7pP0EW9IkjdSEX+VuaAF9uNyFbl47vjVps0=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/plasma-5/breeze-plymouth/default.nix b/pkgs/desktops/plasma-5/breeze-plymouth/default.nix
index 770e549fc2cd6..9127b7fecb6ec 100644
--- a/pkgs/desktops/plasma-5/breeze-plymouth/default.nix
+++ b/pkgs/desktops/plasma-5/breeze-plymouth/default.nix
@@ -1,7 +1,6 @@
 {
   mkDerivation,
   lib,
-  copyPathsToStore,
   extra-cmake-modules,
   plymouth,
   nixos-icons,
@@ -16,19 +15,21 @@
   bottomColor ? "black"
 }:
 
-let 
+let
   validColors = [ "black" "cardboard_grey" "charcoal_grey" "icon_blue" "paper_white" "plasma_blue" "neon_blue" "neon_green" ];
   resolvedLogoName = if (logoFile != null && logoName == null) then lib.strings.removeSuffix ".png" (baseNameOf(toString logoFile)) else logoName;
 in
   assert lib.asserts.assertOneOf "topColor" topColor validColors;
   assert lib.asserts.assertOneOf "bottomColor" bottomColor validColors;
-  
+
 
 mkDerivation {
   name = "breeze-plymouth";
   nativeBuildInputs = [ extra-cmake-modules ] ++ lib.optionals (logoFile != null) [ imagemagick netpbm perl ];
   buildInputs = [ plymouth ];
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./install-paths.patch
+  ];
   cmakeFlags = []
     ++ lib.optional (osName      != null) "-DDISTRO_NAME=${osName}"
     ++ lib.optional (osVersion   != null) "-DDISTRO_VERSION=${osVersion}"
@@ -36,7 +37,7 @@ mkDerivation {
     ++ lib.optional (topColor    != null) "-DBACKGROUND_TOP_COLOR=${topColor}"
     ++ lib.optional (bottomColor != null) "-DBACKGROUND_BOTTOM_COLOR=${bottomColor}"
   ;
-  
+
   postPatch = ''
       substituteInPlace cmake/FindPlymouth.cmake --subst-var out
   '' + lib.optionalString (logoFile != null) ''
diff --git a/pkgs/desktops/plasma-5/breeze-plymouth/series b/pkgs/desktops/plasma-5/breeze-plymouth/series
deleted file mode 100644
index 8920e7ca51891..0000000000000
--- a/pkgs/desktops/plasma-5/breeze-plymouth/series
+++ /dev/null
@@ -1 +0,0 @@
-install-paths.patch
diff --git a/pkgs/desktops/plasma-5/fetch.sh b/pkgs/desktops/plasma-5/fetch.sh
index d871ceb28757f..abb5659526f71 100644
--- a/pkgs/desktops/plasma-5/fetch.sh
+++ b/pkgs/desktops/plasma-5/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( https://download.kde.org/stable/plasma/5.17.5/ )
+WGET_ARGS=( https://download.kde.org/stable/plasma/5.18.5/ )
diff --git a/pkgs/desktops/plasma-5/kde-gtk-config/0001-gsettings-schemas-path.patch b/pkgs/desktops/plasma-5/kde-gtk-config/0001-gsettings-schemas-path.patch
new file mode 100644
index 0000000000000..2fe4672f6757f
--- /dev/null
+++ b/pkgs/desktops/plasma-5/kde-gtk-config/0001-gsettings-schemas-path.patch
@@ -0,0 +1,21 @@
+diff --git a/kded/gtkconfig.cpp b/kded/gtkconfig.cpp
+index 5303636..199c4d5 100644
+--- a/kded/gtkconfig.cpp
++++ b/kded/gtkconfig.cpp
+@@ -41,6 +41,16 @@ GtkConfig::GtkConfig(QObject *parent, const QVariantList&) :
+     kdeglobalsConfigWatcher(KConfigWatcher::create(KSharedConfig::openConfig(QStringLiteral("kdeglobals")))),
+     kwinConfigWatcher(KConfigWatcher::create(KSharedConfig::openConfig(QStringLiteral("kwinrc"))))
+ {
++    // Add GSETTINGS_SCHEMAS_PATH to the front of XDG_DATA_DIRS.
++    // Normally this would be done by wrapGAppsHook, but this plugin
++    // (shared object) cannot be wrapped.
++    QByteArray xdgdata = qgetenv("XDG_DATA_DIRS");
++    if (!xdgdata.isEmpty()) {
++        xdgdata.push_front(":");
++    }
++    xdgdata.push_front(QByteArray(GSETTINGS_SCHEMAS_PATH));
++    qputenv("XDG_DATA_DIRS", xdgdata);
++
+     QDBusConnection dbus = QDBusConnection::sessionBus();
+     dbus.registerService(QStringLiteral("org.kde.GtkConfig"));
+     dbus.registerObject(QStringLiteral("/GtkConfig"), this, QDBusConnection::ExportScriptableSlots);
diff --git a/pkgs/desktops/plasma-5/kde-gtk-config/default.nix b/pkgs/desktops/plasma-5/kde-gtk-config/default.nix
index 8cfc947d30bdc..c1ed6dbd6c6e6 100644
--- a/pkgs/desktops/plasma-5/kde-gtk-config/default.nix
+++ b/pkgs/desktops/plasma-5/kde-gtk-config/default.nix
@@ -2,7 +2,7 @@
   mkDerivation,
   extra-cmake-modules, wrapGAppsHook,
   glib, gtk2, gtk3, karchive, kcmutils, kconfigwidgets, ki18n, kiconthemes, kio,
-  knewstuff, gsettings-desktop-schemas
+  knewstuff, gsettings-desktop-schemas, xsettingsd
 }:
 
 mkDerivation {
@@ -11,14 +11,16 @@ mkDerivation {
   dontWrapGApps = true;  # There is nothing to wrap
   buildInputs = [
     ki18n kio glib gtk2 gtk3 karchive kcmutils kconfigwidgets kiconthemes
-    knewstuff gsettings-desktop-schemas
+    knewstuff gsettings-desktop-schemas xsettingsd
   ];
-  patches = [ ./patches/follow-symlinks.patch ./patches/gsettings.patch ];
   cmakeFlags = [
     "-DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include"
     "-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2.out}/lib/gtk-2.0/include"
     "-DGLIB_SCHEMAS_DIR=${gsettings-desktop-schemas.out}/"
   ];
+  # The gtkconfig KDED module will crash the daemon if the GSettings schemas
+  # aren't found.
+  patches = [ ./0001-gsettings-schemas-path.patch ];
   preConfigure = ''
     NIX_CFLAGS_COMPILE+=" -DGSETTINGS_SCHEMAS_PATH=\"$GSETTINGS_SCHEMAS_PATH\""
   '';
diff --git a/pkgs/desktops/plasma-5/kde-gtk-config/patches/follow-symlinks.patch b/pkgs/desktops/plasma-5/kde-gtk-config/patches/follow-symlinks.patch
deleted file mode 100644
index f30a0a4588fa1..0000000000000
--- a/pkgs/desktops/plasma-5/kde-gtk-config/patches/follow-symlinks.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 33b25c2e3c7a002c7f726cd79fc4bab22b1299be Mon Sep 17 00:00:00 2001
-From: Thomas Tuegel <ttuegel@gmail.com>
-Date: Tue, 27 Oct 2015 18:07:54 -0500
-Subject: [PATCH] follow symlinks
-
----
- src/appearancegtk2.cpp  | 2 +-
- src/iconthemesmodel.cpp | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-Index: kde-gtk-config-5.12.4/src/appearancegtk2.cpp
-===================================================================
---- kde-gtk-config-5.12.4.orig/src/appearancegtk2.cpp
-+++ kde-gtk-config-5.12.4/src/appearancegtk2.cpp
-@@ -69,7 +69,7 @@ QString AppearanceGTK2::themesGtkrcFile(
-     QStringList themes=installedThemes();
-     themes=themes.filter(QRegExp("/"+themeName+"/?$"));
-     if(themes.size()==1) {
--        QDirIterator it(themes.first(), QDirIterator::Subdirectories);
-+        QDirIterator it(themes.first(), QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
-         while(it.hasNext()) {
-             it.next();
-             if(it.fileName()=="gtkrc") {
-Index: kde-gtk-config-5.12.4/src/iconthemesmodel.cpp
-===================================================================
---- kde-gtk-config-5.12.4.orig/src/iconthemesmodel.cpp
-+++ kde-gtk-config-5.12.4/src/iconthemesmodel.cpp
-@@ -47,7 +47,7 @@ QList<QDir> IconThemesModel::installedTh
- 
-     foreach(const QString& dir, dirs) {
-         QDir userIconsDir(dir);
--        QDirIterator it(userIconsDir.path(), QDir::NoDotAndDotDot|QDir::AllDirs|QDir::NoSymLinks);
-+        QDirIterator it(userIconsDir.path(), QDir::NoDotAndDotDot|QDir::AllDirs);
-         while(it.hasNext()) {
-             QString currentPath = it.next();
-             QDir dir(currentPath);
-Index: kde-gtk-config-5.12.4/src/cursorthemesmodel.cpp
-===================================================================
---- kde-gtk-config-5.12.4.orig/src/cursorthemesmodel.cpp
-+++ kde-gtk-config-5.12.4/src/cursorthemesmodel.cpp
-@@ -47,7 +47,7 @@ QList<QDir> CursorThemesModel::installed
- 
-     foreach(const QString& dir, dirs) {
-         QDir userIconsDir(dir);
--        QDirIterator it(userIconsDir.path(), QDir::NoDotAndDotDot|QDir::AllDirs|QDir::NoSymLinks);
-+        QDirIterator it(userIconsDir.path(), QDir::NoDotAndDotDot|QDir::AllDirs);
-         while(it.hasNext()) {
-             QString currentPath = it.next();
-             QDir dir(currentPath);
diff --git a/pkgs/desktops/plasma-5/kde-gtk-config/patches/gsettings.patch b/pkgs/desktops/plasma-5/kde-gtk-config/patches/gsettings.patch
deleted file mode 100644
index 69f7bc4e56a03..0000000000000
--- a/pkgs/desktops/plasma-5/kde-gtk-config/patches/gsettings.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/src/gtkconfigkcmodule.cpp b/src/gtkconfigkcmodule.cpp
-index 7b82d50..96831d8 100644
---- a/src/gtkconfigkcmodule.cpp
-+++ b/src/gtkconfigkcmodule.cpp
-@@ -91,6 +91,16 @@ GTKConfigKCModule::GTKConfigKCModule(QWidget* parent, const QVariantList& args )
-     iconsProxyModel->sort(0);
-     ui->cb_icon->setModel(iconsProxyModel);
-     ui->cb_icon_fallback->setModel(iconsProxyModel);
-+
-+    // Add GSETTINGS_SCHEMAS_PATH to the front of XDG_DATA_DIRS.
-+    // Normally this would be done by wrapGAppsHook, but this plugin
-+    // (shared object) cannot be wrapped.
-+    QByteArray xdgdata = qgetenv("XDG_DATA_DIRS");
-+    if (!xdgdata.isEmpty()) {
-+        xdgdata.push_front(":");
-+    }
-+    xdgdata.push_front(QByteArray(GSETTINGS_SCHEMAS_PATH));
-+    qputenv("XDG_DATA_DIRS", xdgdata);
-     
-     m_tempGtk2Preview = QStandardPaths::writableLocation(QStandardPaths::TempLocation)+ "/gtkrc-2.0";
-     m_tempGtk3Preview = QStandardPaths::writableLocation(QStandardPaths::TempLocation)+ "/.config/gtk-3.0/settings.ini";
diff --git a/pkgs/desktops/plasma-5/kde-gtk-config/patches/series b/pkgs/desktops/plasma-5/kde-gtk-config/patches/series
deleted file mode 100644
index 7aad1acf6ac44..0000000000000
--- a/pkgs/desktops/plasma-5/kde-gtk-config/patches/series
+++ /dev/null
@@ -1,2 +0,0 @@
-follow-symlinks.patch
-gsettings.patch
diff --git a/pkgs/desktops/plasma-5/kdeplasma-addons.nix b/pkgs/desktops/plasma-5/kdeplasma-addons.nix
index 398fc356fc939..f214d4070eec1 100644
--- a/pkgs/desktops/plasma-5/kdeplasma-addons.nix
+++ b/pkgs/desktops/plasma-5/kdeplasma-addons.nix
@@ -1,17 +1,18 @@
 {
   mkDerivation,
   extra-cmake-modules, kdoctools,
-  kconfig, kconfigwidgets, kcoreaddons, kcmutils, kdelibs4support, kio,
-  knewstuff, kross, krunner, kservice, ksysguard, kunitconversion, ibus,
-  plasma-framework, plasma-workspace, qtdeclarative, qtx11extras, kholidays
+  kconfig, kconfigwidgets, kcoreaddons, kcmutils, kdelibs4support, kholidays,
+  kio, knewstuff, kpurpose, kross, krunner, kservice, ksysguard,
+  kunitconversion, ibus, plasma-framework, plasma-workspace, qtdeclarative,
+  qtwebengine, qtx11extras
 }:
 
 mkDerivation {
   name = "kdeplasma-addons";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    kconfig kconfigwidgets kcoreaddons kcmutils kdelibs4support kio knewstuff
-    kross krunner kservice ksysguard kunitconversion ibus plasma-framework
-    plasma-workspace qtdeclarative qtx11extras kholidays
+    kconfig kconfigwidgets kcoreaddons kcmutils kdelibs4support kholidays kio
+    knewstuff kpurpose kross krunner kservice ksysguard kunitconversion ibus
+    plasma-framework plasma-workspace qtdeclarative qtwebengine qtx11extras
   ];
 }
diff --git a/pkgs/desktops/plasma-5/kinfocenter.nix b/pkgs/desktops/plasma-5/kinfocenter.nix
index b35493929ff34..cf353af589190 100644
--- a/pkgs/desktops/plasma-5/kinfocenter.nix
+++ b/pkgs/desktops/plasma-5/kinfocenter.nix
@@ -2,8 +2,9 @@
   mkDerivation,
   extra-cmake-modules, kdoctools,
   kcmutils, kcompletion, kconfig, kconfigwidgets, kcoreaddons, kdbusaddons,
-  kdeclarative, kdelibs4support, ki18n, kiconthemes, kio, kpackage, kservice,
-  kwayland, kwidgetsaddons, kxmlgui, libraw1394, libGLU, pciutils, solid
+  kdeclarative, kdelibs4support, ki18n, kiconthemes, kio, kirigami2, kpackage,
+  kservice, kwayland, kwidgetsaddons, kxmlgui, libraw1394, libGLU, pciutils,
+  solid
 }:
 
 mkDerivation {
@@ -11,7 +12,7 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kcmutils kcompletion kconfig kconfigwidgets kcoreaddons kdbusaddons
-    kdeclarative kdelibs4support ki18n kiconthemes kio kpackage kservice
-    kwayland kwidgetsaddons kxmlgui libraw1394 libGLU pciutils solid
+    kdeclarative kdelibs4support ki18n kiconthemes kio kirigami2 kpackage
+    kservice kwayland kwidgetsaddons kxmlgui libraw1394 libGLU pciutils solid
   ];
 }
diff --git a/pkgs/desktops/plasma-5/kscreen-417316.patch b/pkgs/desktops/plasma-5/kscreen-417316.patch
deleted file mode 100644
index 92b347e2dbfc2..0000000000000
--- a/pkgs/desktops/plasma-5/kscreen-417316.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-https://phabricator.kde.org/file/data/dyr2qr4wrhxg4eahkgd3/PHID-FILE-7d4og3zr4mk53u6lzkk2/D27442.diff
-https://bugs.kde.org/show_bug.cgi?id=417316
-
-diff -ru kscreen-5.17.5-orig/kcm/package/contents/ui/main.qml kscreen-5.17.5/kcm/package/contents/ui/main.qml
---- kscreen-5.17.5-orig/kcm/package/contents/ui/main.qml	2020-01-07 16:28:39.000000000 +0100
-+++ kscreen-5.17.5/kcm/package/contents/ui/main.qml	2020-04-03 17:54:26.097809557 +0200
-@@ -24,8 +24,8 @@
- KCM.SimpleKCM {
-     id: root
- 
--    implicitWidth: units.gridUnit * 30
--    implicitHeight: units.gridUnit * 38
-+    implicitWidth: Kirigami.Units.gridUnit * 32
-+    implicitHeight: Kirigami.Units.gridUnit * 38
- 
-     property int selectedOutput: 0
- 
-@@ -113,7 +113,7 @@
-             id: screen
- 
-             Layout.alignment: Qt.AlignHCenter
--            Layout.preferredWidth: Math.max(root.width * 0.8, units.gridUnit * 26)
-+            Layout.preferredWidth: Math.max(root.width * 0.8, Kirigami.Units.gridUnit * 26)
-             Layout.topMargin: Kirigami.Units.smallSpacing
-             Layout.bottomMargin: Kirigami.Units.largeSpacing * 2
- 
-diff -ru kscreen-5.17.5-orig/kcm/package/contents/ui/Output.qml kscreen-5.17.5/kcm/package/contents/ui/Output.qml
---- kscreen-5.17.5-orig/kcm/package/contents/ui/Output.qml	2020-01-07 16:28:39.000000000 +0100
-+++ kscreen-5.17.5/kcm/package/contents/ui/Output.qml	2020-04-03 17:53:22.491686708 +0200
-@@ -19,6 +19,7 @@
- import QtQuick.Layouts 1.1
- import QtQuick.Controls 2.3 as Controls
- import QtGraphicalEffects 1.0
-+import org.kde.kirigami 2.4 as Kirigami
- 
- Rectangle {
-     id: output
-@@ -77,7 +78,7 @@
- 
-             Controls.Label {
-                 Layout.fillWidth: true
--                Layout.margins: units.smallSpacing
-+                Layout.margins: Kirigami.Units.smallSpacing
- 
-                 text: model.display
-                 wrapMode: Text.Wrap
-@@ -87,7 +88,7 @@
- 
-             Controls.Label {
-                 Layout.fillWidth: true
--                Layout.bottomMargin: units.smallSpacing
-+                Layout.bottomMargin: Kirigami.Units.smallSpacing
- 
-                 text: "(" + model.size.width + "x" + model.size.height + ")"
-                 horizontalAlignment: Text.AlignHCenter
-diff -ru kscreen-5.17.5-orig/kcm/package/contents/ui/Screen.qml kscreen-5.17.5/kcm/package/contents/ui/Screen.qml
---- kscreen-5.17.5-orig/kcm/package/contents/ui/Screen.qml	2020-01-07 16:28:39.000000000 +0100
-+++ kscreen-5.17.5/kcm/package/contents/ui/Screen.qml	2020-04-03 17:53:22.491686708 +0200
-@@ -45,7 +45,7 @@
-     property int xOffset: (width - totalSize.width / relativeFactor) / 2;
-     property int yOffset: (height - totalSize.height / relativeFactor) / 2;
- 
--    implicitHeight: Math.max(root.height * 0.4, units.gridUnit * 13)
-+    implicitHeight: Math.max(root.height * 0.4, Kirigami.Units.gridUnit * 13)
- 
-     Component.onCompleted: background.visible = true;
- 
-@@ -54,7 +54,7 @@
-         anchors {
-             bottom: parent.bottom
-             horizontalCenter: parent.horizontalCenter
--            margins: units.smallSpacing
-+            margins: Kirigami.Units.smallSpacing
-         }
-         spacing: units.smallSpacing
-         Controls.Button {
diff --git a/pkgs/desktops/plasma-5/kscreen.nix b/pkgs/desktops/plasma-5/kscreen.nix
index 2f37c4212da47..11b0f38fed053 100644
--- a/pkgs/desktops/plasma-5/kscreen.nix
+++ b/pkgs/desktops/plasma-5/kscreen.nix
@@ -2,17 +2,16 @@
   mkDerivation,
   extra-cmake-modules,
   kconfig, kcmutils, kconfigwidgets, kdbusaddons, kglobalaccel, ki18n,
-  kwidgetsaddons, kxmlgui, libkscreen, qtdeclarative, qtgraphicaleffects,
+  kwidgetsaddons, kxmlgui, libkscreen, qtdeclarative, qtgraphicaleffects, qtsensors,
   kwindowsystem, kdeclarative, plasma-framework
 }:
 
 mkDerivation {
   name = "kscreen";
-  patches = [ ./kscreen-417316.patch ];
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     kconfig kcmutils kconfigwidgets kdbusaddons kglobalaccel ki18n
-    kwidgetsaddons kxmlgui libkscreen qtdeclarative qtgraphicaleffects
+    kwidgetsaddons kxmlgui libkscreen qtdeclarative qtgraphicaleffects qtsensors
     kwindowsystem kdeclarative plasma-framework
   ];
 }
diff --git a/pkgs/desktops/plasma-5/ksysguard.nix b/pkgs/desktops/plasma-5/ksysguard.nix
index 01e740f74c4bc..72793fdf08380 100644
--- a/pkgs/desktops/plasma-5/ksysguard.nix
+++ b/pkgs/desktops/plasma-5/ksysguard.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation,
   extra-cmake-modules, kdoctools,
-  lm_sensors,
+  libcap, libpcap, lm_sensors,
   kconfig, kcoreaddons, kdelibs4support, ki18n, kiconthemes, kitemviews,
   knewstuff, libksysguard
 }:
@@ -11,6 +11,6 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kconfig kcoreaddons kitemviews knewstuff kiconthemes libksysguard
-    kdelibs4support ki18n lm_sensors
+    kdelibs4support ki18n libcap libpcap lm_sensors
   ];
 }
diff --git a/pkgs/desktops/plasma-5/kwin/default.nix b/pkgs/desktops/plasma-5/kwin/default.nix
index c3e9e2b9c2451..78b6909f046d1 100644
--- a/pkgs/desktops/plasma-5/kwin/default.nix
+++ b/pkgs/desktops/plasma-5/kwin/default.nix
@@ -1,17 +1,18 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
 
   epoxy,libICE, libSM, libinput, libxkbcommon, udev, wayland, xcb-util-cursor,
   xwayland,
 
-  qtdeclarative, qtmultimedia, qtscript, qtx11extras,
+  qtdeclarative, qtmultimedia, qtquickcontrols2, qtscript, qtsensors,
+  qtvirtualkeyboard, qtx11extras,
 
   breeze-qt5, kactivities, kcompletion, kcmutils, kconfig, kconfigwidgets,
   kcoreaddons, kcrash, kdeclarative, kdecoration, kglobalaccel, ki18n,
   kiconthemes, kidletime, kinit, kio, knewstuff, knotifications, kpackage,
   kscreenlocker, kservice, kwayland, kwidgetsaddons, kwindowsystem, kxmlgui,
-  plasma-framework, qtsensors, libcap, libdrm, mesa
+  plasma-framework, libcap, libdrm, mesa
 }:
 
 # TODO (ttuegel): investigate qmlplugindump failure
@@ -23,7 +24,8 @@ mkDerivation {
     epoxy libICE libSM libinput libxkbcommon udev wayland xcb-util-cursor
     xwayland
 
-    qtdeclarative qtmultimedia qtscript qtx11extras qtsensors
+    qtdeclarative qtmultimedia qtquickcontrols2 qtscript qtsensors
+    qtvirtualkeyboard qtx11extras
 
     breeze-qt5 kactivities kcmutils kcompletion kconfig kconfigwidgets
     kcoreaddons kcrash kdeclarative kdecoration kglobalaccel ki18n kiconthemes
diff --git a/pkgs/desktops/plasma-5/kwin/scripts/dynamic-workspaces.nix b/pkgs/desktops/plasma-5/kwin/scripts/dynamic-workspaces.nix
new file mode 100644
index 0000000000000..cea788f264036
--- /dev/null
+++ b/pkgs/desktops/plasma-5/kwin/scripts/dynamic-workspaces.nix
@@ -0,0 +1,39 @@
+{ lib, mkDerivation, fetchFromGitHub
+, kcoreaddons, kwindowsystem, plasma-framework, systemsettings }:
+
+mkDerivation rec {
+  pname = "dynamic_workspaces";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "d86leader";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1mnwh489i6l8z9s5a1zl7zybkw76pp9fdmmis41mym7r4wz4iznm";
+  };
+
+  buildInputs = [
+    kcoreaddons kwindowsystem plasma-framework systemsettings
+  ];
+
+  dontBuild = true;
+
+  # 1. --global still installs to $HOME/.local/share so we use --packageroot
+  # 2. plasmapkg2 doesn't copy metadata.desktop into place, so we do that manually
+  installPhase = ''
+    runHook preInstall
+
+    plasmapkg2 --type kwinscript --install ${src} --packageroot $out/share/kwin/scripts
+    install -Dm644 ${src}/metadata.desktop $out/share/kservices5/dynamic_workspaces.desktop
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "KWin script that automatically adds/removes virtual desktops";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ samuelgrf ];
+    inherit (src.meta) homepage;
+    inherit (kwindowsystem.meta) platforms;
+  };
+}
diff --git a/pkgs/desktops/plasma-5/kwin/scripts/krohnkite.nix b/pkgs/desktops/plasma-5/kwin/scripts/krohnkite.nix
index abd655db37534..95480bc5b9680 100644
--- a/pkgs/desktops/plasma-5/kwin/scripts/krohnkite.nix
+++ b/pkgs/desktops/plasma-5/kwin/scripts/krohnkite.nix
@@ -26,7 +26,7 @@ mkDerivation rec {
     plasmapkg2 --type kwinscript --install ${src}/res/ --packageroot $out/share/kwin/scripts
     install -Dm644 ${src}/res/metadata.desktop $out/share/kservices5/krohnkite.desktop
 
-    runHook postInstalll
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/pkgs/desktops/plasma-5/kwin/scripts/tiling.nix b/pkgs/desktops/plasma-5/kwin/scripts/tiling.nix
index da424d04da908..8a455cb88826d 100644
--- a/pkgs/desktops/plasma-5/kwin/scripts/tiling.nix
+++ b/pkgs/desktops/plasma-5/kwin/scripts/tiling.nix
@@ -31,7 +31,7 @@ mkDerivation rec {
     plasmapkg2 --type kwinscript --install ${src} --packageroot $out/share/kwin/scripts
     install -Dm644 ${src}/metadata.desktop $out/share/kservices5/kwin-script-tiling.desktop
 
-    runHook postInstalll
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/pkgs/desktops/plasma-5/libkscreen/default.nix b/pkgs/desktops/plasma-5/libkscreen/default.nix
index cf9d708440147..db952944ecaa6 100644
--- a/pkgs/desktops/plasma-5/libkscreen/default.nix
+++ b/pkgs/desktops/plasma-5/libkscreen/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore, propagate,
+  mkDerivation, lib, propagate,
   extra-cmake-modules,
   kwayland, libXrandr, qtbase, qtx11extras
 }:
@@ -12,7 +12,9 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ kwayland libXrandr qtx11extras ];
   outputs = [ "out" "dev" ];
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./libkscreen-backends-path.patch
+  ];
   preConfigure = ''
     NIX_CFLAGS_COMPILE+=" -DNIXPKGS_LIBKSCREEN_BACKENDS=\"''${!outputBin}/$qtPluginPrefix/kf5/kscreen\""
   '';
diff --git a/pkgs/desktops/plasma-5/libkscreen/series b/pkgs/desktops/plasma-5/libkscreen/series
deleted file mode 100644
index 86bf4ab106022..0000000000000
--- a/pkgs/desktops/plasma-5/libkscreen/series
+++ /dev/null
@@ -1 +0,0 @@
-libkscreen-backends-path.patch
diff --git a/pkgs/desktops/plasma-5/plasma-desktop/default.nix b/pkgs/desktops/plasma-5/plasma-desktop/default.nix
index 4183b38ba4935..8ae48b21f7be0 100644
--- a/pkgs/desktops/plasma-5/plasma-desktop/default.nix
+++ b/pkgs/desktops/plasma-5/plasma-desktop/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
 
   boost, fontconfig, ibus, libXcursor, libXft, libcanberra_kde, libpulseaudio,
@@ -12,7 +12,7 @@
   kdeclarative, kded, kdelibs4support, kemoticons, kglobalaccel, ki18n,
   kitemmodels, knewstuff, knotifications, knotifyconfig, kpeople, krunner,
   kscreenlocker, ksysguard, kwallet, kwin, phonon, plasma-framework,
-  plasma-workspace, xf86inputlibinput
+  plasma-workspace, qqc2-desktop-style, xf86inputlibinput
 }:
 
 mkDerivation {
@@ -27,10 +27,13 @@ mkDerivation {
     attica baloo kactivities kactivities-stats kauth kcmutils kdbusaddons
     kdeclarative kded kdelibs4support kemoticons kglobalaccel ki18n kitemmodels
     knewstuff knotifications knotifyconfig kpeople krunner kscreenlocker
-    ksysguard kwallet kwin plasma-framework plasma-workspace
+    ksysguard kwallet kwin plasma-framework plasma-workspace qqc2-desktop-style
   ];
 
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./hwclock-path.patch
+    ./tzdir.patch
+  ];
   postPatch = ''
     sed '1i#include <cmath>' -i kcms/touchpad/src/backends/x11/synapticstouchpad.cpp
   '';
diff --git a/pkgs/desktops/plasma-5/plasma-desktop/hwclock-path.patch b/pkgs/desktops/plasma-5/plasma-desktop/hwclock-path.patch
index a46212af10fbf..6c04081ae29a1 100644
--- a/pkgs/desktops/plasma-5/plasma-desktop/hwclock-path.patch
+++ b/pkgs/desktops/plasma-5/plasma-desktop/hwclock-path.patch
@@ -17,7 +17,7 @@ Index: plasma-desktop-5.8.5/kcms/dateandtime/helper.cpp
  
  void ClockHelper::toHwclock()
  {
--    QString hwclock = KStandardDirs::findExe(QStringLiteral("hwclock"), exePath);
+-    QString hwclock = QStandardPaths::findExecutable(QStringLiteral("hwclock"), exePath.split(QLatin1Char(':')));
 +    QString hwclock = QLatin1String(NIXPKGS_HWCLOCK);
      if (!hwclock.isEmpty()) {
          KProcess::execute(hwclock, QStringList() << QStringLiteral("--systohc"));
diff --git a/pkgs/desktops/plasma-5/plasma-desktop/series b/pkgs/desktops/plasma-5/plasma-desktop/series
deleted file mode 100644
index 26517ba93565d..0000000000000
--- a/pkgs/desktops/plasma-5/plasma-desktop/series
+++ /dev/null
@@ -1,2 +0,0 @@
-hwclock-path.patch
-tzdir.patch
diff --git a/pkgs/desktops/plasma-5/plasma-pa.nix b/pkgs/desktops/plasma-5/plasma-pa.nix
index b60b5298d6dbb..e29df104f3c72 100644
--- a/pkgs/desktops/plasma-5/plasma-pa.nix
+++ b/pkgs/desktops/plasma-5/plasma-pa.nix
@@ -1,15 +1,20 @@
 {
   mkDerivation,
   extra-cmake-modules, kdoctools,
-  gconf, glib, kconfigwidgets, kcoreaddons, kdeclarative, kglobalaccel, ki18n,
-  libcanberra-gtk3, libpulseaudio, plasma-framework, qtdeclarative, kwindowsystem
+  kconfigwidgets, kcoreaddons, kdeclarative, kglobalaccel, ki18n, kwindowsystem, plasma-framework,
+  qtdeclarative,
+  gconf, glib, libcanberra-gtk3, libpulseaudio, sound-theme-freedesktop
 }:
 
 mkDerivation {
   name = "plasma-pa";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    gconf glib kconfigwidgets kcoreaddons kdeclarative kglobalaccel ki18n
-    libcanberra-gtk3 libpulseaudio plasma-framework qtdeclarative kwindowsystem
+    gconf glib libcanberra-gtk3 libpulseaudio sound-theme-freedesktop
+
+    kconfigwidgets kcoreaddons kdeclarative kglobalaccel ki18n plasma-framework
+    kwindowsystem
+
+    qtdeclarative
   ];
 }
diff --git a/pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch b/pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch
index d230e1270bea2..1208009262966 100644
--- a/pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch
+++ b/pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch
@@ -1,4 +1,4 @@
-From 1796822e4c97062b919a596ce13db68e2c46c7e8 Mon Sep 17 00:00:00 2001
+From 6477e377fcca39c07ef5f91a55084d7d74715d00 Mon Sep 17 00:00:00 2001
 From: Thomas Tuegel <ttuegel@mailbox.org>
 Date: Tue, 28 Jan 2020 05:00:53 -0600
 Subject: [PATCH 1/2] startkde
@@ -6,11 +6,11 @@ Subject: [PATCH 1/2] startkde
 ---
  startkde/startplasma-waylandsession.cpp |  2 +-
  startkde/startplasma-x11.cpp            |  2 +-
- startkde/startplasma.cpp                | 32 ++++++++-----------------
- 3 files changed, 12 insertions(+), 24 deletions(-)
+ startkde/startplasma.cpp                | 24 ++++++++++--------------
+ 3 files changed, 12 insertions(+), 16 deletions(-)
 
 diff --git a/startkde/startplasma-waylandsession.cpp b/startkde/startplasma-waylandsession.cpp
-index 87c71c6..5fc5314 100644
+index 87c71c6b3..5fc53140e 100644
 --- a/startkde/startplasma-waylandsession.cpp
 +++ b/startkde/startplasma-waylandsession.cpp
 @@ -67,7 +67,7 @@ int main(int /*argc*/, char** /*argv*/)
@@ -23,7 +23,7 @@ index 87c71c6..5fc5314 100644
      cleanupX11();
      out << "startplasma-waylandsession: Done.\n";
 diff --git a/startkde/startplasma-x11.cpp b/startkde/startplasma-x11.cpp
-index 3314b62..14cbe29 100644
+index 3314b6283..14cbe29fa 100644
 --- a/startkde/startplasma-x11.cpp
 +++ b/startkde/startplasma-x11.cpp
 @@ -111,7 +111,7 @@ int main(int /*argc*/, char** /*argv*/)
@@ -36,7 +36,7 @@ index 3314b62..14cbe29 100644
      cleanupPlasmaEnvironment();
      cleanupX11();
 diff --git a/startkde/startplasma.cpp b/startkde/startplasma.cpp
-index e0f7004..8ac41fd 100644
+index 4c9f5cef6..5ea4c2cf1 100644
 --- a/startkde/startplasma.cpp
 +++ b/startkde/startplasma.cpp
 @@ -34,7 +34,7 @@ QTextStream out(stderr);
@@ -48,22 +48,7 @@ index e0f7004..8ac41fd 100644
  }
  
  QStringList allServices(const QLatin1String& prefix)
-@@ -184,14 +184,6 @@ void runEnvironmentScripts()
-         }
-     }
-     sourceFiles(scripts);
--
--    // Make sure that the KDE prefix is first in XDG_DATA_DIRS and that it's set at all.
--    // The spec allows XDG_DATA_DIRS to be not set, but X session startup scripts tend
--    // to set it to a list of paths *not* including the KDE prefix if it's not /usr or
--    // /usr/local.
--    if (!qEnvironmentVariableIsSet("XDG_DATA_DIRS")) {
--        qputenv("XDG_DATA_DIRS", KDE_INSTALL_FULL_DATAROOTDIR ":/usr/share:/usr/local/share");
--    }
- }
- 
- 
-@@ -240,15 +232,15 @@ void setupX11()
+@@ -242,15 +242,15 @@ void setupX11()
  //     If the user has overwritten fonts, the cursor font may be different now
  //     so don't move this up.
  
@@ -84,7 +69,7 @@ index e0f7004..8ac41fd 100644
  }
  
  // TODO: Check if Necessary
-@@ -265,11 +257,7 @@ bool syncDBusEnvironment()
+@@ -267,11 +267,7 @@ bool syncDBusEnvironment()
  {
      int exitCode;
      // At this point all environment variables are set, let's send it to the DBus session server to update the activation environment
@@ -97,7 +82,7 @@ index e0f7004..8ac41fd 100644
      return exitCode == 0;
  }
  
-@@ -285,7 +273,7 @@ void setupFontDpi()
+@@ -287,7 +283,7 @@ void setupFontDpi()
      //TODO port to c++?
      const QByteArray input = "Xft.dpi: " + QByteArray::number(fontsCfg.readEntry("forceFontDPI", 0));
      QProcess p;
@@ -106,7 +91,7 @@ index e0f7004..8ac41fd 100644
      p.setProcessChannelMode(QProcess::ForwardedChannels);
      p.write(input);
      p.closeWriteChannel();
-@@ -307,7 +295,7 @@ QProcess* setupKSplash()
+@@ -309,7 +305,7 @@ QProcess* setupKSplash()
          KConfigGroup ksplashCfg = cfg.group("KSplash");
          if (ksplashCfg.readEntry("Engine", QStringLiteral("KSplashQML")) == QLatin1String("KSplashQML")) {
              p = new QProcess;
@@ -115,7 +100,7 @@ index e0f7004..8ac41fd 100644
          }
      }
      return p;
-@@ -329,7 +317,7 @@ bool startKDEInit()
+@@ -331,7 +327,7 @@ bool startKDEInit()
  {
      // We set LD_BIND_NOW to increase the efficiency of kdeinit.
      // kdeinit unsets this variable before loading applications.
@@ -125,5 +110,5 @@ index e0f7004..8ac41fd 100644
          messageBox(QStringLiteral("startkde: Could not start kdeinit5. Check your installation."));
          return false;
 -- 
-2.23.1
+2.25.1
 
diff --git a/pkgs/desktops/plasma-5/plasma-workspace/0002-absolute-wallpaper-install-dir.patch b/pkgs/desktops/plasma-5/plasma-workspace/0002-absolute-wallpaper-install-dir.patch
index 8fa9e1d31cff9..366707d27034d 100644
--- a/pkgs/desktops/plasma-5/plasma-workspace/0002-absolute-wallpaper-install-dir.patch
+++ b/pkgs/desktops/plasma-5/plasma-workspace/0002-absolute-wallpaper-install-dir.patch
@@ -1,4 +1,4 @@
-From 7c6f939aea290bc3ec7629f26d02441d1d4bcb8a Mon Sep 17 00:00:00 2001
+From f43f15870f14b8fa17ba0765c0d7e2b225fafc3f Mon Sep 17 00:00:00 2001
 From: Thomas Tuegel <ttuegel@mailbox.org>
 Date: Wed, 5 Feb 2020 05:03:11 -0600
 Subject: [PATCH 2/2] absolute-wallpaper-install-dir
@@ -8,15 +8,16 @@ Subject: [PATCH 2/2] absolute-wallpaper-install-dir
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/sddm-theme/theme.conf.cmake b/sddm-theme/theme.conf.cmake
-index ea9a943..c8458ba 100644
+index 8494a5c8a..f723c1e1b 100644
 --- a/sddm-theme/theme.conf.cmake
 +++ b/sddm-theme/theme.conf.cmake
-@@ -2,4 +2,4 @@
+@@ -4,5 +4,5 @@ logo=${KDE_INSTALL_FULL_DATADIR}/sddm/themes/breeze/default-logo.svg
  type=image
  color=#1d99f3
  fontSize=10
--background=${CMAKE_INSTALL_PREFIX}/${WALLPAPER_INSTALL_DIR}/Next/contents/images/5120x2880.png
-+background=${NIXPKGS_BREEZE_WALLPAPERS}/Next/contents/images/5120x2880.png
+-background=${KDE_INSTALL_FULL_WALLPAPERDIR}/Next/contents/images/5120x2880.jpg
++background=${NIXPKGS_BREEZE_WALLPAPERS}/Next/contents/images/5120x2880.jpg
+ needsFullUserModel=false
 -- 
-2.23.1
+2.25.1
 
diff --git a/pkgs/desktops/plasma-5/plasma-workspace/default.nix b/pkgs/desktops/plasma-5/plasma-workspace/default.nix
index 6aa0e3b573820..2c4287f8edf7a 100644
--- a/pkgs/desktops/plasma-5/plasma-workspace/default.nix
+++ b/pkgs/desktops/plasma-5/plasma-workspace/default.nix
@@ -11,7 +11,8 @@
   kinit, kjsembed, knewstuff, knotifyconfig, kpackage, kpeople, krunner,
   kscreenlocker, ktexteditor, ktextwidgets, kwallet, kwayland, kwin,
   kxmlrpcclient, libkscreen, libksysguard, libqalculate, networkmanager-qt,
-  phonon, plasma-framework, prison, solid, kholidays,
+  phonon, plasma-framework, prison, solid, kholidays, kquickcharts,
+  appstream-qt,
 
   qtgraphicaleffects, qtquickcontrols, qtquickcontrols2, qtscript, qttools,
   qtwayland, qtx11extras,
@@ -31,7 +32,7 @@ mkDerivation {
     knotifyconfig kpackage kpeople krunner kscreenlocker ktexteditor
     ktextwidgets kwallet kwayland kwin kxmlrpcclient libkscreen libksysguard
     libqalculate networkmanager-qt phonon plasma-framework prison solid
-    kholidays
+    kholidays kquickcharts appstream-qt
 
     qtgraphicaleffects qtquickcontrols qtquickcontrols2 qtscript qtwayland qtx11extras
   ];
@@ -47,7 +48,6 @@ mkDerivation {
     ./0002-absolute-wallpaper-install-dir.patch
   ];
 
-
   NIX_CFLAGS_COMPILE = [
     ''-DNIXPKGS_XMESSAGE="${getBin xmessage}/bin/xmessage"''
     ''-DNIXPKGS_XRDB="${getBin xrdb}/bin/xrdb"''
diff --git a/pkgs/desktops/plasma-5/powerdevil.nix b/pkgs/desktops/plasma-5/powerdevil.nix
index 47cfd644ad765..979d69a02f619 100644
--- a/pkgs/desktops/plasma-5/powerdevil.nix
+++ b/pkgs/desktops/plasma-5/powerdevil.nix
@@ -21,16 +21,16 @@ mkDerivation {
   patches = [
     # This fixes an issue where 'DDCA_Feature_List*' cannot be converted to
     # 'DDCA_Feature_List'.
-    # This can be dropped with the next release.
     # https://bugs.kde.org/show_bug.cgi?id=423605
     (fetchpatch {
       url = "https://invent.kde.org/plasma/powerdevil/-/commit/fcb26be2fb279e6ad3b7b814d26a5921d16201eb.patch";
       sha256 = "0gdyaa0nd1c1d6x2h0m933lascm8zm5sikd99wxmkf7hhaby6k2s";
     })
-    # This is a backport of
-    # https://invent.kde.org/plasma/powerdevil/-/commit/c7590f9065ec9547b7fabad77a548bbc0c693113.patch,
-    # which doesn't apply cleanly to 5.17.5.  It should make it into 5.20, so
-    # this patch can be removed when we upgrade to 5.20.
-    ./patches/0001-Add-a-logging-category-config-file.patch
+
+    # Reduce log message spam by setting the default log level to Warning.
+    (fetchpatch {
+      url = "https://invent.kde.org/plasma/powerdevil/-/commit/c7590f9065ec9547b7fabad77a548bbc0c693113.patch";
+      sha256 = "077whhi0jrb3bajx357k7n66hv7nchis8jix0nfc1zjvi9fm6pi2";
+    })
   ];
 }
diff --git a/pkgs/desktops/plasma-5/srcs.nix b/pkgs/desktops/plasma-5/srcs.nix
index fe78f210c17ed..6f9214ccd60c2 100644
--- a/pkgs/desktops/plasma-5/srcs.nix
+++ b/pkgs/desktops/plasma-5/srcs.nix
@@ -1,374 +1,390 @@
 # DO NOT EDIT! This file is generated automatically.
-# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/desktops/plasma-5/
+# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/desktops/plasma-5
 { fetchurl, mirror }:
 
 {
   bluedevil = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/bluedevil-5.17.5.tar.xz";
-      sha256 = "22e9c683dfc56a559e652809ade238f8eb0ffb09d5ab042f5cd4b8216f647c09";
-      name = "bluedevil-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/bluedevil-5.18.5.tar.xz";
+      sha256 = "5350efbaee01c78fd451e96bb2aceb7986d45ab05500476d1e95c4e79ec89a66";
+      name = "bluedevil-5.18.5.tar.xz";
     };
   };
   breeze = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/breeze-5.17.5.tar.xz";
-      sha256 = "f89bf857321b18789089efc9271d7bd7b6459a173dd078dd03242775db76c8d7";
-      name = "breeze-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/breeze-5.18.5.tar.xz";
+      sha256 = "1d08dfd24df4a4fcacad1e3759e559e82f6014ba63dc75dc32a24de6cd133563";
+      name = "breeze-5.18.5.tar.xz";
     };
   };
   breeze-grub = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/breeze-grub-5.17.5.tar.xz";
-      sha256 = "591a1d7a510c76a1f2729a61a4d14c0f33db4d1e8ea5dbc87b74f2e7e7e2a2ba";
-      name = "breeze-grub-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/breeze-grub-5.18.5.tar.xz";
+      sha256 = "24c40171601b82d1c7d01eb85d16718a2f46cf23ee792f5524ac89fda3d278b1";
+      name = "breeze-grub-5.18.5.tar.xz";
     };
   };
   breeze-gtk = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/breeze-gtk-5.17.5.tar.xz";
-      sha256 = "6dbd8e7d936840fbaf7016574d07729c9d0791711ad6d371136585ddb8f76e66";
-      name = "breeze-gtk-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/breeze-gtk-5.18.5.tar.xz";
+      sha256 = "41c7e83a28c033903d4fcab3da28a4c74ddb72958e66693a2d2e451f716cb7e9";
+      name = "breeze-gtk-5.18.5.tar.xz";
     };
   };
   breeze-plymouth = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/breeze-plymouth-5.17.5.tar.xz";
-      sha256 = "e95f9eaf04e74383f5e1abe74d999787e408be7a34fd07a4f64e253e35150af0";
-      name = "breeze-plymouth-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/breeze-plymouth-5.18.5.tar.xz";
+      sha256 = "c0d48dc5a02f3236ff657f86ee8cf532cf885a0e8b36bfe79f007e4d5e277281";
+      name = "breeze-plymouth-5.18.5.tar.xz";
     };
   };
   discover = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/discover-5.17.5.tar.xz";
-      sha256 = "986ef367aef59c5a956d4163f987a60cfd3674a300880376ddedc0222769789f";
-      name = "discover-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/discover-5.18.5.tar.xz";
+      sha256 = "d5ce4f4668c50ba9be37e04227db4bbe469e00470c87907f1e217fdcad6e76b6";
+      name = "discover-5.18.5.tar.xz";
     };
   };
   drkonqi = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/drkonqi-5.17.5.tar.xz";
-      sha256 = "756c50f2458a8c564e608ea97244f6b2b3d5fb4a675a8cec29307be1d5ab5457";
-      name = "drkonqi-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/drkonqi-5.18.5.tar.xz";
+      sha256 = "b1a626c4ed2f9de8f8bc3359d8827e7fa6ac17486b8477674e47627fcf6efad1";
+      name = "drkonqi-5.18.5.tar.xz";
     };
   };
   kactivitymanagerd = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kactivitymanagerd-5.17.5.tar.xz";
-      sha256 = "362721c3a9712751fba29cd1f1ef440a1e74561a611f2d171692a4ddc895b3e4";
-      name = "kactivitymanagerd-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kactivitymanagerd-5.18.5.tar.xz";
+      sha256 = "24f32eb4585d427ee62e08a9fa2f057353085c62644d6bec8fb4b2568e507ac7";
+      name = "kactivitymanagerd-5.18.5.tar.xz";
     };
   };
   kde-cli-tools = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kde-cli-tools-5.17.5.tar.xz";
-      sha256 = "d14299ebeaf89854cb89435cfaaa4da1d84bf23a97df23ff8c7f95dae5bec55f";
-      name = "kde-cli-tools-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kde-cli-tools-5.18.5.tar.xz";
+      sha256 = "e3981d1a17111f4e284b787a6e841d7ff47f4fdbca0ad17e105c0a047e5aaaa8";
+      name = "kde-cli-tools-5.18.5.tar.xz";
     };
   };
   kdecoration = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kdecoration-5.17.5.tar.xz";
-      sha256 = "7d8f0128306d436aeba010e47a3dddbcb9fb9fd05ef9308cbad1934914875cd9";
-      name = "kdecoration-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kdecoration-5.18.5.tar.xz";
+      sha256 = "f09856245f2cb08d9013da4c3128b5438f1e2f58af40031eb547ae765f57a9c8";
+      name = "kdecoration-5.18.5.tar.xz";
     };
   };
   kde-gtk-config = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kde-gtk-config-5.17.5.tar.xz";
-      sha256 = "5feff23c756f1fb0ba9ab88c2aed92c0e7c5521c757f5a0cdd057273538f0010";
-      name = "kde-gtk-config-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kde-gtk-config-5.18.5.tar.xz";
+      sha256 = "9d7b1fd8b61f9f99c5a5721ea0227c4562588834a4886d66637f4c092f0e53ab";
+      name = "kde-gtk-config-5.18.5.tar.xz";
     };
   };
   kdeplasma-addons = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kdeplasma-addons-5.17.5.tar.xz";
-      sha256 = "997d6a3542ab1f1fd7fb17580693dc8281ff29b03c82577dbae3fc1ec4cccdb8";
-      name = "kdeplasma-addons-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kdeplasma-addons-5.18.5.tar.xz";
+      sha256 = "1d135a32a7442f79dba4cb4e23221cd2ad1aad36b54fb12bfa91918daf3ff53f";
+      name = "kdeplasma-addons-5.18.5.tar.xz";
     };
   };
   kgamma5 = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kgamma5-5.17.5.tar.xz";
-      sha256 = "3b8fd1539d035d4d39dcde6ca0dd214e6653c98778ac79b9cbf2f7009b155ca9";
-      name = "kgamma5-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kgamma5-5.18.5.tar.xz";
+      sha256 = "3aa89e361646214fb4910409644b941c83a85505d3d8a1d37984598d3e54269f";
+      name = "kgamma5-5.18.5.tar.xz";
     };
   };
   khotkeys = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/khotkeys-5.17.5.tar.xz";
-      sha256 = "cf78b5bfb8568fb4eea592b209bdb79aeac92bd08a580c3b6c08d45dd34a2d56";
-      name = "khotkeys-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/khotkeys-5.18.5.tar.xz";
+      sha256 = "8f02fdf3bbecdc31c305c276fe2b3b2eca6dc10195e65c723ee9148fed81e766";
+      name = "khotkeys-5.18.5.tar.xz";
     };
   };
   kinfocenter = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kinfocenter-5.17.5.tar.xz";
-      sha256 = "679870f10ee6494136d87a897a57a23c2905054d7a83ff11a4e85c204eb9fd9a";
-      name = "kinfocenter-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kinfocenter-5.18.5.tar.xz";
+      sha256 = "a9679bce4cd2d64e6f471c89de6da410237263b02512768f3acd0a4932b12ec5";
+      name = "kinfocenter-5.18.5.tar.xz";
     };
   };
   kmenuedit = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kmenuedit-5.17.5.tar.xz";
-      sha256 = "59beed03298cd9fd6b05d67844794ed6a77be0d1b25b55d5bbcdf72e15e357de";
-      name = "kmenuedit-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kmenuedit-5.18.5.tar.xz";
+      sha256 = "59d998972121662d2835d43ff5be36eca7bf62e66e39fd67b7005e8ef8afd5f6";
+      name = "kmenuedit-5.18.5.tar.xz";
     };
   };
   kscreen = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kscreen-5.17.5.tar.xz";
-      sha256 = "de8a00b33d0254245a53a5c097347aa86709d415754b3e3c675eef8fb4fe5bc0";
-      name = "kscreen-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kscreen-5.18.5.tar.xz";
+      sha256 = "9b6238447a4a38babdff482724ae3d33786b211e8b4224aaadafaad7435f6ba2";
+      name = "kscreen-5.18.5.tar.xz";
     };
   };
   kscreenlocker = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kscreenlocker-5.17.5.tar.xz";
-      sha256 = "078cfaa9f117a985f5c71152bdf4a9f5cb65ef23c0090cfaaccc9539770f138f";
-      name = "kscreenlocker-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kscreenlocker-5.18.5.tar.xz";
+      sha256 = "b4269cd027e1fee721760a22ca5d738d3d98622fa222fcf9e57d2da77a4e18d2";
+      name = "kscreenlocker-5.18.5.tar.xz";
     };
   };
   ksshaskpass = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/ksshaskpass-5.17.5.tar.xz";
-      sha256 = "b09e0d780340fc5a6a65e67a30d08a3f117f31e2dbfbb35579aa4cefb15c3b27";
-      name = "ksshaskpass-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/ksshaskpass-5.18.5.tar.xz";
+      sha256 = "c483c17d6ce2e3dffd54fc812f97b88c32f5def6e8c5e7a526e23f5e7f208cc5";
+      name = "ksshaskpass-5.18.5.tar.xz";
     };
   };
   ksysguard = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/ksysguard-5.17.5.tar.xz";
-      sha256 = "69bc12311dcf363b168a259139d30456ed395ec03b948bd35e992300c7e7bd82";
-      name = "ksysguard-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/ksysguard-5.18.5.tar.xz";
+      sha256 = "4acb352698b612a21a5eccf22042ab46265d50bbf3aa85844bbca762a64c9e2f";
+      name = "ksysguard-5.18.5.tar.xz";
     };
   };
   kwallet-pam = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kwallet-pam-5.17.5.tar.xz";
-      sha256 = "c829c7a44408e58beb87c71f5c70bccd349d285c3fcefb16df98bf2f29357fe9";
-      name = "kwallet-pam-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kwallet-pam-5.18.5.tar.xz";
+      sha256 = "bc4fe3dde503645d6233c3932d3cf74a7f5bf7acefb96bd6dbd224c8919d841a";
+      name = "kwallet-pam-5.18.5.tar.xz";
     };
   };
   kwayland-integration = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kwayland-integration-5.17.5.tar.xz";
-      sha256 = "818b4e14611e26f297ef60427d399edc458a44e113bc092390fa65ecababcedb";
-      name = "kwayland-integration-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kwayland-integration-5.18.5.tar.xz";
+      sha256 = "82d6943d79a9a2a9bce10623adb2c9af396a2dcf258a723bb349aafbde20e6d5";
+      name = "kwayland-integration-5.18.5.tar.xz";
     };
   };
   kwin = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kwin-5.17.5.tar.xz";
-      sha256 = "8517adaf8270d783aea7b3886d86b5abed6a5ec2b5c78b632479597d956baadc";
-      name = "kwin-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kwin-5.18.5.tar.xz";
+      sha256 = "ca39c63fd740432e95490031fd9d5ac003da034582014fa41c2be2b89627ddf8";
+      name = "kwin-5.18.5.tar.xz";
     };
   };
   kwrited = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kwrited-5.17.5.tar.xz";
-      sha256 = "ca22b1fa3e657fa2e58bf0c9dc1ebff3be8c0e003750223e7a7c5932d5b90823";
-      name = "kwrited-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kwrited-5.18.5.tar.xz";
+      sha256 = "45ffa31d3d141ce453fb09fd823d7edd8e6c782b353bce22b8c879ad794fd1fe";
+      name = "kwrited-5.18.5.tar.xz";
     };
   };
   libkscreen = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/libkscreen-5.17.5.tar.xz";
-      sha256 = "aa186e5751287701daec4d036aba776a911e4b84ca7eea44dc5fb531875afd94";
-      name = "libkscreen-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/libkscreen-5.18.5.tar.xz";
+      sha256 = "a962319000324200ec1abe3c58b1b8ab71ed4cc7c88a3c7e03a1c8eca86c287c";
+      name = "libkscreen-5.18.5.tar.xz";
     };
   };
   libksysguard = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/libksysguard-5.17.5.tar.xz";
-      sha256 = "f5d237af554d65740a28360e6d8fa39d4912239c5f21288846b1c934897a7e14";
-      name = "libksysguard-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/libksysguard-5.18.5.tar.xz";
+      sha256 = "d4d7030a2869a546a211844aa158dcef3598386cc035a8655529938ba102440b";
+      name = "libksysguard-5.18.5.tar.xz";
     };
   };
   milou = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/milou-5.17.5.tar.xz";
-      sha256 = "b89796e34cc8b6d6d4196169e814249f7b75c1c15763e0b4c1da5c97ccc2c8cf";
-      name = "milou-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/milou-5.18.5.tar.xz";
+      sha256 = "7ec763833c025aa719d1e25f3c5c1c8b6c934a48bf346517e94660e09d8582b2";
+      name = "milou-5.18.5.tar.xz";
     };
   };
   oxygen = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/oxygen-5.17.5.tar.xz";
-      sha256 = "58954374a4b9067365ee5d50b32b1986b2e7dd31e73cbf79fda8d978949943be";
-      name = "oxygen-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/oxygen-5.18.5.tar.xz";
+      sha256 = "479bdfa80b3f2216075470ab4be1e3159a17620870acf276144b9639134609f8";
+      name = "oxygen-5.18.5.tar.xz";
     };
   };
   plasma-browser-integration = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-browser-integration-5.17.5.tar.xz";
-      sha256 = "07bc4285991ab43830873a12b8c07f60e4faea1ec81121db783c425f18a4f87d";
-      name = "plasma-browser-integration-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-browser-integration-5.18.5.tar.xz";
+      sha256 = "3a087a836657b5304e2e0ef9ebefb84ce1f896bfbfc5dbf948d4b3eb7b709383";
+      name = "plasma-browser-integration-5.18.5.tar.xz";
     };
   };
   plasma-desktop = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-desktop-5.17.5.tar.xz";
-      sha256 = "7f741ab026989bdcc68701955fc290d5ead38bf4bc310f18a2f32c64b411ab04";
-      name = "plasma-desktop-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-desktop-5.18.5.tar.xz";
+      sha256 = "aeb106018fd90da79c8a3c444d880282846a842029b1223e7830db2d4b42df9f";
+      name = "plasma-desktop-5.18.5.tar.xz";
     };
   };
   plasma-integration = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-integration-5.17.5.tar.xz";
-      sha256 = "169206bebd790d2fee49cec621c46f6f64a8e20ee3e56bf16ee7373f61cad959";
-      name = "plasma-integration-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-integration-5.18.5.tar.xz";
+      sha256 = "c99b987efb2ab965cc2a55793ef94c7ccb2152ca5d75956a40ec99261ad4b870";
+      name = "plasma-integration-5.18.5.tar.xz";
+    };
+  };
+  plasma-nano = {
+    version = "5.18.5";
+    src = fetchurl {
+      url = "${mirror}/stable/plasma/5.18.5/plasma-nano-5.18.5.tar.xz";
+      sha256 = "d2f29b05894573517cb3336088e102d3604b1c2735e9bbe605119f559f0c6341";
+      name = "plasma-nano-5.18.5.tar.xz";
     };
   };
   plasma-nm = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-nm-5.17.5.tar.xz";
-      sha256 = "2165e47a0654d17735abc97aec287b46b52a2eafccc3591b667ea2755b731255";
-      name = "plasma-nm-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-nm-5.18.5.tar.xz";
+      sha256 = "1e091d01993708220f89501bb8a289279bf527d0593fd9e4b9223e6e8caf9aaa";
+      name = "plasma-nm-5.18.5.tar.xz";
     };
   };
   plasma-pa = {
-    version = "5.17.5";
+    version = "5.18.5";
+    src = fetchurl {
+      url = "${mirror}/stable/plasma/5.18.5/plasma-pa-5.18.5.tar.xz";
+      sha256 = "28765c07f584e7688a85c9761155e606440936de2ebb678917dac2c85f5d0209";
+      name = "plasma-pa-5.18.5.tar.xz";
+    };
+  };
+  plasma-phone-components = {
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-pa-5.17.5.tar.xz";
-      sha256 = "933c6ab1fda52b336a157a48b1ea64b81fd1d84ca08a40a52bfae276cca2bf23";
-      name = "plasma-pa-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-phone-components-5.18.5.tar.xz";
+      sha256 = "d0c091367ae07c71457a0c03d1023ac48d8665385a6a1b0e32f6ae7ad1fa7070";
+      name = "plasma-phone-components-5.18.5.tar.xz";
     };
   };
   plasma-sdk = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-sdk-5.17.5.tar.xz";
-      sha256 = "ff736029b1ae5773991db06f5827d9dcbd8e7a4e9a430c9014c35ddee2c55314";
-      name = "plasma-sdk-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-sdk-5.18.5.tar.xz";
+      sha256 = "5f399231d16d62f9880f953891477f74e0b1f7b931448a4b0fbb97f37acd2fe5";
+      name = "plasma-sdk-5.18.5.tar.xz";
     };
   };
   plasma-tests = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-tests-5.17.5.tar.xz";
-      sha256 = "1b566b7118a5c8d1b25078d331a6bc77f48781010fbd3425d85b137811218982";
-      name = "plasma-tests-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-tests-5.18.5.tar.xz";
+      sha256 = "3251ea30cb3c62de9bba2deb152370ea9e0e56b7506efd655888f1892c18413a";
+      name = "plasma-tests-5.18.5.tar.xz";
     };
   };
   plasma-thunderbolt = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-thunderbolt-5.17.5.tar.xz";
-      sha256 = "3743f9841d269d51f1b1419e24d5cd1b26a0ba5a90e76b531328a8cc43184382";
-      name = "plasma-thunderbolt-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-thunderbolt-5.18.5.tar.xz";
+      sha256 = "c61dc7abe350ead15ca4d6111606aaf19773c38a0307ae8a7d8a7c60b82be5d1";
+      name = "plasma-thunderbolt-5.18.5.tar.xz";
     };
   };
   plasma-vault = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-vault-5.17.5.tar.xz";
-      sha256 = "3e5c6b4dd6c1122b6a221205da506881959ab905e467b74b0536e7f5fe130d71";
-      name = "plasma-vault-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-vault-5.18.5.tar.xz";
+      sha256 = "cae2713823e8c59c7a2beb96d362a15024fe260cf10419ba037e8a798f3c1b41";
+      name = "plasma-vault-5.18.5.tar.xz";
     };
   };
   plasma-workspace = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-workspace-5.17.5.tar.xz";
-      sha256 = "764488e66d52bc3017efb2c1471f57196aa50fbfa3a80637bf48f24955cfba88";
-      name = "plasma-workspace-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-workspace-5.18.5.tar.xz";
+      sha256 = "14e82033be745f4db46a70d319e2c86012295ea31056092bc974004189b92354";
+      name = "plasma-workspace-5.18.5.tar.xz";
     };
   };
   plasma-workspace-wallpapers = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-workspace-wallpapers-5.17.5.tar.xz";
-      sha256 = "8a28ef67b65c340d40ff8f5bfc333ead68e6d8c9e410769c43af847ced9b4ca9";
-      name = "plasma-workspace-wallpapers-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-workspace-wallpapers-5.18.5.tar.xz";
+      sha256 = "f8da3bd7b97a9944639ed0860303b8a7a008905246313e1983367810a3a84d6d";
+      name = "plasma-workspace-wallpapers-5.18.5.tar.xz";
     };
   };
   plymouth-kcm = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plymouth-kcm-5.17.5.tar.xz";
-      sha256 = "bbd6994f60ed9d63b4e4dd0abe78bf1f9c14b8ecce8ba4355d16cd52a0a86528";
-      name = "plymouth-kcm-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plymouth-kcm-5.18.5.tar.xz";
+      sha256 = "e8f75dd8c8a45cd706a0a6e62826d1eb4fff9c3912cbaadba8c06e9de915d2e3";
+      name = "plymouth-kcm-5.18.5.tar.xz";
     };
   };
   polkit-kde-agent = {
-    version = "1-5.17.5";
+    version = "1-5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/polkit-kde-agent-1-5.17.5.tar.xz";
-      sha256 = "a79d76a2f584f6567639228fde6f75b3960484f7a65cfc69b6acb6df1de53f5d";
-      name = "polkit-kde-agent-1-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/polkit-kde-agent-1-5.18.5.tar.xz";
+      sha256 = "5e1733cb51c826c6215da4fbbc9c9568240275cf86b9922cd7a643d192a75a91";
+      name = "polkit-kde-agent-1-5.18.5.tar.xz";
     };
   };
   powerdevil = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/powerdevil-5.17.5.tar.xz";
-      sha256 = "27904361e85e1267d933d8f0a0d3be4dc712099ed2eb3cf90959209a4443dd82";
-      name = "powerdevil-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/powerdevil-5.18.5.tar.xz";
+      sha256 = "e000185ee61bff81fe28896a7d6353746c82c7f4d2626792fd22d34b5f49f548";
+      name = "powerdevil-5.18.5.tar.xz";
     };
   };
   sddm-kcm = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/sddm-kcm-5.17.5.tar.xz";
-      sha256 = "e85fb9e014439e8c0e73638112139561aff9a9f71f26c3eafedff5a98a07b33b";
-      name = "sddm-kcm-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/sddm-kcm-5.18.5.tar.xz";
+      sha256 = "cc99c185d701acc7442f33ef17b2396894dcf164f3f583c25105ac3f2528c33b";
+      name = "sddm-kcm-5.18.5.tar.xz";
     };
   };
   systemsettings = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/systemsettings-5.17.5.tar.xz";
-      sha256 = "50fa4d7866639995a6859446fc6a02a73ae05203e8f2ed31221e232ed3491eaf";
-      name = "systemsettings-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/systemsettings-5.18.5.tar.xz";
+      sha256 = "cde5b714261aaa54f937887657c3d3e74814c5447448b989159ee6035be4783b";
+      name = "systemsettings-5.18.5.tar.xz";
     };
   };
   user-manager = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/user-manager-5.17.5.tar.xz";
-      sha256 = "10ed3196063c7dfed3b3f25dd199a48ca39fa86db5d0126ec84a543b1c212f0d";
-      name = "user-manager-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/user-manager-5.18.5.tar.xz";
+      sha256 = "741d293947fa3fb3966f047bab121597bf1071be010684daff4a91626cf54484";
+      name = "user-manager-5.18.5.tar.xz";
     };
   };
   xdg-desktop-portal-kde = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/xdg-desktop-portal-kde-5.17.5.tar.xz";
-      sha256 = "a993bd4b86a44c8237a3f4957c2594aa2ca8916204ad866f8af32f7df34740f6";
-      name = "xdg-desktop-portal-kde-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/xdg-desktop-portal-kde-5.18.5.tar.xz";
+      sha256 = "807452708a0318b8e21b43f9ec7e016d1de51cac5d8714d70c577bb6f3976224";
+      name = "xdg-desktop-portal-kde-5.18.5.tar.xz";
     };
   };
 }
diff --git a/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix b/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix
index 1e04eb1e2b004..c03c6a891614b 100644
--- a/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix
+++ b/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix
@@ -1,15 +1,18 @@
 {
   mkDerivation,
   extra-cmake-modules, gettext, kdoctools, python,
+  cups, epoxy, mesa, pcre, pipewire,
   kcoreaddons, knotifications, kwayland, kwidgetsaddons, kwindowsystem,
-  cups, pcre, pipewire, kio
+  kirigami2, kdeclarative, plasma-framework, kio
 }:
 
 mkDerivation {
   name = "xdg-desktop-portal-kde";
   nativeBuildInputs = [ extra-cmake-modules gettext kdoctools python ];
   buildInputs = [
-    cups pcre pipewire kio
-    kcoreaddons knotifications kwayland kwidgetsaddons kwindowsystem
+    cups epoxy mesa pcre pipewire
+
+    kio kcoreaddons knotifications kwayland kwidgetsaddons kwindowsystem
+    kirigami2 kdeclarative plasma-framework
   ];
 }
diff --git a/pkgs/development/compilers/fpc/binary.nix b/pkgs/development/compilers/fpc/binary.nix
index f160150d8b53e..c7e3ec30b49f1 100644
--- a/pkgs/development/compilers/fpc/binary.nix
+++ b/pkgs/development/compilers/fpc/binary.nix
@@ -1,18 +1,24 @@
 { stdenv, fetchurl }:
 
-stdenv.mkDerivation {
-  name = "fpc-3.0.0-binary";
+stdenv.mkDerivation rec {
+  pname = "fpc-binary";
+  version = "3.2.0";
 
   src =
     if stdenv.hostPlatform.system == "i686-linux" then
       fetchurl {
-        url = "mirror://sourceforge/project/freepascal/Linux/3.0.0/fpc-3.0.0.i386-linux.tar";
-        sha256 = "0h3f1dgs1zsx7vvk9kg67anjvgw5sslfbmjblif7ishbcp3k3g5k";
+        url = "mirror://sourceforge/project/freepascal/Linux/${version}/fpc-${version}.i386-linux.tar";
+        sha256 = "0y0510b2fbxbqz28967xx8b023k6q9fv5yclfrc1yc9mg8fyn411";
       }
     else if stdenv.hostPlatform.system == "x86_64-linux" then
       fetchurl {
-        url = "mirror://sourceforge/project/freepascal/Linux/3.0.0/fpc-3.0.0.x86_64-linux.tar";
-        sha256 = "1m2xx3nda45cb3zidbjgdr8kddd19zk0khvp7xxdlclszkqscln9";
+        url = "mirror://sourceforge/project/freepascal/Linux/${version}/fpc-${version}-x86_64-linux.tar";
+        sha256 = "0gfbwjvjqlx0562ayyl08khagslrws758al2yhbi4bz5rzk554ni";
+      }
+    else if stdenv.hostPlatform.system == "aarch64-linux" then
+      fetchurl {
+        url = "mirror://sourceforge/project/freepascal/Linux/${version}/fpc-${version}.aarch64-linux.tar";
+        sha256 = "1h481ngg3m8nlsg9mw7rr1bn2c4sj4wzqny9bxyq3xvcral12r71";
       }
     else throw "Not supported on ${stdenv.hostPlatform.system}.";
 
@@ -21,4 +27,4 @@ stdenv.mkDerivation {
   meta = {
     description = "Free Pascal Compiler from a binary distribution";
   };
-} 
+}
diff --git a/pkgs/development/compilers/fpc/default.nix b/pkgs/development/compilers/fpc/default.nix
index 42804677dc083..6e7ffefca21ff 100644
--- a/pkgs/development/compilers/fpc/default.nix
+++ b/pkgs/development/compilers/fpc/default.nix
@@ -3,23 +3,26 @@
 let startFPC = import ./binary.nix { inherit stdenv fetchurl; }; in
 
 stdenv.mkDerivation rec {
-  version = "3.0.4";
+  version = "3.2.0";
   pname = "fpc";
 
   src = fetchurl {
     url = "mirror://sourceforge/freepascal/fpcbuild-${version}.tar.gz";
-    sha256 = "0xjyhlhz846jbnp12y68c7nq4xmp4i65akfbrjyf3r62ybk18rgn";
+    sha256 = "0f38glyn3ffmqww432snhx2b8wyrq0yj1njkp4zh56lqrvm19fgr";
   };
 
   buildInputs = [ startFPC gawk ];
   glibc = stdenv.cc.libc.out;
 
-  preConfigure =
-    if stdenv.hostPlatform.system == "i686-linux" || stdenv.hostPlatform.system == "x86_64-linux" then ''
-      sed -e "s@'/lib/ld-linux[^']*'@'''@" -i fpcsrc/compiler/systems/t_linux.pas
-      sed -e "s@'/lib64/ld-linux[^']*'@'''@" -i fpcsrc/compiler/systems/t_linux.pas
-      sed -e "s@/lib64[^']*@${glibc}/lib@" -i fpcsrc/compiler/systems/t_linux.pas
-    '' else "";
+  # Patch paths for linux systems. Other platforms will need their own patches.
+  patches = [
+    ./mark-paths.patch # mark paths for later substitution in postPatch
+  ];
+  postPatch = ''
+    # substitute the markers set by the mark-paths patch
+    substituteInPlace fpcsrc/compiler/systems/t_linux.pas --subst-var-by dynlinker-prefix "${glibc}"
+    substituteInPlace fpcsrc/compiler/systems/t_linux.pas --subst-var-by syslibpath "${glibc}/lib"
+  '';
 
   makeFlags = [ "NOGDB=1" "FPC=${startFPC}/bin/fpc" ];
 
diff --git a/pkgs/development/compilers/fpc/mark-paths.patch b/pkgs/development/compilers/fpc/mark-paths.patch
new file mode 100644
index 0000000000000..707c5352de7fd
--- /dev/null
+++ b/pkgs/development/compilers/fpc/mark-paths.patch
@@ -0,0 +1,109 @@
+diff --git a/fpcsrc/compiler/systems/t_linux.pas b/fpcsrc/compiler/systems/t_linux.pas
+index a7398fb9..8e46fec0 100644
+--- a/fpcsrc/compiler/systems/t_linux.pas
++++ b/fpcsrc/compiler/systems/t_linux.pas
+@@ -135,13 +135,13 @@ begin
+       LibrarySearchPath.AddLibraryPath(sysrootpath,'=/usr/lib64',true);
+       { /lib64 should be the really first, so add it before everything else }
+       LibrarySearchPath.AddLibraryPath(sysrootpath,'=/lib',true);
+-      LibrarySearchPath.AddLibraryPath(sysrootpath,'=/lib64',true);
++      LibrarySearchPath.AddLibraryPath(sysrootpath,'=@syslibpath@',true);
+ {$else}
+ {$ifdef powerpc64}
+       if target_info.abi<>abi_powerpc_elfv2 then
+-        LibrarySearchPath.AddLibraryPath(sysrootpath,'=/lib64;=/usr/lib64;=/usr/X11R6/lib64',true)
++        LibrarySearchPath.AddLibraryPath(sysrootpath,'=/@syslibpath@;=/usr/lib64;=/usr/X11R6/lib64',true)
+       else
+-        LibrarySearchPath.AddLibraryPath(sysrootpath,'=/lib64;=/usr/lib/powerpc64le-linux-gnu;=/usr/X11R6/powerpc64le-linux-gnu',true);
++        LibrarySearchPath.AddLibraryPath(sysrootpath,'=/@syslibpath@;=/usr/lib/powerpc64le-linux-gnu;=/usr/X11R6/powerpc64le-linux-gnu',true);
+ {$else powerpc64}
+       LibrarySearchPath.AddLibraryPath(sysrootpath,'=/lib;=/usr/lib;=/usr/X11R6/lib',true);
+ {$endif powerpc64}
+@@ -164,7 +164,7 @@ begin
+       LibrarySearchPath.AddLibraryPath(sysrootpath,'=/usr/lib/i386-linux-gnu',true);
+ {$endif i386}
+ {$ifdef aarch64}
+-      LibrarySearchPath.AddLibraryPath(sysrootpath,'=/usr/lib/aarch64-linux-gnu',true);
++      LibrarySearchPath.AddLibraryPath(sysrootpath,'=@syslibpath@',true);
+ {$endif aarch64}
+ {$ifdef powerpc}
+       LibrarySearchPath.AddLibraryPath(sysrootpath,'=/usr/lib/powerpc-linux-gnu',true);
+@@ -185,53 +185,53 @@ begin
+ end;
+ 
+ {$ifdef m68k}
+-  const defdynlinker='/lib/ld.so.1';
++  const defdynlinker='@dynlinker-prefix@/lib/ld.so.1';
+ {$endif m68k}
+ 
+ {$ifdef i386}
+-  const defdynlinker='/lib/ld-linux.so.2';
++  const defdynlinker='@dynlinker-prefix@/lib/ld-linux.so.2';
+ {$endif}
+ 
+ {$ifdef x86_64}
+-  const defdynlinker='/lib64/ld-linux-x86-64.so.2';
++  const defdynlinker='@dynlinker-prefix@/lib64/ld-linux-x86-64.so.2';
+ {$endif x86_64}
+ 
+ {$ifdef sparc}
+-  const defdynlinker='/lib/ld-linux.so.2';
++  const defdynlinker='@dynlinker-prefix@/lib/ld-linux.so.2';
+ {$endif sparc}
+ 
+ {$ifdef powerpc}
+-  const defdynlinker='/lib/ld.so.1';
++  const defdynlinker='@dynlinker-prefix@/lib/ld.so.1';
+ {$endif powerpc}
+ 
+ {$ifdef powerpc64}
+-  const defdynlinkerv1='/lib64/ld64.so.1';
+-  const defdynlinkerv2='/lib64/ld64.so.2';
++  const defdynlinkerv1='@dynlinker-prefix@/lib64/ld64.so.1';
++  const defdynlinkerv2='@dynlinker-prefix@/lib64/ld64.so.2';
+   var defdynlinker: string;
+ {$endif powerpc64}
+ 
+ {$ifdef arm}
+ {$ifdef FPC_ARMHF}
+-  const defdynlinker='/lib/ld-linux-armhf.so.3';
++  const defdynlinker='@dynlinker-prefix@/lib/ld-linux-armhf.so.3';
+ {$else FPC_ARMHF}
+ {$ifdef FPC_ARMEL}
+-  const defdynlinker='/lib/ld-linux.so.3';
++  const defdynlinker='@dynlinker-prefix@/lib/ld-linux.so.3';
+ {$else FPC_ARMEL}
+-  const defdynlinker='/lib/ld-linux.so.2';
++  const defdynlinker='@dynlinker-prefix@/lib/ld-linux.so.2';
+ {$endif FPC_ARMEL}
+ {$endif FPC_ARMHF}
+ {$endif arm}
+ 
+ {$ifdef aarch64}
+-const defdynlinker='/lib/ld-linux-aarch64.so.1';
++const defdynlinker='@dynlinker-prefix@/lib/ld-linux-aarch64.so.1';
+ {$endif aarch64}
+ 
+ {$ifdef mips}
+-  const defdynlinker='/lib/ld.so.1';
++  const defdynlinker='@dynlinker-prefix@/lib/ld.so.1';
+ {$endif mips}
+ 
+ {$ifdef sparc64}
+-  const defdynlinker='/lib64/ld-linux.so.2';
++  const defdynlinker='@dynlinker-prefix@/lib64/ld-linux.so.2';
+ {$endif sparc64}
+ 
+ 
+@@ -266,9 +266,9 @@ begin
+       libctype:=uclibc;
+     end
+ {$ifdef i386}
+-  else if FileExists(sysrootpath+'/lib/ld-linux.so.1',false) then
++  else if FileExists(sysrootpath+'@dynlinker-prefix@/lib/ld-linux.so.1',false) then
+     begin
+-      DynamicLinker:='/lib/ld-linux.so.1';
++      DynamicLinker:='@dynlinker-prefix@/lib/ld-linux.so.1';
+       libctype:=glibc2;
+     end
+ {$endif i386}
diff --git a/pkgs/development/compilers/gleam/default.nix b/pkgs/development/compilers/gleam/default.nix
index e7d9287e0d50e..a40065fe579c9 100644
--- a/pkgs/development/compilers/gleam/default.nix
+++ b/pkgs/development/compilers/gleam/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gleam";
-  version = "0.10.1";
+  version = "0.11.2";
 
   src = fetchFromGitHub {
     owner = "gleam-lang";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0cgs0halxhp2hh3sf0nvy5ybllhraxircxxbfj9jbs3446dzflbk";
+    sha256 = "1g8yfp1xpkv1lqz8azam40cvrs5cggxlyrb72h8k88br75qmi6hj";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ openssl ] ++
     stdenv.lib.optionals stdenv.isDarwin [ Security ];
 
-  cargoSha256 = "12lpxighjk3ydfa288llj6xqas7z9fbfjpwnl870189awvp2fjxx";
+  cargoSha256 = "1gfr6c4i5kx8x3q23s4b4n25z2k6xkxpk12acr4ry97pyj2lr5wq";
 
   meta = with stdenv.lib; {
     description = "A statically typed language for the Erlang VM";
diff --git a/pkgs/development/compilers/go/1.14.nix b/pkgs/development/compilers/go/1.14.nix
index 0bf972ff80f25..4cd281872307f 100644
--- a/pkgs/development/compilers/go/1.14.nix
+++ b/pkgs/development/compilers/go/1.14.nix
@@ -31,11 +31,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "go";
-  version = "1.14.7";
+  version = "1.14.8";
 
   src = fetchurl {
     url = "https://dl.google.com/go/go${version}.src.tar.gz";
-    sha256 = "1qrhdjdzi1knchk1wmlaqgkqhxkq2niw14b931rhqrk36m1r4hq6";
+    sha256 = "0sp3ss9mqcysc3h7ynwxhdjq4g0id9y6liakwy2cy27mapxi79nr";
   };
 
   # perl is used for testing go vet
diff --git a/pkgs/development/compilers/go/1.15.nix b/pkgs/development/compilers/go/1.15.nix
index b3851741c69cd..adc3185babbe0 100644
--- a/pkgs/development/compilers/go/1.15.nix
+++ b/pkgs/development/compilers/go/1.15.nix
@@ -31,11 +31,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "go";
-  version = "1.15";
+  version = "1.15.1";
 
   src = fetchurl {
     url = "https://dl.google.com/go/go${version}.src.tar.gz";
-    sha256 = "0fmc53pamxxbvmp5bcvh1fhffirpv3gz6y7qz97iacpmsiz8yhv9";
+    sha256 = "0c2d2ngckcfsgrb7a4p6ag83mk5yd15npiq7q1f1p211li93fx6k";
   };
 
   # perl is used for testing go vet
diff --git a/pkgs/development/compilers/ocaml/4.11.nix b/pkgs/development/compilers/ocaml/4.11.nix
index 13cae5ae539c0..afda8592818f6 100644
--- a/pkgs/development/compilers/ocaml/4.11.nix
+++ b/pkgs/development/compilers/ocaml/4.11.nix
@@ -1,6 +1,6 @@
 import ./generic.nix {
   major_version = "4";
   minor_version = "11";
-  patch_version = "0";
-  sha256 = "04b13yfismkqh21ag641q9dl0i602khgh4427g1a7pb77c4skr7z";
+  patch_version = "1";
+  sha256 = "0k4521c0p10c5ams6vjv5qkkjhmpkb0bfn04llcz46ah0f3r2jpa";
 }
diff --git a/pkgs/development/coq-modules/dpdgraph/default.nix b/pkgs/development/coq-modules/dpdgraph/default.nix
index 689745003df26..54654f37bac8c 100644
--- a/pkgs/development/coq-modules/dpdgraph/default.nix
+++ b/pkgs/development/coq-modules/dpdgraph/default.nix
@@ -1,6 +1,10 @@
 { stdenv, fetchFromGitHub, autoreconfHook, coq }:
 
 let params = {
+  "8.12" = {
+    version = "0.6.8";
+    sha256 = "1mj6sknsd53xfb387sp3kdwvl4wn80ck24bfzf3s6mgw1a12vyps";
+  };
   "8.11" = {
     version = "0.6.7";
     sha256 = "01vpi7scvkl4ls1z2k2x9zd65wflzb667idj759859hlz3ps9z09";
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index 676af26adaba9..0a61c0accb4ac 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -212,7 +212,7 @@ self: super: {
     # https://github.com/haskell-nix/hnix/issues/676
     # Once neat-interpolation >= 0.4 is in our stack release,
     # (which should happen soon), we can remove this override
-    neat-interpolation = self.neat-interpolation_0_5_1_1;
+    neat-interpolation = self.neat-interpolation_0_5_1_2;
   });
 
   # Fails for non-obvious reasons while attempting to use doctest.
@@ -1017,11 +1017,6 @@ self: super: {
     })];
   });
 
-  # 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;
 
@@ -1214,7 +1209,15 @@ self: super: {
 
   # this will probably need to get updated with every ghcide update,
   # we need an override because ghcide is tracking haskell-lsp closely.
-  ghcide = dontCheck (super.ghcide.override { ghc-check = self.ghc-check_0_3_0_1; });
+  ghcide = dontCheck (appendPatch (super.ghcide.override {
+    hie-bios = dontCheck super.hie-bios_0_7_1;
+    lsp-test = dontCheck self.lsp-test_0_11_0_4;
+  }) (pkgs.fetchpatch {
+    # This patch loosens the hie-bios upper bound.
+    # It is already merged into upstream and won‘t be needed for ghcide 0.4.0
+    url = "https://github.com/haskell/ghcide/commit/3e1b3620948870a4da8808ca0c0897fbd3ecad16.patch";
+    sha256 = "1jwn7jgi740x6wwv1k0mz9d4z0b9p3mzs54pdg4nfq0h2v7zxchz";
+  }));
 
   # hasn‘t bumped upper bounds
   # upstream: https://github.com/obsidiansystems/which/pull/6
@@ -1236,13 +1239,6 @@ self: super: {
   x509-validation = dontCheck super.x509-validation;
   tls = dontCheck super.tls;
 
-  # Upstream PR: https://github.com/bgamari/monoidal-containers/pull/62
-  # Bump these version bound
-  monoidal-containers = appendPatch super.monoidal-containers (pkgs.fetchpatch {
-    url = "https://github.com/bgamari/monoidal-containers/commit/715093b22a015398a1390f636be6f39a0de83254.patch";
-    sha256="1lfxvwp8g55ljxvj50acsb0wjhrvp2hvir8y0j5pfjkd1kq628ng";
-  });
-
   patch = appendPatches super.patch [
     # Upstream PR: https://github.com/reflex-frp/patch/pull/20
     # Makes tests work with hlint 3
@@ -1385,43 +1381,51 @@ self: super: {
   # https://github.com/jgm/commonmark-hs/issues/55
   commonmark-extensions = dontCheck super.commonmark-extensions;
 
-  # The overrides in the following lines all have the following causes:
-  # * neuron needs commonmark-pandoc
-  # * which needs a newer pandoc-types (>= 1.21)
-  # * which means we need a newer pandoc (>= 2.10)
-  # * which needs a newer hslua (1.1.2) and a newer jira-wiki-markup (1.3.2)
-  # Then we need to apply those overrides to all transitive dependencies
-  # All of this will be obsolete, when pandoc 2.10 hits stack lts.
-  commonmark-pandoc = super.commonmark-pandoc.override {
-    pandoc-types = self.pandoc-types_1_21;
-  };
-  reflex-dom-pandoc = super.reflex-dom-pandoc.override {
-    pandoc-types = self.pandoc-types_1_21;
-  };
-  pandoc_2_10_1 = super.pandoc_2_10_1.overrideScope (self: super: {
-    pandoc-types = self.pandoc-types_1_21;
-    hslua = self.hslua_1_1_2;
-    jira-wiki-markup = self.jira-wiki-markup_1_3_2;
-  });
-
   # 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 {
+  neuron = appendPatch super.neuron (pkgs.fetchpatch {
     url= "https://github.com/srid/neuron/commit/9ddcb7e9d63b8266d1372ef7c14c13b6b5277990.patch";
     sha256 = "01f9v3jnl05fnpd624wv3a0j5prcbnf62ysa16fbc0vabw19zv1b";
     excludes = [ "commonmark-hs/github.json" ];
     stripLen = 2;
     extraPrefix = "";
-  }))
-    # See comment about overrides above commonmark-pandoc
-    .overrideScope (self: super: {
-    pandoc = self.pandoc_2_10_1;
-    pandoc-types = self.pandoc-types_1_21;
   });
 
   # Testsuite trying to run `which haskeline-examples-Test`
   haskeline_0_8_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 {
@@ -1457,15 +1461,25 @@ self: super: {
   # resolving https://github.com/NixOS/nixpkgs/issues/81915.
   cryptonite = self.cryptonite_0_27;
 
+  # We want the latest version of Pandoc.
+  hslua = self.hslua_1_1_2;
+  jira-wiki-markup = self.jira-wiki-markup_1_3_2;
+  pandoc = self.pandoc_2_10_1;
+  pandoc-citeproc = self.pandoc-citeproc_0_17_0_2;
+  pandoc-plot = self.pandoc-plot_0_9_2_0;
+  pandoc-types = self.pandoc-types_1_21;
+  rfc5051 = self.rfc5051_0_2;
+
   # INSERT NEW OVERRIDES ABOVE THIS LINE
 
 } // (let
+  inherit (self) hls-ghcide;
   hlsScopeOverride = self: super: {
     # haskell-language-server uses its own fork of ghcide
     # Test disabled: it seems to freeze (is it just that it takes a long time ?)
-    ghcide = dontCheck super.hls-ghcide;
+    ghcide = hls-ghcide;
     # we are faster than stack here
-    hie-bios = dontCheck super.hie-bios_0_7_0;
+    hie-bios = dontCheck super.hie-bios_0_7_1;
     lsp-test = dontCheck super.lsp-test_0_11_0_4;
     # fourmolu can‘t compile with an older aeson
     aeson = dontCheck super.aeson_1_5_2_0;
@@ -1475,7 +1489,13 @@ self: super: {
   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-ghcide = appendPatch (dontCheck (super.hls-ghcide.overrideScope hlsScopeOverride))
+      (pkgs.fetchpatch {
+        # This patch loosens the hie-bios upper bound.
+        # It is already merged into upstream and won‘t be needed for ghcide 0.4.0
+        url = "https://github.com/haskell/ghcide/commit/3e1b3620948870a4da8808ca0c0897fbd3ecad16.patch";
+        sha256 = "1jwn7jgi740x6wwv1k0mz9d4z0b9p3mzs54pdg4nfq0h2v7zxchz";
+      });
     fourmolu = super.fourmolu.overrideScope hlsScopeOverride;
   }
 )  // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
index 5fcff7d9df9d9..35a7d425a5b60 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
@@ -76,6 +76,16 @@ self: super: {
   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
@@ -119,10 +129,4 @@ self: super: {
       executableHaskellDepends = drv.executableToolDepends or [] ++ [ self.repline ];
     }));
 
-  # We want the latest version of Pandoc.
-  pandoc = self.pandoc_2_10_1;
-  pandoc-citeproc = self.pandoc-citeproc_0_17_0_2;
-  pandoc-plot = self.pandoc-plot_0_9_2_0;
-  pandoc-types = self.pandoc-types_1_21;
-
 }
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
index 204b5d5a08cf7..a2562e44527b5 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
@@ -41,6 +41,13 @@ self: super: {
   unix = null;
   xhtml = null;
 
+  # Hasura 1.3.1
+  # Because of ghc-heap-view, profiling needs to be disabled.
+  graphql-engine = overrideCabal (super.graphql-engine) (drv: {
+     # GHC 8.8.x needs a revert of https://github.com/hasura/graphql-engine/commit/a77bb0570f4210fb826985e17a84ddcc4c95d3ea
+     patches = [ ./patches/hasura-884-compat.patch ];
+  });
+
   # GHC 8.8.x can build haddock version 2.23.*
   haddock = self.haddock_2_23_1;
   haddock-api = self.haddock-api_2_23_1;
@@ -107,4 +114,16 @@ self: super: {
   # cabal-fmt requires Cabal3
   cabal-fmt = super.cabal-fmt.override { Cabal = self.Cabal_3_2_0_0; };
 
+  # liquidhaskell does not support ghc version 8.8.x.
+  liquid = markBroken super.liquid;
+  liquid-base = markBroken super.liquid-base;
+  liquid-bytestring = markBroken super.liquid-bytestring;
+  liquid-containers = markBroken super.liquid-containers;
+  liquid-ghc-prim = markBroken super.liquid-ghc-prim;
+  liquid-parallel = markBroken super.liquid-parallel;
+  liquid-platform = markBroken super.liquid-platform;
+  liquid-prelude = markBroken super.liquid-prelude;
+  liquid-vector = markBroken super.liquid-vector;
+  liquidhaskell = markBroken super.liquidhaskell;
+
 }
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
index 82dbdcf933436..c62e3a160e806 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
@@ -72,7 +72,7 @@ default-package-overrides:
   # gi-gdkx11-4.x requires gtk-4.x, which is still under development and
   # not yet available in Nixpkgs
   - gi-gdkx11 < 4
-  # LTS Haskell 16.11
+  # LTS Haskell 16.12
   - abstract-deque ==0.3
   - abstract-par ==0.3.3
   - AC-Angle ==1.0
@@ -512,7 +512,7 @@ default-package-overrides:
   - constraints ==0.12
   - constraint-tuples ==0.1.2
   - contravariant ==1.5.2
-  - contravariant-extras ==0.3.5.1
+  - contravariant-extras ==0.3.5.2
   - control-bool ==0.2.1
   - control-monad-free ==0.6.2
   - control-monad-omega ==0.3.2
@@ -760,7 +760,7 @@ default-package-overrides:
   - extended-reals ==0.2.4.0
   - extensible-effects ==5.0.0.1
   - extensible-exceptions ==0.1.1.4
-  - extra ==1.7.6
+  - extra ==1.7.7
   - extractable-singleton ==0.0.1
   - extrapolate ==0.4.2
   - fail ==4.9.0.0
@@ -931,7 +931,7 @@ default-package-overrides:
   - gi-graphene ==1.0.1
   - gi-gtk ==3.0.33
   - gi-gtk-hs ==0.3.8.1
-  - ginger ==0.10.0.5
+  - ginger ==0.10.1.0
   - gingersnap ==0.3.1.0
   - gi-pango ==1.0.22
   - giphy-api ==0.7.0.0
@@ -1190,7 +1190,7 @@ default-package-overrides:
   - ieee754 ==0.8.0
   - if ==0.1.0.0
   - iff ==0.0.6
-  - ihaskell ==0.10.1.1
+  - ihaskell ==0.10.1.2
   - ihs ==0.1.0.3
   - ilist ==0.4.0.1
   - imagesize-conduit ==1.1
@@ -1242,7 +1242,7 @@ default-package-overrides:
   - iproute ==1.7.9
   - 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
@@ -1369,7 +1369,7 @@ default-package-overrides:
   - logging ==3.0.5
   - logging-facade ==0.3.0
   - logging-facade-syslog ==1
-  - logict ==0.7.0.2
+  - logict ==0.7.0.3
   - loop ==0.3.0
   - loopbreaker ==0.1.1.1
   - lrucache ==1.2.0.1
@@ -1906,7 +1906,7 @@ default-package-overrides:
   - 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
@@ -1996,7 +1996,7 @@ default-package-overrides:
   - sexp-grammar ==2.1.0
   - SHA ==1.6.4.4
   - shake-plus ==0.1.10.0
-  - shakespeare ==2.0.24.1
+  - shakespeare ==2.0.25
   - shared-memory ==0.2.0.0
   - shell-conduit ==4.7.0
   - shell-escape ==0.2.0
@@ -2182,7 +2182,7 @@ default-package-overrides:
   - TCache ==0.12.1
   - tce-conf ==1.3
   - tdigest ==0.2.1
-  - template-haskell-compat-v0208 ==0.1.2.1
+  - template-haskell-compat-v0208 ==0.1.4
   - temporary ==1.3
   - temporary-rc ==1.2.0.3
   - temporary-resourcet ==0.1.0.1
@@ -2463,7 +2463,7 @@ default-package-overrides:
   - writer-cps-transformers ==0.5.6.1
   - wss-client ==0.3.0.0
   - wuss ==1.1.17
-  - X11 ==1.9.1
+  - X11 ==1.9.2
   - X11-xft ==0.3.1
   - x11-xim ==0.0.9.0
   - x509 ==1.7.5
@@ -2563,7 +2563,6 @@ extra-packages:
   - 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
@@ -2575,8 +2574,6 @@ 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
@@ -2617,6 +2614,13 @@ extra-packages:
   - yesod-persistent < 1.5              # pre-lts-11.x versions neeed by git-annex 6.20180227
   - yesod-static ^>= 1.5                # pre-lts-11.x versions neeed by git-annex 6.20180227
   - yesod-test ^>= 1.5                  # pre-lts-11.x versions neeed by git-annex 6.20180227
+  - immortal == 0.2.2.1                 # required by Hasura 1.3.1, 2020-08-20
+  - dependent-map == 0.2.4.0            # required by Hasura 1.3.1, 2020-08-20
+  - dependent-sum == 0.4                # required by Hasura 1.3.1, 2020-08-20
+  - witherable == 0.3.2                 # required by Hasura 1.3.1, 2020-08-20
+  - protolude == 0.3.0                  # required by Hasura 1.3.1, 2020-08-20
+  - optics-core == 0.3.0.1              # required by Hasura 1.3.1, 2020-08-20
+  - base-compat == 0.11.1              # required by Hasura 1.3.1, 2020-08-20
 
 package-maintainers:
   peti:
@@ -3912,6 +3916,7 @@ broken-packages:
   - codemonitor
   - codepad
   - codeworld-api
+  - codex
   - codo-notation
   - coin
   - coinbase-exchange
@@ -4086,6 +4091,7 @@ broken-packages:
   - Control-Monad-ST2
   - contstuff-monads-tf
   - contstuff-transformers
+  - conversions
   - convert
   - convert-annotation
   - convertible-ascii
@@ -4181,6 +4187,7 @@ broken-packages:
   - cryptocipher
   - cryptocompare
   - cryptoconditions
+  - cryptoids
   - cryptol
   - cryptsy-api
   - crystalfontz
@@ -4723,6 +4730,7 @@ broken-packages:
   - enchant
   - encoding
   - encoding-io
+  - encryptable
   - engine-io
   - engine-io-growler
   - engine-io-snap
@@ -4969,6 +4977,7 @@ broken-packages:
   - FileManip
   - FileManipCompat
   - fileneglect
+  - filepath-crypto
   - filepath-io-access
   - FilePather
   - filepather
@@ -5459,10 +5468,12 @@ broken-packages:
   - google-drive
   - google-html5-slide
   - google-mail-filters
+  - google-maps-geocoding
   - google-oauth2
   - google-oauth2-easy
   - google-search
   - google-server-api
+  - google-static-maps
   - google-translate
   - GoogleCodeJam
   - GoogleDirections
@@ -5655,18 +5666,25 @@ broken-packages:
   - hakismet
   - hakka
   - hako
+  - hakyll
   - hakyll-agda
   - hakyll-blaze-templates
   - hakyll-contrib
   - hakyll-contrib-csv
   - hakyll-contrib-elm
+  - hakyll-contrib-hyphenation
   - hakyll-contrib-links
   - hakyll-convert
+  - hakyll-dhall
   - hakyll-dir-list
+  - hakyll-favicon
   - hakyll-filestore
+  - hakyll-images
   - hakyll-ogmarkup
   - hakyll-R
+  - hakyll-sass
   - hakyll-series
+  - hakyll-shakespeare
   - hakyll-shortcode
   - hakyll-shortcut-links
   - hakyll-typescript
@@ -6228,6 +6246,7 @@ broken-packages:
   - HLogger
   - hlogger
   - hlongurl
+  - hlrdb
   - hls
   - hlwm
   - hly
@@ -6740,8 +6759,20 @@ broken-packages:
   - ignore
   - igraph
   - igrf
+  - ihaskell
+  - ihaskell-aeson
   - ihaskell-basic
+  - ihaskell-blaze
+  - ihaskell-charts
+  - ihaskell-diagrams
   - ihaskell-display
+  - ihaskell-gnuplot
+  - ihaskell-graphviz
+  - ihaskell-hatex
+  - ihaskell-hvega
+  - ihaskell-inline-r
+  - ihaskell-juicypixels
+  - ihaskell-magic
   - ihaskell-parsec
   - ihaskell-plot
   - ihaskell-rlangqq
@@ -7214,6 +7245,8 @@ broken-packages:
   - latest-npm-version
   - latex-formulae-hakyll
   - latex-formulae-pandoc
+  - latex-svg-hakyll
+  - latex-svg-pandoc
   - LATS
   - launchdarkly-server-sdk
   - launchpad-control
@@ -7368,7 +7401,6 @@ broken-packages:
   - list-mux
   - list-prompt
   - list-remote-forwards
-  - list-t
   - list-t-attoparsec
   - list-t-html-parser
   - list-t-http-client
@@ -7475,6 +7507,7 @@ broken-packages:
   - lp-diagrams
   - lp-diagrams-svg
   - LRU
+  - lrucaching-haxl
   - ls-usb
   - lscabal
   - LslPlus
@@ -8335,10 +8368,11 @@ broken-packages:
   - pam
   - pan-os-syslog
   - panda
-  - pandoc-crossref
+  - pandoc-csv2table
   - pandoc-emphasize-code
   - pandoc-filter-graphviz
   - pandoc-include
+  - pandoc-include-code
   - pandoc-japanese-filters
   - pandoc-lens
   - pandoc-markdown-ghci-filter
@@ -8348,6 +8382,7 @@ broken-packages:
   - pandoc-pyplot
   - pandoc-sidenote
   - pandoc-unlit
+  - pandoc-utils
   - PandocAgda
   - pang-a-lambda
   - pangraph
@@ -8640,6 +8675,7 @@ broken-packages:
   - polysemy-http
   - polysemy-optics
   - polysemy-RandomFu
+  - polysemy-test
   - polysemy-webserver
   - polysemy-zoo
   - polyseq
@@ -8741,8 +8777,9 @@ broken-packages:
   - prim
   - prim-array
   - prim-ref
+  - primal
+  - primal-memory
   - primes-type
-  - primitive-extras
   - primitive-indexed
   - primitive-maybe
   - primitive-simd
@@ -9042,6 +9079,7 @@ broken-packages:
   - redis-hs
   - redis-io
   - redis-simple
+  - rediscaching-haxl
   - redland
   - Redmine
   - reduce-equations
@@ -9393,6 +9431,7 @@ broken-packages:
   - scotty-fay
   - scotty-format
   - scotty-hastache
+  - scotty-haxl
   - scotty-resource
   - scotty-rest
   - scotty-session
@@ -9673,6 +9712,7 @@ broken-packages:
   - siphon
   - siren-json
   - sirkel
+  - sitepipe
   - sixfiguregroup
   - sized-grid
   - sized-types
@@ -9875,7 +9915,6 @@ broken-packages:
   - Spock-api-ghcjs
   - Spock-api-server
   - Spock-auth
-  - Spock-core
   - Spock-digestive
   - Spock-lucid
   - Spock-worker
@@ -9983,9 +10022,7 @@ broken-packages:
   - STL
   - STLinkUSB
   - stm-chunked-queues
-  - stm-containers
   - stm-firehose
-  - stm-hamt
   - stm-promise
   - stm-stats
   - stm-supply
@@ -10041,6 +10078,8 @@ broken-packages:
   - stripe-haskell
   - stripe-http-client
   - stripe-http-streams
+  - stripe-scotty
+  - stripe-signature
   - stripe-tests
   - strongswan-sql
   - structural-induction
@@ -10076,7 +10115,6 @@ broken-packages:
   - sunroof-server
   - super-user-spark
   - superbubbles
-  - superbuffer
   - supercollider-ht
   - supercollider-midi
   - superconstraints
@@ -10236,6 +10274,7 @@ broken-packages:
   - tellbot
   - tempi
   - template-default
+  - template-haskell-optics
   - template-haskell-util
   - template-hsml
   - template-yj
@@ -10384,6 +10423,7 @@ broken-packages:
   - timeseries
   - timespan
   - timeutils
+  - timezone-detect
   - timezone-olson-th
   - timezone-unix
   - tini
@@ -10734,6 +10774,7 @@ broken-packages:
   - uuagc-diagrams
   - uuid-aeson
   - uuid-bytes
+  - uuid-crypto
   - uvector
   - uvector-algorithms
   - uxadt
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index 36c45377d9785..513ef0fc21cb7 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -8892,8 +8892,8 @@ self: {
      }:
      mkDerivation {
        pname = "HPDF";
-       version = "1.5.0";
-       sha256 = "0bwj0haxw9a061xzn5zh2qc5d958n0g9izbnn0w08dazfjyl8v46";
+       version = "1.5.1";
+       sha256 = "0kqbfzcqapxvkg52mixqjhxb79ziyfsfvazbzrwjvhp9nqhikn6y";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -10781,6 +10781,21 @@ self: {
        license = stdenv.lib.licenses.publicDomain;
      }) {inherit (pkgs) openssl;};
 
+  "HsOpenSSL_0_11_4_19" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, network, openssl, time }:
+     mkDerivation {
+       pname = "HsOpenSSL";
+       version = "0.11.4.19";
+       sha256 = "0iy3qrir13kp1c7a0xwj2ngfwhqxqbc5j0vj5mi0w3arv7w0x6ds";
+       setupHaskellDepends = [ base Cabal ];
+       libraryHaskellDepends = [ base bytestring network time ];
+       librarySystemDepends = [ openssl ];
+       testHaskellDepends = [ base bytestring ];
+       description = "Partial OpenSSL binding for Haskell";
+       license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) openssl;};
+
   "HsOpenSSL-x509-system" = callPackage
     ({ mkDerivation, base, bytestring, HsOpenSSL, unix }:
      mkDerivation {
@@ -12770,8 +12785,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "LiterateMarkdown";
-       version = "0.1.0.0";
-       sha256 = "0v9j7kqjvkrafxl4ahfqj1xvigim9vnd3kflgqagzccrgx9kz5gv";
+       version = "0.1.0.1";
+       sha256 = "0rgjf6blrg8rq75872bpwp6cn3bg89718cy6ik2m22881zfvr2m7";
        isLibrary = false;
        isExecutable = true;
        libraryHaskellDepends = [ base ];
@@ -18961,8 +18976,6 @@ self: {
        ];
        description = "Another Haskell web framework for rapid development";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "Spock-digestive" = callPackage
@@ -21309,24 +21322,6 @@ self: {
      }:
      mkDerivation {
        pname = "X11";
-       version = "1.9.1";
-       sha256 = "0gg6852mrlgl8zng1j84fismz7k81jr5fk92glgkscf8q6ryg0bm";
-       libraryHaskellDepends = [ base data-default ];
-       librarySystemDepends = [
-         libX11 libXext libXinerama libXrandr libXrender libXScrnSaver
-       ];
-       description = "A binding to the X11 graphics library";
-       license = stdenv.lib.licenses.bsd3;
-     }) {inherit (pkgs.xorg) libX11; inherit (pkgs.xorg) libXScrnSaver; 
-         inherit (pkgs.xorg) libXext; inherit (pkgs.xorg) libXinerama; 
-         inherit (pkgs.xorg) libXrandr; inherit (pkgs.xorg) libXrender;};
-
-  "X11_1_9_2" = callPackage
-    ({ mkDerivation, base, data-default, libX11, libXext, libXinerama
-     , libXrandr, libXrender, libXScrnSaver
-     }:
-     mkDerivation {
-       pname = "X11";
        version = "1.9.2";
        sha256 = "013yny4dwbs98kp7245j8dv81h4p1cdwn2rsf2hvhsplg6ixkc05";
        libraryHaskellDepends = [ base data-default ];
@@ -21335,7 +21330,6 @@ self: {
        ];
        description = "A binding to the X11 graphics library";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {inherit (pkgs.xorg) libX11; inherit (pkgs.xorg) libXScrnSaver; 
          inherit (pkgs.xorg) libXext; inherit (pkgs.xorg) libXinerama; 
          inherit (pkgs.xorg) libXrandr; inherit (pkgs.xorg) libXrender;};
@@ -22570,8 +22564,10 @@ self: {
      }:
      mkDerivation {
        pname = "accelerate-kullback-liebler";
-       version = "0.1.2.0";
-       sha256 = "16psmn0wakrrym8m98ing4nrh8r7qvbn04b28sicl5jdbfhg1fdn";
+       version = "0.1.2.1";
+       sha256 = "1pvgm5w8m7226wa139h49fd0f5bsrz3a7x30wx3mzjn80acgsm63";
+       revision = "1";
+       editedCabalFile = "1255a274j1ssiy934kl507giyv6zjmwiipqfj72gjik6ss0ih2vz";
        libraryHaskellDepends = [ accelerate base mwc-random-accelerate ];
        testHaskellDepends = [
          accelerate accelerate-llvm-native accelerate-llvm-ptx base
@@ -24102,7 +24098,7 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "aeson_1_5_3_0" = callPackage
+  "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
@@ -24114,8 +24110,8 @@ self: {
      }:
      mkDerivation {
        pname = "aeson";
-       version = "1.5.3.0";
-       sha256 = "0slqxmm4rikndzq2rmgydaqgf9qqnni62bgr0zihf25d65mgk3lm";
+       version = "1.5.4.0";
+       sha256 = "17qgrli6xy3cds5k9ijdsmnl89h48w89mgqqy6kfah1bjlzs3l40";
        libraryHaskellDepends = [
          attoparsec base base-compat-batteries bytestring containers
          data-fix deepseq dlist ghc-prim hashable primitive scientific
@@ -24838,6 +24834,8 @@ self: {
        pname = "aeson-schemas";
        version = "1.2.0";
        sha256 = "1fc8zzpkq6alkbl0v473h8diin8lqpliq6d3bsrh5bfny8yapvpk";
+       revision = "1";
+       editedCabalFile = "1kcsnpb4img9a122yz9lf7s0ils7ppbjyknbck2m8ip977kv04dp";
        libraryHaskellDepends = [
          aeson base bytestring first-class-families megaparsec
          template-haskell text unordered-containers
@@ -25983,15 +25981,18 @@ self: {
      }) {};
 
   "algebra-driven-design" = callPackage
-    ({ mkDerivation, base, containers, file-embed, JuicyPixels, mtl
-     , QuickCheck, quickspec
+    ({ 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.0.1";
-       sha256 = "0jydvrmrz6kvrbk8hv0mb01g67j0bdxi519s7blwf3gfkxfjvyyv";
+       version = "0.1.1.1";
+       sha256 = "0dp622a70biscjh1r0yyr9mz65g8p2wz60jrzrq8yhs1y4gsigs0";
        libraryHaskellDepends = [
-         base containers file-embed JuicyPixels mtl QuickCheck quickspec
+         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;
@@ -26222,6 +26223,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "ally-invest" = callPackage
+    ({ mkDerivation, aeson, authenticate-oauth, base, bytestring
+     , http-client, http-client-tls, safe, text, time
+     }:
+     mkDerivation {
+       pname = "ally-invest";
+       version = "0.1.0.0";
+       sha256 = "0n6vz0xd4y4div0p63mnbpng2dqwrsmrdhs25r10xw2wc2bznl79";
+       libraryHaskellDepends = [
+         aeson authenticate-oauth base bytestring http-client
+         http-client-tls safe text time
+       ];
+       testHaskellDepends = [
+         aeson authenticate-oauth base bytestring http-client
+         http-client-tls safe text time
+       ];
+       description = "Ally Invest integration library";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "almost-fix" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -31838,6 +31859,8 @@ self: {
        pname = "arbtt";
        version = "0.10.2";
        sha256 = "02izfga7nv2saq4d1xwigq41hhbc02830sjppqsqw6vcb8082vs1";
+       revision = "1";
+       editedCabalFile = "10b6ax854a4ig33iwcg21vad4gpgibfpb6xqkxd80hvkrj4gqd62";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -37525,15 +37548,15 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "base16_0_3_0_0" = callPackage
+  "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.0";
-       sha256 = "151g3lxma65z0hqi3pqy57bidkhibvdsppkl37p1cldg7whvc708";
+       version = "0.3.0.1";
+       sha256 = "10id9h9mas4kb4kfiz7hhp2hhwnb9mh92pr327c53jqxi4hazgnd";
        libraryHaskellDepends = [
          base bytestring deepseq primitive text text-short
        ];
@@ -46447,8 +46470,8 @@ self: {
      }:
      mkDerivation {
        pname = "bv-sized";
-       version = "1.0.1";
-       sha256 = "12l69p95z1ihwbfhlm0wyr1bdhs52ng4fvdsqxhgn0bpx9skzw73";
+       version = "1.0.2";
+       sha256 = "0lx7cm7404r71ciksv8g58797k6x02zh337ra88syhj7nzlnij5w";
        libraryHaskellDepends = [
          base bitwise bytestring panic parameterized-utils th-lift
        ];
@@ -48005,8 +48028,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal-fmt";
-       version = "0.1.3";
-       sha256 = "1d91kmx2q6ygx2avwgi9ihkdazngjf7i3ajyp3cmry5ahvv62x7z";
+       version = "0.1.4";
+       sha256 = "0akc63g7h21nyyr9m0dwjlnxqw8k26zx5s2mzn8zak2q9i88ds1b";
        isLibrary = false;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -48017,7 +48040,8 @@ self: {
          base bytestring directory filepath optparse-applicative
        ];
        testHaskellDepends = [
-         base bytestring Cabal filepath process tasty tasty-golden
+         base bytestring Cabal containers filepath process tasty
+         tasty-golden
        ];
        doHaddock = false;
        description = "Format .cabal files";
@@ -49363,7 +49387,7 @@ 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, mime-types
      , mtl, polysemy, polysemy-plugin, reflection, safe-exceptions
@@ -49373,11 +49397,11 @@ self: {
      }:
      mkDerivation {
        pname = "calamity";
-       version = "0.1.19.2";
-       sha256 = "14vw42zsyzcdi5nmgfl2mi4zxqbkvmd525ybsx324qj3cp3k8mn6";
+       version = "0.1.20.0";
+       sha256 = "0b11nkh4wynb8rdhn8qym5422l0nc49shkkp2mfbwh7yhmzaqwrh";
        libraryHaskellDepends = [
          aeson async base bytestring colour concurrent-extra containers
-         data-default-class data-flags deepseq deque df1 di-polysemy
+         data-default-class data-flags deepseq deque df1 di-core di-polysemy
          exceptions fmt focus generic-lens generic-override
          generic-override-aeson hashable http-date http-types lens
          lens-aeson megaparsec mime-types mtl polysemy polysemy-plugin
@@ -56723,6 +56747,8 @@ self: {
        ];
        description = "A ctags file generator for cabal project dependencies";
        license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "codo-notation" = callPackage
@@ -58171,14 +58197,16 @@ self: {
      }) {};
 
   "compact-sequences" = callPackage
-    ({ mkDerivation, base, containers, primitive, transformers }:
+    ({ mkDerivation, base, mtl, primitive, QuickCheck, tasty
+     , tasty-quickcheck, transformers
+     }:
      mkDerivation {
        pname = "compact-sequences";
-       version = "0.1.0.0";
-       sha256 = "148zjnnnn82vgn4ybs5z6nx9xv2wd73q2cavaa2nyjn1kcqqw7a8";
-       libraryHaskellDepends = [ base containers primitive transformers ];
-       testHaskellDepends = [ base ];
-       description = "Stacks and queues with compact representations";
+       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;
      }) {};
 
@@ -59742,6 +59770,35 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "conduit_1_3_2_1" = callPackage
+    ({ mkDerivation, base, bytestring, containers, deepseq, directory
+     , exceptions, filepath, gauge, hspec, kan-extensions
+     , mono-traversable, mtl, mwc-random, primitive, QuickCheck
+     , resourcet, safe, silently, split, text, transformers, unix
+     , unliftio, unliftio-core, vector
+     }:
+     mkDerivation {
+       pname = "conduit";
+       version = "1.3.2.1";
+       sha256 = "0kyl1zspkp14vrgxgc2zpy9rd9h6aa7m9f385sgshysnhbc7hbg5";
+       libraryHaskellDepends = [
+         base bytestring directory exceptions filepath mono-traversable mtl
+         primitive resourcet text transformers unix unliftio-core vector
+       ];
+       testHaskellDepends = [
+         base bytestring containers directory exceptions filepath hspec
+         mono-traversable mtl QuickCheck resourcet safe silently split text
+         transformers unliftio vector
+       ];
+       benchmarkHaskellDepends = [
+         base containers deepseq gauge hspec kan-extensions mwc-random
+         transformers vector
+       ];
+       description = "Streaming data processing library";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "conduit-algorithms" = callPackage
     ({ mkDerivation, async, base, bytestring, bzlib-conduit, conduit
      , conduit-combinators, conduit-extra, conduit-zstd, containers
@@ -61896,21 +61953,6 @@ self: {
      }:
      mkDerivation {
        pname = "contravariant-extras";
-       version = "0.3.5.1";
-       sha256 = "0r9bg6mrm5whv7inpp9m2agwbnk70vg0v7nrflpxkif81scpq0z9";
-       libraryHaskellDepends = [
-         base contravariant template-haskell template-haskell-compat-v0208
-       ];
-       description = "Extras for the \"contravariant\" package";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "contravariant-extras_0_3_5_2" = callPackage
-    ({ mkDerivation, base, contravariant, template-haskell
-     , template-haskell-compat-v0208
-     }:
-     mkDerivation {
-       pname = "contravariant-extras";
        version = "0.3.5.2";
        sha256 = "0ikwzg0992j870yp0x2ssf4mv2hw2nml979apg493m72xnvr1jz9";
        libraryHaskellDepends = [
@@ -61918,7 +61960,6 @@ self: {
        ];
        description = "Extras for the \"contravariant\" package";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "control" = callPackage
@@ -62278,6 +62319,29 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "conversions" = callPackage
+    ({ mkDerivation, base, bytestring, control-bool, devtools
+     , exceptions, mtl, source-constraints, template-haskell, text
+     , unliftio-core
+     }:
+     mkDerivation {
+       pname = "conversions";
+       version = "0.0.3";
+       sha256 = "1fn7ras17maswl7fw5hdbw02b8wjlzs2gcfwdxrw9xipjbw81hir";
+       libraryHaskellDepends = [
+         base bytestring control-bool devtools exceptions mtl
+         source-constraints template-haskell text unliftio-core
+       ];
+       testHaskellDepends = [
+         base bytestring control-bool devtools exceptions mtl
+         source-constraints template-haskell text unliftio-core
+       ];
+       description = "Injective explicit total and partial conversions";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "convert" = callPackage
     ({ mkDerivation, ansi-wl-pprint, base, bytestring, containers
      , data-default, impossible, lens, template-haskell, text
@@ -64998,6 +65062,8 @@ self: {
        ];
        description = "Reversable and secure encoding of object ids as a bytestring";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "cryptoids-class" = callPackage
@@ -65041,8 +65107,8 @@ self: {
      }:
      mkDerivation {
        pname = "cryptol";
-       version = "2.9.0";
-       sha256 = "0bxx4pslmyjaqhskbi95a67fmpjhnbmgcys68xzs2y8ndjnz9jrb";
+       version = "2.9.1";
+       sha256 = "0c484pla89igj77x5n2n50a1la8j4jaqpc0pc58c1pcijffxac5l";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -65883,8 +65949,8 @@ self: {
        pname = "cue-sheet";
        version = "2.0.1";
        sha256 = "0papll3xcq2ipmya61jr71gf3zx2swmys829x5sbz7lv6abj9r3i";
-       revision = "1";
-       editedCabalFile = "0md9051a0jp4vkss15dyyf1w7ylpqmvzfdj9xb1rgj95s1x7cx2g";
+       revision = "2";
+       editedCabalFile = "0kblqr8mjmps56a7pbjwnby5ik8grmj15l1qir7q9kbn44x4s8l3";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base bytestring containers exceptions megaparsec mtl QuickCheck
@@ -66366,15 +66432,15 @@ self: {
      }) {};
 
   "cut-the-crap" = callPackage
-    ({ mkDerivation, base, exceptions, generic-lens, hspec, hspec-core
-     , lens, optparse-applicative, pocketsphinx, QuickCheck
+    ({ 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.4.0";
-       sha256 = "03xip8a9inqir8zm244ffv92ag5r7z8hlh0qz7z4vfdmg54mhhnq";
+       version = "1.4.2";
+       sha256 = "16l8ar38nl2sgsbwjslhxd8z2wyjmdgmi51sic3vvyv7n6b9mr51";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -66382,17 +66448,20 @@ self: {
          shelly system-filepath temporary text time unliftio-core
        ];
        libraryPkgconfigDepends = [ pocketsphinx sphinxbase ];
+       libraryToolDepends = [ c2hs ];
        executableHaskellDepends = [
          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 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;
@@ -71211,6 +71280,20 @@ self: {
        broken = true;
      }) {};
 
+  "dependent-map_0_2_4_0" = callPackage
+    ({ mkDerivation, base, containers, dependent-sum }:
+     mkDerivation {
+       pname = "dependent-map";
+       version = "0.2.4.0";
+       sha256 = "0il2naf6gdkvkhscvqd8kg9v911vdhqp9h10z5546mninnyrdcsx";
+       revision = "1";
+       editedCabalFile = "0a5f35d1sgfq1cl1r5bgb5pwfjniiycxiif4ycxglaizp8g5rlr1";
+       libraryHaskellDepends = [ base containers dependent-sum ];
+       description = "Dependent finite maps (partial dependent products)";
+       license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "dependent-map" = callPackage
     ({ mkDerivation, base, constraints-extras, containers
      , dependent-sum
@@ -71258,6 +71341,18 @@ self: {
        broken = true;
      }) {};
 
+  "dependent-sum_0_4" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "dependent-sum";
+       version = "0.4";
+       sha256 = "07hs9s78wiybwjwkal2yq65hdavq0gg1h2ld7wbph61s2nsfrpm8";
+       libraryHaskellDepends = [ base ];
+       description = "Dependent sum type";
+       license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "dependent-sum" = callPackage
     ({ mkDerivation, base, constraints-extras, some }:
      mkDerivation {
@@ -71965,8 +72060,8 @@ self: {
      }:
      mkDerivation {
        pname = "devtools";
-       version = "0.0.2";
-       sha256 = "1p5695sgp48mznk9pb9kl24j9wa9gwq344hr3cdzzsvabfi1pkz2";
+       version = "0.0.3";
+       sha256 = "09lwvi4mbwkhazzmngpblxh2bvvxz1j4ndzsh3bp3nwwwa0xiihm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -72870,8 +72965,8 @@ self: {
     ({ mkDerivation, base, df1, di-core, di-df1, di-handle, polysemy }:
      mkDerivation {
        pname = "di-polysemy";
-       version = "0.1.4.0";
-       sha256 = "0p9wyli73skjbdbb0dgqb3p37rbijpadywsi0dwjdwdzpddjarcm";
+       version = "0.2.0.0";
+       sha256 = "09n9kjfv6zx016zkglr0ya0gmi18xdgl08iv7pvh41h0mp435aaq";
        libraryHaskellDepends = [
          base df1 di-core di-df1 di-handle polysemy
        ];
@@ -81418,8 +81513,8 @@ self: {
      }:
      mkDerivation {
        pname = "elynx";
-       version = "0.3.4";
-       sha256 = "0pm8gwaz6yzdhqw4cs98kbardcc6qsnvzx67f48hamrqvnvqa2ym";
+       version = "0.4.0";
+       sha256 = "0qhq3h1va7pfcz58mkdw690v88jr3ynk2rrwl0s5qdz8xxvs5n3a";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -81439,8 +81534,8 @@ self: {
      }:
      mkDerivation {
        pname = "elynx-markov";
-       version = "0.3.4";
-       sha256 = "0kd92zkafnx6bbzpn9xswl2wnkzzgjwmd7l6ycj43vrlgigp27v6";
+       version = "0.4.0";
+       sha256 = "0ikk9xk71xyn1fmhzx59lfyk9skjkvhg19xb2afhcylnbg41f3wz";
        libraryHaskellDepends = [
          async attoparsec base bytestring containers elynx-seq hmatrix
          integration math-functions mwc-random parallel primitive statistics
@@ -81459,8 +81554,8 @@ self: {
     ({ mkDerivation, attoparsec, base, bytestring, hspec }:
      mkDerivation {
        pname = "elynx-nexus";
-       version = "0.3.4";
-       sha256 = "16ckh34xywxggq0vf4aig912zb8n1fybz52k1vchrj0y0rxbvsa4";
+       version = "0.4.0";
+       sha256 = "02g67w8xracbasnkha383vz0ls1haxr78ia27k292lx572l17dvv";
        libraryHaskellDepends = [ attoparsec base bytestring ];
        testHaskellDepends = [ base hspec ];
        description = "Import and export Nexus files";
@@ -81476,8 +81571,8 @@ self: {
      }:
      mkDerivation {
        pname = "elynx-seq";
-       version = "0.3.4";
-       sha256 = "1zz0b2p8znigy5m12qacsdb52h09c2khc3l7i8glirhca74flsif";
+       version = "0.4.0";
+       sha256 = "03dh4rjdgn580niljgrl0cfw5h2mah8q1252jq3jx8349jxgpcmh";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring containers matrices mwc-random
          parallel primitive vector vector-th-unbox word8
@@ -81500,8 +81595,8 @@ self: {
      }:
      mkDerivation {
        pname = "elynx-tools";
-       version = "0.3.4";
-       sha256 = "0nldyxbj3ym4nnq62asi70w9c8h79s10g50gr7dkhdgbr07v47vs";
+       version = "0.4.0";
+       sha256 = "0n8rf7y4qxhx35fhbhj4yc541ydsx8qvy66d11sl5a836gmsv0rr";
        libraryHaskellDepends = [
          aeson attoparsec base base16-bytestring bytestring
          cryptohash-sha256 deepseq directory fast-logger hmatrix
@@ -81523,8 +81618,8 @@ self: {
      }:
      mkDerivation {
        pname = "elynx-tree";
-       version = "0.3.4";
-       sha256 = "1xhrmpnqg4gjr262xqi31rc406l40v0f5yfj0ah7jb1z45m23hsk";
+       version = "0.4.0";
+       sha256 = "1j22gkg1971wrih4gs4bxzkghvd3ddj85s6s5mcqhrfxmdnpsn2c";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring comonad containers deepseq
          double-conversion elynx-nexus math-functions mwc-random primitive
@@ -81989,6 +82084,31 @@ self: {
        broken = true;
      }) {};
 
+  "encryptable" = callPackage
+    ({ mkDerivation, base, bytestring, cryptonite, esqueleto
+     , generic-arbitrary, hspec, persistent, persistent-template
+     , QuickCheck, quickcheck-instances, text, universum
+     }:
+     mkDerivation {
+       pname = "encryptable";
+       version = "0.1";
+       sha256 = "0svvzk2js91qzcmbsfjcs2qs65a2b5ywgbpnyqidz53dlnbbk2r1";
+       libraryHaskellDepends = [
+         base bytestring cryptonite esqueleto generic-arbitrary hspec
+         persistent persistent-template QuickCheck quickcheck-instances text
+         universum
+       ];
+       testHaskellDepends = [
+         base bytestring cryptonite esqueleto generic-arbitrary hspec
+         persistent persistent-template QuickCheck quickcheck-instances text
+         universum
+       ];
+       description = "Typed encryption with persistent support";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "endo" = callPackage
     ({ mkDerivation, base, between, data-default-class, mtl
      , transformers
@@ -82995,6 +83115,20 @@ self: {
        broken = true;
      }) {};
 
+  "errata" = callPackage
+    ({ mkDerivation, base, containers, text }:
+     mkDerivation {
+       pname = "errata";
+       version = "0.1.0.0";
+       sha256 = "193m9c0409jvk6s8acqad3dg5x97mr6814gq0diyc3yc7b7mdmvf";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base containers text ];
+       executableHaskellDepends = [ base containers text ];
+       description = "Source code error pretty printing";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "errno" = callPackage
     ({ mkDerivation, base, mtl }:
      mkDerivation {
@@ -83462,6 +83596,35 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "esqueleto_3_3_3_3" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, blaze-html, bytestring
+     , conduit, containers, exceptions, hspec, monad-logger, mtl, mysql
+     , mysql-simple, persistent, persistent-mysql, persistent-postgresql
+     , persistent-sqlite, persistent-template, postgresql-libpq
+     , postgresql-simple, resourcet, tagged, text, time, transformers
+     , unliftio, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "esqueleto";
+       version = "3.3.3.3";
+       sha256 = "14h6x4bj39ffz7arn9ddyjabb5s2a8ynphjvha606lz4mcv3mxkv";
+       libraryHaskellDepends = [
+         aeson attoparsec base blaze-html bytestring conduit containers
+         monad-logger persistent resourcet tagged text time transformers
+         unliftio unordered-containers
+       ];
+       testHaskellDepends = [
+         aeson attoparsec base blaze-html bytestring conduit containers
+         exceptions hspec monad-logger mtl mysql mysql-simple persistent
+         persistent-mysql persistent-postgresql persistent-sqlite
+         persistent-template postgresql-libpq postgresql-simple resourcet
+         tagged text time transformers unliftio unordered-containers vector
+       ];
+       description = "Type-safe EDSL for SQL queries on persistent backends";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "ess" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -86123,24 +86286,6 @@ self: {
      }:
      mkDerivation {
        pname = "extra";
-       version = "1.7.6";
-       sha256 = "1mdqw88crblabxz4sg803ww6pkl5prnjnpjwh11n32y2npky5ask";
-       libraryHaskellDepends = [
-         base clock directory filepath process time unix
-       ];
-       testHaskellDepends = [
-         base directory filepath QuickCheck quickcheck-instances unix
-       ];
-       description = "Extra functions I use";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "extra_1_7_7" = callPackage
-    ({ mkDerivation, base, clock, directory, filepath, process
-     , QuickCheck, quickcheck-instances, time, unix
-     }:
-     mkDerivation {
-       pname = "extra";
        version = "1.7.7";
        sha256 = "1ark7b6xknc44v8jg5aymxffj5d0qr81frjpg2ffqrkwnhva0w5s";
        libraryHaskellDepends = [
@@ -86151,7 +86296,6 @@ self: {
        ];
        description = "Extra functions I use";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "extract-dependencies" = callPackage
@@ -88982,6 +89126,8 @@ self: {
        ];
        description = "Reversable and secure encoding of object ids as filepaths";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "filepath-io-access" = callPackage
@@ -89192,15 +89338,15 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "filtrable_0_1_5_0" = callPackage
-    ({ mkDerivation, base, smallcheck, tasty, tasty-smallcheck
-     , transformers
+  "filtrable_0_1_6_0" = callPackage
+    ({ mkDerivation, base, containers, smallcheck, tasty
+     , tasty-smallcheck, transformers
      }:
      mkDerivation {
        pname = "filtrable";
-       version = "0.1.5.0";
-       sha256 = "0glarxd5yaflyhy8ni6q0kzrhgwi8msr3q4zf6by80g2qd33kvh8";
-       libraryHaskellDepends = [ base transformers ];
+       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;
@@ -96806,12 +96952,12 @@ self: {
      }) {};
 
   "generic-match" = callPackage
-    ({ mkDerivation, base }:
+    ({ mkDerivation, base, generics-sop }:
      mkDerivation {
        pname = "generic-match";
-       version = "0.2.0.2";
-       sha256 = "16r43gzl3a8ycxbhggqk09mrm63r9db85nk1j2x4j4lzcwap7bid";
-       libraryHaskellDepends = [ base ];
+       version = "0.3.0.0";
+       sha256 = "1h27gd7f0px3xgan9liqwav8xhl0smn6nhdmi7ggd18mjafa1ngv";
+       libraryHaskellDepends = [ base generics-sop ];
        description = "First class pattern matching";
        license = stdenv.lib.licenses.mit;
      }) {};
@@ -98326,22 +98472,6 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "ghc-check_0_3_0_1" = callPackage
-    ({ mkDerivation, base, filepath, ghc, ghc-paths, process
-     , template-haskell, transformers
-     }:
-     mkDerivation {
-       pname = "ghc-check";
-       version = "0.3.0.1";
-       sha256 = "180xqs4g90v9sdjb0b3baqk62gbnw1xkv76wdq5ap49q0730s3vz";
-       libraryHaskellDepends = [
-         base filepath ghc ghc-paths process template-haskell transformers
-       ];
-       description = "detect mismatches between compile-time and run-time versions of the ghc api";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-     }) {};
-
   "ghc-check" = callPackage
     ({ mkDerivation, base, containers, directory, filepath, ghc
      , ghc-paths, process, safe-exceptions, template-haskell
@@ -99710,46 +99840,52 @@ self: {
 
   "ghcide" = callPackage
     ({ mkDerivation, aeson, array, async, base, base16-bytestring
-     , binary, bytestring, containers, cryptohash-sha1, data-default
-     , deepseq, directory, extra, filepath, fuzzy, ghc, ghc-boot
-     , ghc-boot-th, ghc-check, ghc-paths, ghc-typelits-knownnat, gitrev
+     , binary, bytestring, Chart, Chart-diagrams, containers
+     , cryptohash-sha1, data-default, deepseq, diagrams, diagrams-svg
+     , directory, extra, filepath, fuzzy, ghc, ghc-boot, ghc-boot-th
+     , ghc-check, ghc-paths, ghc-typelits-knownnat, gitrev
      , haddock-library, hashable, haskell-lsp, haskell-lsp-types
      , hie-bios, hslogger, lens, lsp-test, mtl, network-uri
-     , optparse-applicative, parser-combinators, prettyprinter
-     , prettyprinter-ansi-terminal, QuickCheck, quickcheck-instances
-     , regex-tdfa, rope-utf16-splay, safe-exceptions, shake, sorted-list
-     , stm, syb, tasty, tasty-expected-failure, tasty-hunit
-     , tasty-quickcheck, tasty-rerun, text, time, transformers, unix
-     , unordered-containers, utf8-string
+     , optparse-applicative, prettyprinter, prettyprinter-ansi-terminal
+     , process, QuickCheck, quickcheck-instances, regex-tdfa
+     , rope-utf16-splay, safe, safe-exceptions, shake, sorted-list, stm
+     , syb, tasty, tasty-expected-failure, tasty-hunit, tasty-quickcheck
+     , tasty-rerun, text, time, transformers, unix, unordered-containers
+     , utf8-string, yaml
      }:
      mkDerivation {
        pname = "ghcide";
-       version = "0.2.0";
-       sha256 = "1zadj34583qp8xz0iv2r0anqh96r94jv13iary5bk1m9zbhf4f7v";
+       version = "0.3.0";
+       sha256 = "001g3240qd9q9j00cmvz9d0b73mbf8mv5204cyf5jh04xcd09908";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson array async base binary bytestring containers data-default
-         deepseq directory extra filepath fuzzy ghc ghc-boot ghc-boot-th
-         haddock-library hashable haskell-lsp haskell-lsp-types hslogger mtl
-         network-uri prettyprinter prettyprinter-ansi-terminal regex-tdfa
-         rope-utf16-splay safe-exceptions shake sorted-list stm syb text
-         time transformers unix unordered-containers utf8-string
+         aeson array async base base16-bytestring binary bytestring
+         containers cryptohash-sha1 data-default deepseq directory extra
+         filepath fuzzy ghc ghc-boot ghc-boot-th ghc-check ghc-paths
+         haddock-library hashable haskell-lsp haskell-lsp-types hie-bios
+         hslogger mtl network-uri prettyprinter prettyprinter-ansi-terminal
+         regex-tdfa rope-utf16-splay safe safe-exceptions shake sorted-list
+         stm syb text time transformers unix unordered-containers
+         utf8-string
        ];
        executableHaskellDepends = [
-         aeson async base base16-bytestring binary bytestring containers
-         cryptohash-sha1 data-default deepseq directory extra filepath ghc
-         ghc-check ghc-paths gitrev hashable haskell-lsp haskell-lsp-types
-         hie-bios hslogger optparse-applicative shake text time
+         aeson base bytestring containers data-default directory extra
+         filepath gitrev hashable haskell-lsp haskell-lsp-types hie-bios
+         lsp-test optparse-applicative process safe-exceptions text
          unordered-containers
        ];
        testHaskellDepends = [
-         aeson base bytestring containers directory extra filepath ghc
-         ghc-typelits-knownnat haddock-library haskell-lsp haskell-lsp-types
-         lens lsp-test network-uri parser-combinators QuickCheck
-         quickcheck-instances rope-utf16-splay shake tasty
-         tasty-expected-failure tasty-hunit tasty-quickcheck tasty-rerun
-         text
+         aeson base binary bytestring containers directory extra filepath
+         ghc ghc-typelits-knownnat haddock-library haskell-lsp
+         haskell-lsp-types lens lsp-test network-uri optparse-applicative
+         process QuickCheck quickcheck-instances rope-utf16-splay safe
+         safe-exceptions shake tasty tasty-expected-failure tasty-hunit
+         tasty-quickcheck tasty-rerun text
+       ];
+       benchmarkHaskellDepends = [
+         aeson base Chart Chart-diagrams diagrams diagrams-svg directory
+         extra filepath shake text yaml
        ];
        description = "The core of an IDE";
        license = stdenv.lib.licenses.asl20;
@@ -101544,38 +101680,6 @@ self: {
      }:
      mkDerivation {
        pname = "ginger";
-       version = "0.10.0.5";
-       sha256 = "187118g5fs97msdab4jmhrwy28hhi81ihyc1v6rfb535bsnm70sw";
-       isLibrary = true;
-       isExecutable = true;
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         aeson aeson-pretty base bytestring data-default filepath http-types
-         mtl parsec regex-tdfa safe scientific text time transformers
-         unordered-containers utf8-string vector
-       ];
-       executableHaskellDepends = [
-         aeson base bytestring data-default optparse-applicative process
-         text transformers unordered-containers utf8-string yaml
-       ];
-       testHaskellDepends = [
-         aeson base bytestring data-default mtl tasty tasty-hunit
-         tasty-quickcheck text time transformers unordered-containers
-         utf8-string
-       ];
-       description = "An implementation of the Jinja2 template language in Haskell";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "ginger_0_10_1_0" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, base, bytestring
-     , data-default, filepath, http-types, mtl, optparse-applicative
-     , parsec, process, regex-tdfa, safe, scientific, tasty, tasty-hunit
-     , tasty-quickcheck, text, time, transformers, unordered-containers
-     , utf8-string, vector, yaml
-     }:
-     mkDerivation {
-       pname = "ginger";
        version = "0.10.1.0";
        sha256 = "0579ajr1rng0bd0pml69f6yz4aykvk8zcni0p7ck628qx4jzxihx";
        isLibrary = true;
@@ -101597,7 +101701,6 @@ self: {
        ];
        description = "An implementation of the Jinja2 template language in Haskell";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "gingersnap" = callPackage
@@ -104321,8 +104424,8 @@ self: {
        pname = "godot-haskell";
        version = "0.1.0.0";
        sha256 = "02nvs84bq4nif235iycjwkxmabvs0avwm2xilpwv8kddv95z1f8i";
-       revision = "3";
-       editedCabalFile = "0dpvraw31gpzzlsy7j7mv99jvmwhldycll1hnbw2iscb5zs2g409";
+       revision = "4";
+       editedCabalFile = "06mb33ll7m24dr6mvzi2r6v0bl6k0680y751563zhz0ybrjypckk";
        libraryHaskellDepends = [
          aeson ansi-wl-pprint base bytestring casing colour containers lens
          linear mtl parsec parsers stm template-haskell text
@@ -106762,6 +106865,8 @@ self: {
        ];
        description = "Bindings to the Google Geocoding API (formerly Maps Geocoding API)";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "google-oauth2" = callPackage
@@ -106894,6 +106999,8 @@ self: {
        ];
        description = "Bindings to the Google Maps Static API (formerly Static Maps API)";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "google-translate" = callPackage
@@ -108134,9 +108241,8 @@ self: {
      }:
      mkDerivation {
        pname = "graphql";
-       version = "0.9.0.0";
-       sha256 = "1lyzrnbf1w3j60wwi8cwbh1hxzvsw8vn9aymy1qzxgjgmi2wx94g";
-       enableSeparateDataOutput = true;
+       version = "0.10.0.0";
+       sha256 = "0j0l8jmfnn3aw9vmk5z571ly9vk711hsz7cdklc243539vfnsywn";
        libraryHaskellDepends = [
          aeson base conduit containers exceptions hspec-expectations
          megaparsec parser-combinators scientific text transformers
@@ -109414,7 +109520,7 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
-     }) {inherit (pkgs) gst-plugins-base; inherit (pkgs) gstreamer;};
+     }) {gst-plugins-base = null; gstreamer = null;};
 
   "gt-tools" = callPackage
     ({ mkDerivation, base, containers, extensible-exceptions, haskeline
@@ -111374,8 +111480,8 @@ self: {
        pname = "hackage-security";
        version = "0.6.0.1";
        sha256 = "05rgz31cmp52137j4jk0074z8lfgk8mrf2x56bzw28asmxrv8qli";
-       revision = "2";
-       editedCabalFile = "12m1a5jggzjz3d1q5j41dcs51hi1vwqqxrba0h9jiajv11f3hb39";
+       revision = "3";
+       editedCabalFile = "03cc99ynscxhmw1mxm2xn2ywvfnl1zfb3rdbbcc7fvm92nznzpyi";
        libraryHaskellDepends = [
          base base16-bytestring base64-bytestring bytestring Cabal
          containers cryptohash-sha256 directory ed25519 filepath ghc-prim
@@ -112449,6 +112555,8 @@ self: {
        testToolDepends = [ utillinux ];
        description = "A static website compiler library";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) utillinux;};
 
   "hakyll-R" = callPackage
@@ -112562,6 +112670,8 @@ self: {
        libraryHaskellDepends = [ base hakyll hyphenation split tagsoup ];
        description = "automatic hyphenation for Hakyll";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hakyll-contrib-links" = callPackage
@@ -112626,6 +112736,8 @@ self: {
        executableHaskellDepends = [ base dhall hakyll ];
        description = "Dhall compiler for Hakyll";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hakyll-dir-list" = callPackage
@@ -112670,6 +112782,8 @@ self: {
        executableHaskellDepends = [ base hakyll ];
        testHaskellDepends = [ base ];
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hakyll-filestore" = callPackage
@@ -112707,6 +112821,8 @@ self: {
        ];
        description = "Hakyll utilities to work with images";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hakyll-ogmarkup" = callPackage
@@ -112735,6 +112851,8 @@ self: {
        ];
        description = "Hakyll SASS compiler over hsass";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hakyll-series" = callPackage
@@ -112765,6 +112883,8 @@ self: {
        ];
        description = "Hakyll Hamlet compiler";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hakyll-shortcode" = callPackage
@@ -121699,8 +121819,8 @@ self: {
      }:
      mkDerivation {
        pname = "headed-megaparsec";
-       version = "0.1.0.4";
-       sha256 = "1nl66j4fqmjcxkrmhm7jnbqqpw48727wfbb9xn0cz4yy1brivjrb";
+       version = "0.2";
+       sha256 = "1s2alhwmkk5czilm1m2dp72xpbdjhn7yhghrs1aca2js71x5j7qj";
        libraryHaskellDepends = [
          base case-insensitive megaparsec parser-combinators selective
        ];
@@ -121803,6 +121923,22 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "heapsize" = callPackage
+    ({ mkDerivation, base, criterion, deepseq, ghc-heap, hashable
+     , primitive, unordered-containers
+     }:
+     mkDerivation {
+       pname = "heapsize";
+       version = "0.1";
+       sha256 = "0cmzmz6f572is70sp79fxriywl5d19rcb8c32x22c2yazyl6c6d9";
+       libraryHaskellDepends = [
+         base deepseq ghc-heap hashable primitive unordered-containers
+       ];
+       benchmarkHaskellDepends = [ base criterion deepseq primitive ];
+       description = "Determine the size of runtime data structures";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "heapsort" = callPackage
     ({ mkDerivation, array, base }:
      mkDerivation {
@@ -124917,7 +125053,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "hie-bios_0_7_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
@@ -124927,8 +125063,8 @@ self: {
      }:
      mkDerivation {
        pname = "hie-bios";
-       version = "0.7.0";
-       sha256 = "17jfiyxq1m0n1i9a565niczivkkxdd36l9gxqbhfafxsykggliab";
+       version = "0.7.1";
+       sha256 = "00gkr4dbbs70vnd6y90iirss88j8ax714l9jmwdfkmslwd4m2ml8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -126659,10 +126795,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger";
-       version = "1.18.1";
-       sha256 = "1yl6akcbmz5qy559m0k0cndwb6wdzvq2jqn7ahc46v3ai6hwk20c";
-       revision = "1";
-       editedCabalFile = "1fz1wwpxf6scr8nnrd2n1g92vya9bd0l54fcx3sqhyk5kaf8kp2z";
+       version = "1.19";
+       sha256 = "0kbvdpplc7h2xi1kzyk78wnmdxa32psn8swgk1apyzz36m03pax1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -126754,23 +126888,23 @@ self: {
      }) {};
 
   "hledger-flow" = callPackage
-    ({ mkDerivation, base, containers, foldl, HUnit
-     , optparse-applicative, stm, text, time, turtle
+    ({ mkDerivation, base, containers, exceptions, foldl, HUnit
+     , optparse-applicative, path, path-io, stm, text, time, turtle
      }:
      mkDerivation {
        pname = "hledger-flow";
-       version = "0.13.2.0";
-       sha256 = "1zajlqbayr6vm45y3901xwgg6acjn8fwx73mm9bnbsbxfzxn4g7d";
+       version = "0.14.1.0";
+       sha256 = "0xw2dqlvfi898d89f3srszylx9p3pasg3mmj6qqnwr5ng612pf4b";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base containers foldl stm text time turtle
+         base containers exceptions foldl path path-io stm text time turtle
        ];
        executableHaskellDepends = [
-         base optparse-applicative text turtle
+         base optparse-applicative path text turtle
        ];
        testHaskellDepends = [
-         base containers foldl HUnit stm text turtle
+         base containers foldl HUnit path path-io stm text turtle
        ];
        description = "An hledger workflow focusing on automated statement import and classification";
        license = stdenv.lib.licenses.gpl3;
@@ -126785,8 +126919,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-iadd";
-       version = "1.3.11";
-       sha256 = "1pqjyybbnhckz16in6skx3582aykk2yq5bf4ghbhj8iqbm3cczqf";
+       version = "1.3.12";
+       sha256 = "0klrqss2ch4yi50m1rybznzsjg4ahbx7rg9n8w5svpf34fdlp048";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -126814,8 +126948,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-interest";
-       version = "1.5.5";
-       sha256 = "1rsi0mpdgi0g7m07y8bd3gpw5jc8saxw15ab7yhxif4m7dfwjgmg";
+       version = "1.6.0";
+       sha256 = "0s0pmdm1vk4ib5ncs9mxyzr3dx5m6ji9778kddzqwxc9y9gvq5sq";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -126850,35 +126984,33 @@ self: {
     ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, array, base
      , base-compat-batteries, blaze-markup, bytestring, call-stack
      , cassava, cassava-megaparsec, cmdargs, containers, data-default
-     , Decimal, deepseq, directory, doctest, extra, fgl, file-embed
-     , filepath, Glob, hashtables, megaparsec, mtl, old-time, parsec
+     , Decimal, directory, doctest, extra, fgl, file-embed, filepath
+     , Glob, hashtables, megaparsec, mtl, old-time, parsec
      , parser-combinators, pretty-show, regex-tdfa, safe, split, tabular
      , tasty, tasty-hunit, template-haskell, text, time, timeit
-     , transformers, uglymemo, utf8-string
+     , transformers, uglymemo, unordered-containers, utf8-string
      }:
      mkDerivation {
        pname = "hledger-lib";
-       version = "1.18.1";
-       sha256 = "16fd3412n4vdnjacngjx5078yzmypn389m91308kgbd8anv6bhj4";
-       revision = "1";
-       editedCabalFile = "1icjbfzdq2yd3h6qx245xyb4qahxih97rx63qhxx3vaicvph40pk";
+       version = "1.19";
+       sha256 = "0asg5zxi664p1csjs70c40jnrq8z4fhawbjm0v6sl8sbx7pn1rj1";
        libraryHaskellDepends = [
          aeson aeson-pretty ansi-terminal array base base-compat-batteries
          blaze-markup bytestring call-stack cassava cassava-megaparsec
-         cmdargs containers data-default Decimal deepseq directory extra fgl
+         cmdargs containers data-default Decimal directory extra fgl
          file-embed filepath Glob hashtables megaparsec mtl old-time parsec
          parser-combinators pretty-show regex-tdfa safe split tabular tasty
          tasty-hunit template-haskell text time timeit transformers uglymemo
-         utf8-string
+         unordered-containers utf8-string
        ];
        testHaskellDepends = [
          aeson aeson-pretty ansi-terminal array base base-compat-batteries
          blaze-markup bytestring call-stack cassava cassava-megaparsec
-         cmdargs containers data-default Decimal deepseq directory doctest
-         extra fgl file-embed filepath Glob hashtables megaparsec mtl
-         old-time parsec parser-combinators pretty-show regex-tdfa safe
-         split tabular tasty tasty-hunit template-haskell text time timeit
-         transformers uglymemo utf8-string
+         cmdargs containers data-default Decimal directory doctest extra fgl
+         file-embed filepath Glob hashtables megaparsec mtl old-time parsec
+         parser-combinators pretty-show regex-tdfa safe split tabular tasty
+         tasty-hunit template-haskell text time timeit transformers uglymemo
+         unordered-containers utf8-string
        ];
        description = "A reusable library providing the core functionality of hledger";
        license = stdenv.lib.licenses.gpl3;
@@ -126937,8 +127069,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-ui";
-       version = "1.18.1";
-       sha256 = "0ggfz93f14znnjzkznzblsdk6iqbwwj2yxzx5rgsr0xcjzm8gx64";
+       version = "1.19";
+       sha256 = "1xi67k28b63cbg38771dqncwdh6qrcnb0gr31r5hwkglznk3ajss";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -126985,10 +127117,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-web";
-       version = "1.18.1";
-       sha256 = "1s10xyiqs77xl949m7rc71a4511i755yiv88jb0pc32xba7a2b1y";
-       revision = "1";
-       editedCabalFile = "01amhyjlw6xjh97zhxx8j05jszw0c0wnv7ka835n7rjnnv8199l3";
+       version = "1.19";
+       sha256 = "1nmacg23smaagfwzr7qwnlwiswdr4gb8zkscgxkiyfl5z97gy58y";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -127217,6 +127347,8 @@ self: {
        ];
        description = "High-level Redis Database";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hlrdb-core" = callPackage
@@ -134156,6 +134288,22 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "hspec_2_7_4" = callPackage
+    ({ mkDerivation, base, hspec-core, hspec-discover
+     , hspec-expectations, QuickCheck
+     }:
+     mkDerivation {
+       pname = "hspec";
+       version = "2.7.4";
+       sha256 = "0zql8cl025ai3yx2dhp1sgvmw8n4ngqbrlmb42hcgv26q8qnvhmi";
+       libraryHaskellDepends = [
+         base hspec-core hspec-discover hspec-expectations QuickCheck
+       ];
+       description = "A Testing Framework for Haskell";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hspec-attoparsec" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, hspec
      , hspec-expectations, text
@@ -134238,6 +134386,34 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "hspec-core_2_7_4" = callPackage
+    ({ mkDerivation, ansi-terminal, array, base, call-stack, clock
+     , deepseq, directory, filepath, hspec-expectations, hspec-meta
+     , HUnit, process, QuickCheck, quickcheck-io, random, setenv
+     , silently, stm, temporary, tf-random, transformers
+     }:
+     mkDerivation {
+       pname = "hspec-core";
+       version = "2.7.4";
+       sha256 = "1k0rs9399m6bzmndc9ybs26mxrzkl9pifrijvknysbaqfcifmq35";
+       libraryHaskellDepends = [
+         ansi-terminal array base call-stack clock deepseq directory
+         filepath hspec-expectations HUnit QuickCheck quickcheck-io random
+         setenv stm tf-random transformers
+       ];
+       testHaskellDepends = [
+         ansi-terminal array base call-stack clock deepseq directory
+         filepath hspec-expectations hspec-meta HUnit process QuickCheck
+         quickcheck-io random setenv silently stm temporary tf-random
+         transformers
+       ];
+       testToolDepends = [ hspec-meta ];
+       testTarget = "--test-option=--skip --test-option='Test.Hspec.Core.Runner.hspecResult runs specs in parallel'";
+       description = "A Testing Framework for Haskell";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hspec-dirstream" = callPackage
     ({ mkDerivation, base, dirstream, filepath, hspec, hspec-core
      , pipes, pipes-safe, system-filepath, text
@@ -134275,6 +134451,26 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "hspec-discover_2_7_4" = callPackage
+    ({ mkDerivation, base, directory, filepath, hspec-meta, QuickCheck
+     }:
+     mkDerivation {
+       pname = "hspec-discover";
+       version = "2.7.4";
+       sha256 = "02laain23bcnzsl65347qr5knvrmrlhd0kzc0d88kx59lpzm27a0";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base directory filepath ];
+       executableHaskellDepends = [ base directory filepath ];
+       testHaskellDepends = [
+         base directory filepath hspec-meta QuickCheck
+       ];
+       testToolDepends = [ hspec-meta ];
+       description = "Automatically discover and run Hspec tests";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hspec-expectations" = callPackage
     ({ mkDerivation, base, call-stack, HUnit, nanospec }:
      mkDerivation {
@@ -134522,6 +134718,23 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "hspec-megaparsec_2_2_0" = callPackage
+    ({ mkDerivation, base, containers, hspec, hspec-expectations
+     , megaparsec
+     }:
+     mkDerivation {
+       pname = "hspec-megaparsec";
+       version = "2.2.0";
+       sha256 = "0hyf06gzzqd6sqd76crwxycwgx804sd39z7i0c2vmv1qgsxv82gn";
+       libraryHaskellDepends = [
+         base containers hspec-expectations megaparsec
+       ];
+       testHaskellDepends = [ base hspec hspec-expectations megaparsec ];
+       description = "Utility functions for testing Megaparsec parsers with Hspec";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hspec-meta" = callPackage
     ({ mkDerivation, ansi-terminal, array, base, call-stack, clock
      , deepseq, directory, filepath, hspec-expectations, HUnit
@@ -137174,15 +137387,15 @@ self: {
        license = stdenv.lib.licenses.publicDomain;
      }) {};
 
-  "http-link-header_1_1_1" = callPackage
+  "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.1.1";
-       sha256 = "0bgffcmdswmpw3gl2yricz56y0cxb4x8l0j0qs60c6h16rcp5xwh";
+       version = "1.2.0";
+       sha256 = "1y0vr8fi8pap7ixbafp2lxvdk9hh56h370jw7qd11gm2032nnvg9";
        libraryHaskellDepends = [
          attoparsec base bytestring errors http-api-data network-uri text
        ];
@@ -141917,41 +142130,6 @@ self: {
      }:
      mkDerivation {
        pname = "ihaskell";
-       version = "0.10.1.1";
-       sha256 = "10rsdcc2l0gkhapvi5vzjc7m2bwv67k4iy3vjkx8i92jk6023y64";
-       isLibrary = true;
-       isExecutable = true;
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         aeson base base64-bytestring bytestring cereal cmdargs containers
-         directory filepath ghc ghc-boot ghc-parser ghc-paths haskeline
-         haskell-src-exts hlint http-client http-client-tls ipython-kernel
-         mtl parsec process random shelly split stm strict text time
-         transformers unix unordered-containers utf8-string vector
-       ];
-       executableHaskellDepends = [
-         aeson base bytestring containers directory ghc ipython-kernel
-         process strict text transformers unix unordered-containers
-       ];
-       testHaskellDepends = [
-         base directory ghc ghc-paths here hspec hspec-contrib HUnit
-         raw-strings-qq setenv shelly text transformers
-       ];
-       description = "A Haskell backend kernel for the IPython project";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "ihaskell_0_10_1_2" = callPackage
-    ({ mkDerivation, aeson, base, base64-bytestring, bytestring, cereal
-     , cmdargs, containers, directory, filepath, ghc, ghc-boot
-     , ghc-parser, ghc-paths, haskeline, haskell-src-exts, here, hlint
-     , hspec, hspec-contrib, http-client, http-client-tls, HUnit
-     , ipython-kernel, mtl, parsec, process, random, raw-strings-qq
-     , setenv, shelly, split, stm, strict, text, time, transformers
-     , unix, unordered-containers, utf8-string, vector
-     }:
-     mkDerivation {
-       pname = "ihaskell";
        version = "0.10.1.2";
        sha256 = "1gs2j0qgxzf346nlnq0zx12yj528ykxia5r3rlldpf6f01zs89v8";
        isLibrary = true;
@@ -141975,6 +142153,7 @@ self: {
        description = "A Haskell backend kernel for the IPython project";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "ihaskell-aeson" = callPackage
@@ -141990,6 +142169,8 @@ self: {
        ];
        description = "IHaskell display instances for Aeson";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "ihaskell-basic" = callPackage
@@ -142014,6 +142195,8 @@ self: {
        libraryHaskellDepends = [ base blaze-html blaze-markup ihaskell ];
        description = "IHaskell display instances for blaze-html types";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "ihaskell-charts" = callPackage
@@ -142030,6 +142213,8 @@ self: {
        ];
        description = "IHaskell display instances for charts types";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "ihaskell-diagrams" = callPackage
@@ -142046,6 +142231,8 @@ self: {
        ];
        description = "IHaskell display instances for diagram types";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "ihaskell-display" = callPackage
@@ -142070,6 +142257,8 @@ self: {
        libraryHaskellDepends = [ base bytestring gnuplot ihaskell ];
        description = "IHaskell display instance for Gnuplot (from gnuplot package)";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "ihaskell-graphviz" = callPackage
@@ -142081,6 +142270,8 @@ self: {
        libraryHaskellDepends = [ base bytestring ihaskell process ];
        description = "IHaskell display instance for GraphViz (external binary)";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "ihaskell-hatex" = callPackage
@@ -142092,6 +142283,8 @@ self: {
        libraryHaskellDepends = [ base HaTeX ihaskell text ];
        description = "IHaskell display instances for hatex";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "ihaskell-hvega" = callPackage
@@ -142103,6 +142296,8 @@ self: {
        libraryHaskellDepends = [ aeson base hvega ihaskell text ];
        description = "IHaskell display instance for hvega types";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "ihaskell-inline-r" = callPackage
@@ -142120,6 +142315,8 @@ self: {
        ];
        description = "Embed R quasiquotes and plots in IHaskell notebooks";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "ihaskell-juicypixels" = callPackage
@@ -142134,6 +142331,8 @@ self: {
        ];
        description = "IHaskell - IHaskellDisplay instances of the image types of the JuicyPixels package";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "ihaskell-magic" = callPackage
@@ -142150,6 +142349,8 @@ self: {
        ];
        description = "IHaskell display instances for bytestrings";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "ihaskell-parsec" = callPackage
@@ -142621,6 +142822,25 @@ self: {
        broken = true;
      }) {};
 
+  "immortal_0_2_2_1" = callPackage
+    ({ mkDerivation, base, lifted-base, monad-control, stm, tasty
+     , tasty-hunit, transformers, transformers-base
+     }:
+     mkDerivation {
+       pname = "immortal";
+       version = "0.2.2.1";
+       sha256 = "13lddk62byx8w41k80d24q31mmijacnqqz64zrrkls9si2ia2jpd";
+       libraryHaskellDepends = [
+         base lifted-base monad-control stm transformers-base
+       ];
+       testHaskellDepends = [
+         base lifted-base stm tasty tasty-hunit transformers
+       ];
+       description = "Spawn threads that never die (unless told to do so)";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "immortal" = callPackage
     ({ mkDerivation, base, stm, tasty, tasty-hunit, transformers
      , unliftio-core
@@ -143495,20 +143715,20 @@ self: {
     ({ mkDerivation, base, cleveland, constraints, containers, fmt
      , hedgehog, hspec-expectations, HUnit, lorentz, morley
      , morley-prelude, reflection, singletons, tasty, tasty-discover
-     , tasty-hedgehog, tasty-hunit-compat, template-haskell, vinyl
+     , tasty-hedgehog, tasty-hunit-compat, vinyl, with-utf8
      }:
      mkDerivation {
        pname = "indigo";
-       version = "0.2.0";
-       sha256 = "070ha5s8yirci7zdnh8gy8hdh158zsj7z7blwsr7inw753fsh1jp";
+       version = "0.2.1";
+       sha256 = "07zgqg6d4ijfvdg0q9lgfi545c903lc6mbcc9mzyfl4b3gpxqfpj";
        libraryHaskellDepends = [
          base constraints containers lorentz morley morley-prelude
-         reflection singletons template-haskell vinyl
+         reflection singletons vinyl with-utf8
        ];
        testHaskellDepends = [
          base cleveland containers fmt hedgehog hspec-expectations HUnit
          lorentz morley morley-prelude singletons tasty tasty-hedgehog
-         tasty-hunit-compat
+         tasty-hunit-compat with-utf8
        ];
        testToolDepends = [ tasty-discover ];
        description = "Convenient imperative eDSL over Lorentz";
@@ -146044,28 +146264,6 @@ self: {
      }:
      mkDerivation {
        pname = "ipython-kernel";
-       version = "0.10.2.0";
-       sha256 = "0ylqbcs7xdhkm0if18f1cmz4144gx0p4r9wgggbzphfx8v8lhz9a";
-       isLibrary = true;
-       isExecutable = true;
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         aeson base bytestring cereal cereal-text containers cryptonite
-         directory filepath memory mtl parsec process temporary text
-         transformers unordered-containers uuid zeromq4-haskell
-       ];
-       description = "A library for creating kernels for IPython frontends";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "ipython-kernel_0_10_2_1" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, cereal, cereal-text
-     , containers, cryptonite, directory, filepath, memory, mtl, parsec
-     , process, temporary, text, transformers, unordered-containers
-     , uuid, zeromq4-haskell
-     }:
-     mkDerivation {
-       pname = "ipython-kernel";
        version = "0.10.2.1";
        sha256 = "016w7bmji3k1cnnl3vq35zq6fnqdvc2x762zfzv4ync2jz63rq38";
        isLibrary = true;
@@ -146078,7 +146276,6 @@ self: {
        ];
        description = "A library for creating kernels for IPython frontends";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "irc" = callPackage
@@ -148877,6 +149074,8 @@ self: {
        pname = "json-api-lib";
        version = "0.3.0.0";
        sha256 = "14lycfqjp3v6lnr4vqagps80dpvy8z6gs6sqq3qz184xyw4m2ini";
+       revision = "1";
+       editedCabalFile = "16k87v87lq2xf3rbig4229a2gc3p6s9a771g48a95xc0rk4k4hkk";
        libraryHaskellDepends = [
          aeson base containers data-default deepseq lens lens-aeson text
          unordered-containers uri-encode
@@ -149698,8 +149897,8 @@ self: {
      }:
      mkDerivation {
        pname = "json5hs";
-       version = "0.1.2.2";
-       sha256 = "19r1ripvalrhvlqdk0pvm18b4a8sibdwlc60i2yj7da10rdx5cv1";
+       version = "0.1.3.1";
+       sha256 = "18i01c0045c26s80g69wdgyk9aa3pj092z0s6hmq9z5xddid2s8h";
        libraryHaskellDepends = [
          array base bytestring containers mtl pretty syb text
        ];
@@ -154074,6 +154273,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "language-c_0_9" = callPackage
+    ({ mkDerivation, alex, array, base, bytestring, containers, deepseq
+     , directory, filepath, happy, mtl, pretty, process, syb
+     }:
+     mkDerivation {
+       pname = "language-c";
+       version = "0.9";
+       sha256 = "0a2z97ajdbql583jcganadi9frqj09cidqb1hlh0gl6w6aj82kii";
+       libraryHaskellDepends = [
+         array base bytestring containers deepseq directory filepath mtl
+         pretty process syb
+       ];
+       libraryToolDepends = [ alex happy ];
+       testHaskellDepends = [ base directory filepath process ];
+       description = "Analysis and generation of C code";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "language-c-comments" = callPackage
     ({ mkDerivation, alex, array, base, language-c }:
      mkDerivation {
@@ -154255,8 +154473,8 @@ self: {
      }:
      mkDerivation {
        pname = "language-dickinson";
-       version = "1.3.0.1";
-       sha256 = "0681w4rz547if52yk0k32drhllx0k906nir0gs6xv0pqxkjc07ri";
+       version = "1.3.0.2";
+       sha256 = "1dldip54xd54kbfgc3kl79z86p6c4q37vx43r3qpymxpc85kid84";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -155592,6 +155810,8 @@ self: {
        ];
        description = "Use actual LaTeX to render formulae inside Hakyll pages";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "latex-svg-image" = callPackage
@@ -155628,6 +155848,8 @@ self: {
        executableHaskellDepends = [ base latex-svg-image pandoc-types ];
        description = "Render LaTeX formulae in pandoc documents to images with an actual LaTeX";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "lattices" = callPackage
@@ -155666,8 +155888,8 @@ self: {
      }:
      mkDerivation {
        pname = "launchdarkly-server-sdk";
-       version = "2.0.0";
-       sha256 = "0dfs9nq3vcf8w2k1x51pixb4wb47rg9nzyjgfpzx6vip296ivyf7";
+       version = "2.0.1";
+       sha256 = "19jp9809jrh3swvsji5zgbqg4qg5gayv6bj0svq00wyzaisns3dd";
        libraryHaskellDepends = [
          aeson attoparsec base base16-bytestring bytestring
          bytestring-conversion clock containers cryptohash exceptions extra
@@ -157891,8 +158113,8 @@ self: {
      }:
      mkDerivation {
        pname = "libfuse3";
-       version = "0.1.0.0";
-       sha256 = "0qwlaqcpmi7dfsjk219z0hrqmayg46qx1cwj1vcz1nfv8jlm8yif";
+       version = "0.1.1.0";
+       sha256 = "0jnh6by1k42h8kl78anh8lqwhymdz2xgynm82vidsd7jjzanmf3j";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -159640,19 +159862,22 @@ self: {
      }) {};
 
   "lingo" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, containers, directory
-     , filepath, hspec, raw-strings-qq, text, yaml
+    ({ mkDerivation, base, bytestring, containers, directory, filepath
+     , hspec, raw-strings-qq, text, yaml
      }:
      mkDerivation {
        pname = "lingo";
-       version = "0.3.2.0";
-       sha256 = "0qym6svpvxsxbhbppk0lkpp2zbqa13f0njkxnpyz5id581c3v8hx";
-       setupHaskellDepends = [
-         base bytestring Cabal containers directory filepath text yaml
-       ];
+       version = "0.5.0.1";
+       sha256 = "0h57g6r2n9q8asx35prn8p5mn35qnp8cy2pdrrpmrvhq7islwd8s";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [
          base bytestring containers filepath raw-strings-qq text yaml
        ];
+       executableHaskellDepends = [
+         base bytestring containers directory filepath raw-strings-qq text
+         yaml
+       ];
        testHaskellDepends = [ base hspec ];
        description = "File extension based programming language detection";
        license = stdenv.lib.licenses.bsd3;
@@ -160576,8 +160801,6 @@ self: {
        testHaskellDepends = [ base-prelude HTF mmorph mtl-prelude ];
        description = "ListT done right";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "list-t-attoparsec" = callPackage
@@ -162472,25 +162695,12 @@ self: {
     ({ mkDerivation, base, mtl, tasty, tasty-hunit }:
      mkDerivation {
        pname = "logict";
-       version = "0.7.0.2";
-       sha256 = "1xfgdsxg0lp8m0a2cb83rcxrnnc37asfikay2kydi933anh9ihfc";
-       libraryHaskellDepends = [ base mtl ];
-       testHaskellDepends = [ base mtl tasty tasty-hunit ];
-       description = "A backtracking logic-programming monad";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "logict_0_7_0_3" = callPackage
-    ({ mkDerivation, base, mtl, tasty, tasty-hunit }:
-     mkDerivation {
-       pname = "logict";
        version = "0.7.0.3";
        sha256 = "0psihirap7mrn3ly1h9dvgvgjsqbqwji8m13fm48zl205mpfh73r";
        libraryHaskellDepends = [ base mtl ];
        testHaskellDepends = [ base mtl tasty tasty-hunit ];
        description = "A backtracking logic-programming monad";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "logict-state" = callPackage
@@ -163240,6 +163450,19 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "lrucaching-haxl" = callPackage
+    ({ mkDerivation, base, hashable, haxl, lrucaching, psqueues }:
+     mkDerivation {
+       pname = "lrucaching-haxl";
+       version = "0.1.0.0";
+       sha256 = "0pn2f671ak1grzjigyvan5wagh9vyqhsz86jfy1z281rd2pw4gk2";
+       libraryHaskellDepends = [ base hashable haxl lrucaching psqueues ];
+       description = "Combine lrucaching and haxl";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "ls-usb" = callPackage
     ({ mkDerivation, ansi-wl-pprint, base, base-unicode-symbols
      , cmdtheline, text, usb, usb-id-database, vector
@@ -165207,6 +165430,18 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "managed_1_0_8" = callPackage
+    ({ mkDerivation, base, transformers }:
+     mkDerivation {
+       pname = "managed";
+       version = "1.0.8";
+       sha256 = "00wzfy9facwgimrilz7bxaigr79w10733h8zfgyhll644p2rnz38";
+       libraryHaskellDepends = [ base transformers ];
+       description = "A monad for managed values";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "manatee" = callPackage
     ({ mkDerivation, base, binary, cairo, containers, dbus-client
      , dbus-core, derive, directory, filepath, gtk, gtk-serialized-event
@@ -166394,6 +166629,30 @@ self: {
        broken = true;
      }) {};
 
+  "massiv_0_5_4_0" = callPackage
+    ({ mkDerivation, base, bytestring, data-default-class, deepseq
+     , doctest, exceptions, mersenne-random-pure64, primitive
+     , QuickCheck, random, scheduler, splitmix, template-haskell
+     , unliftio-core, vector
+     }:
+     mkDerivation {
+       pname = "massiv";
+       version = "0.5.4.0";
+       sha256 = "0dmm6x5izmjl1l803fvmxzqrh0jpg56z2aid228a4c44n620dzln";
+       libraryHaskellDepends = [
+         base bytestring data-default-class deepseq exceptions primitive
+         scheduler unliftio-core vector
+       ];
+       testHaskellDepends = [
+         base doctest mersenne-random-pure64 QuickCheck random splitmix
+         template-haskell
+       ];
+       description = "Massiv (Массив) is an Array Library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "massiv-io" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, cabal-doctest, Color
      , data-default-class, deepseq, doctest, exceptions, filepath, hspec
@@ -166489,6 +166748,30 @@ self: {
        broken = true;
      }) {};
 
+  "massiv-test_0_1_4" = callPackage
+    ({ mkDerivation, base, bytestring, containers, data-default
+     , data-default-class, deepseq, exceptions, genvalidity-hspec, hspec
+     , massiv, mwc-random, primitive, QuickCheck, scheduler, unliftio
+     , vector
+     }:
+     mkDerivation {
+       pname = "massiv-test";
+       version = "0.1.4";
+       sha256 = "1qhvph2s6bkw3zb43arq1zvrfyr09phqjwxhzsqxi2x2fcrdyvyn";
+       libraryHaskellDepends = [
+         base bytestring data-default-class deepseq exceptions hspec massiv
+         primitive QuickCheck scheduler unliftio vector
+       ];
+       testHaskellDepends = [
+         base bytestring containers data-default deepseq genvalidity-hspec
+         hspec massiv mwc-random primitive QuickCheck scheduler vector
+       ];
+       description = "Library that contains generators, properties and tests for Massiv Array Library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "master-plan" = callPackage
     ({ mkDerivation, base, diagrams, diagrams-lib, diagrams-rasterific
      , hspec, megaparsec, mtl, optparse-applicative, QuickCheck
@@ -168088,6 +168371,27 @@ self: {
        license = stdenv.lib.licenses.bsd2;
      }) {};
 
+  "megaparsec_9_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, case-insensitive, containers
+     , criterion, deepseq, mtl, parser-combinators, scientific, text
+     , transformers, weigh
+     }:
+     mkDerivation {
+       pname = "megaparsec";
+       version = "9.0.0";
+       sha256 = "1x10f2b14ww306am9w06s23va26ab3vwdh0jk67ql6ybigxh0asi";
+       libraryHaskellDepends = [
+         base bytestring case-insensitive containers deepseq mtl
+         parser-combinators scientific text transformers
+       ];
+       benchmarkHaskellDepends = [
+         base containers criterion deepseq text weigh
+       ];
+       description = "Monadic parser combinators";
+       license = stdenv.lib.licenses.bsd2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "megaparsec-tests" = callPackage
     ({ mkDerivation, base, bytestring, case-insensitive, containers
      , hspec, hspec-discover, hspec-expectations, hspec-megaparsec
@@ -168114,6 +168418,31 @@ self: {
        license = stdenv.lib.licenses.bsd2;
      }) {};
 
+  "megaparsec-tests_9_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, case-insensitive, containers
+     , hspec, hspec-discover, hspec-expectations, hspec-megaparsec
+     , megaparsec, mtl, parser-combinators, QuickCheck, scientific, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "megaparsec-tests";
+       version = "9.0.0";
+       sha256 = "0zm246r8k48mj5v2dxjan7dsrcnw54bcm27swi5mh8c0yb3vcvab";
+       libraryHaskellDepends = [
+         base bytestring containers hspec hspec-expectations
+         hspec-megaparsec megaparsec mtl QuickCheck text transformers
+       ];
+       testHaskellDepends = [
+         base bytestring case-insensitive containers hspec
+         hspec-expectations hspec-megaparsec megaparsec mtl
+         parser-combinators QuickCheck scientific text transformers
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Test utilities and the test suite of Megaparsec";
+       license = stdenv.lib.licenses.bsd2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "meldable-heap" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -169301,6 +169630,34 @@ self: {
        broken = true;
      }) {};
 
+  "micro-gateway" = callPackage
+    ({ mkDerivation, aeson, base, binary, bytestring, case-insensitive
+     , containers, cookie, data-default-class, hslogger, http-client
+     , http-types, network-uri, optparse-applicative, scotty, signature
+     , stm, streaming-commons, text, time, unix-time
+     , unordered-containers, wai, wai-cors, wai-websockets, warp
+     , websockets, yaml
+     }:
+     mkDerivation {
+       pname = "micro-gateway";
+       version = "1.1.0.0";
+       sha256 = "1jb703vcqncxw12cmgmyg63rw6fmfa4mv1685z6vab3xzq7kvxv7";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base binary bytestring case-insensitive containers cookie
+         hslogger http-client http-types scotty signature stm text time
+         unix-time unordered-containers wai websockets
+       ];
+       executableHaskellDepends = [
+         aeson base bytestring data-default-class http-client network-uri
+         optparse-applicative scotty streaming-commons text wai-cors
+         wai-websockets warp websockets yaml
+       ];
+       description = "A Micro service gateway";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "micro-recursion-schemes" = callPackage
     ({ mkDerivation, base, cpphs, HUnit, template-haskell
      , th-abstraction
@@ -170102,6 +170459,36 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "mime-mail-ses_0_4_3" = callPackage
+    ({ mkDerivation, base, base16-bytestring, base64-bytestring
+     , byteable, bytestring, case-insensitive, conduit, cryptohash
+     , http-client, http-client-tls, http-conduit, http-types, mime-mail
+     , optparse-applicative, tasty, tasty-hunit, text, time, xml-conduit
+     , xml-types
+     }:
+     mkDerivation {
+       pname = "mime-mail-ses";
+       version = "0.4.3";
+       sha256 = "0v4b0y28kf7mx80z16j82wmaccpggkc262f7cn9g9j2nfayy2xhj";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base base16-bytestring base64-bytestring byteable bytestring
+         case-insensitive conduit cryptohash http-client http-client-tls
+         http-conduit http-types mime-mail text time xml-conduit xml-types
+       ];
+       executableHaskellDepends = [
+         base http-client http-client-tls mime-mail optparse-applicative
+         text
+       ];
+       testHaskellDepends = [
+         base bytestring case-insensitive tasty tasty-hunit time
+       ];
+       description = "Send mime-mail messages via Amazon SES";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "mime-string" = callPackage
     ({ mkDerivation, base, base64-string, bytestring, iconv, mtl
      , network, old-locale, old-time, random
@@ -171269,8 +171656,8 @@ self: {
        pname = "mmark-ext";
        version = "0.2.1.2";
        sha256 = "1s44vznj8hkk7iymnzczbglxnw1q84gmm8q9yiwh0jkiw4kdi91c";
-       revision = "2";
-       editedCabalFile = "0q633c7zv0liaz0a46llgy21x0snbfhl33qx9plh2sxhjvhvhmpj";
+       revision = "3";
+       editedCabalFile = "02i6577qislr0qvgmfamcixpxgb7bh68lg18n3vkq6xbnjxdpwpx";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base foldl ghc-syntax-highlighter lucid microlens mmark modern-uri
@@ -171743,8 +172130,8 @@ self: {
     ({ mkDerivation, base, doctest, typelits-witnesses }:
      mkDerivation {
        pname = "modular-arithmetic";
-       version = "2.0.0.0";
-       sha256 = "1mwhjn315vgpvf95ay6rf77hwpb7hjfw9bcginnz4cb30nn8kvl9";
+       version = "2.0.0.1";
+       sha256 = "132cxgrw6lsdkpqi69v1f9jgl5icslwi5qclv4rc03hn0mcnl2sz";
        libraryHaskellDepends = [ base typelits-witnesses ];
        testHaskellDepends = [ base doctest typelits-witnesses ];
        description = "A type for integers modulo some constant";
@@ -173923,6 +174310,8 @@ self: {
        pname = "monoidal-containers";
        version = "0.6.0.1";
        sha256 = "1j5mfs0ysvwk3jsmq4hlj4l3kasfc28lk1b3xaymf9dw48ac5j82";
+       revision = "1";
+       editedCabalFile = "06agyfnhr4cr42m4zj7xwl5an3skbjvba53a5i6sl9890gx7mml3";
        libraryHaskellDepends = [
          aeson base containers deepseq hashable lens newtype semialign
          semigroups these unordered-containers
@@ -174925,17 +175314,17 @@ self: {
 
   "mprelude" = callPackage
     ({ mkDerivation, base, devtools, source-constraints, text
-     , text-conversions
+     , unliftio-core
      }:
      mkDerivation {
        pname = "mprelude";
-       version = "0.1.0";
-       sha256 = "0p7zx0b49dp2vd3mx3knfl9gqbh6sj2znc372bmh6ja57g1kv8ds";
+       version = "0.2.0";
+       sha256 = "0llkcbilz138zlrqmsny74g9ybjf665h7w84g0q0rli9dvjnc4bl";
        libraryHaskellDepends = [
-         base source-constraints text text-conversions
+         base source-constraints text unliftio-core
        ];
        testHaskellDepends = [
-         base devtools source-constraints text text-conversions
+         base devtools source-constraints text unliftio-core
        ];
        description = "A minimalish prelude";
        license = stdenv.lib.licenses.bsd3;
@@ -179074,15 +179463,15 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "neat-interpolation_0_5_1_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.1";
-       sha256 = "1bjl2k3b42kqwq15fsnjxxcadsch5dck9cwf8zvnh4gkyfmkbbx4";
+       version = "0.5.1.2";
+       sha256 = "18c48r5qwrapkjh35l5dng3ahkkn1ch47vc4nzjwh4a9va94laln";
        libraryHaskellDepends = [ base megaparsec template-haskell text ];
        testHaskellDepends = [
          QuickCheck quickcheck-instances rerebase tasty tasty-hunit
@@ -189170,7 +189559,6 @@ self: {
        '';
        description = "Conversion between markup formats";
        license = stdenv.lib.licenses.gpl2Plus;
-       hydraPlatforms = stdenv.lib.platforms.none;
        maintainers = with stdenv.lib.maintainers; [ peti ];
      }) {};
 
@@ -189273,8 +189661,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-crossref";
-       version = "0.3.7.0";
-       sha256 = "1mw5bcl0z1vps4xz72pznr1b9ag1g9sxhm2f51wm3236z9q28za6";
+       version = "0.3.8.1";
+       sha256 = "15h484xq015jy65mzaqjqyi4ppnqfrdvvj1llmp8k00vb2xcrzrr";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -189298,8 +189686,6 @@ self: {
        ];
        description = "Pandoc filter for cross-references";
        license = stdenv.lib.licenses.gpl2;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "pandoc-csv2table" = callPackage
@@ -189315,6 +189701,8 @@ self: {
        executableHaskellDepends = [ base csv pandoc pandoc-types ];
        description = "Convert CSV to Pandoc Table Markdown";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "pandoc-emphasize-code" = callPackage
@@ -189324,8 +189712,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-emphasize-code";
-       version = "0.2.4";
-       sha256 = "0fz0pkxx64d8bvrsg9s704mhhw9djq74x56dbv5w3y65nch8p3a5";
+       version = "0.3.0";
+       sha256 = "02bg6aippqbjzx1dqzq63qh4ggm6pyw6p8p5iay9ldxdgx4jicnc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -189425,6 +189813,8 @@ self: {
        ];
        description = "A Pandoc filter for including code from source files";
        license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "pandoc-japanese-filters" = callPackage
@@ -189755,6 +190145,8 @@ self: {
        ];
        description = "Utility functions to work with Pandoc in Haskell applications";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "pandoc-vimhl" = callPackage
@@ -189779,8 +190171,8 @@ self: {
     ({ mkDerivation }:
      mkDerivation {
        pname = "pandora";
-       version = "0.2.9";
-       sha256 = "0gl5h4krn2aigxfqppa4fr8vir2s5xrh8s363frh82fgdxblhjgc";
+       version = "0.3.0";
+       sha256 = "1k9b714rb9cgapn0vgwymrq7ma1lmq6klmlv37c6gqmb1c5k7ijh";
        description = "A box of patterns and paradigms";
        license = stdenv.lib.licenses.mit;
      }) {};
@@ -197847,8 +198239,8 @@ self: {
      }:
      mkDerivation {
        pname = "plot";
-       version = "0.2.3.10";
-       sha256 = "0dva2kvf3193qc7zb9ydmzpffaj9lm6qy79n5zv66jnbccyp36lf";
+       version = "0.2.3.11";
+       sha256 = "0img30argzgxcgwam3iqc3xasgizbbcrghd2vkmqahmv7g3l36di";
        libraryHaskellDepends = [
          array base cairo colour hmatrix mtl pango transformers
        ];
@@ -198908,29 +199300,29 @@ self: {
     ({ mkDerivation, aeson, ansi-terminal, base-noprelude, bytestring
      , case-insensitive, co-log-core, co-log-polysemy, composition
      , containers, data-default, either, hedgehog, http-client
-     , http-client-tls, http-conduit, http-types, lens, mono-traversable
-     , network, polysemy, polysemy-plugin, relude, servant
-     , servant-client, servant-server, string-interpolate, tasty
-     , tasty-hedgehog, template-haskell, text, warp
+     , 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.1.0.0";
-       sha256 = "025dch3cq8bgyy78yg4jrcxxmkdyl03y38zrgjhfv00rrwcffhm0";
+       version = "0.2.0.1";
+       sha256 = "0a8sq6pfwskviqkblz5i7c2f604xpkv7j07kfngci3xspbskk71v";
        libraryHaskellDepends = [
          aeson ansi-terminal base-noprelude bytestring case-insensitive
          co-log-core co-log-polysemy composition containers data-default
          either http-client http-client-tls http-conduit http-types lens
-         mono-traversable polysemy polysemy-plugin relude string-interpolate
-         template-haskell text
+         polysemy polysemy-plugin relude string-interpolate template-haskell
+         text
        ];
        testHaskellDepends = [
          aeson ansi-terminal base-noprelude bytestring case-insensitive
          co-log-core co-log-polysemy composition containers data-default
          either hedgehog http-client http-client-tls http-conduit http-types
-         lens mono-traversable network polysemy polysemy-plugin relude
-         servant servant-client servant-server string-interpolate tasty
-         tasty-hedgehog template-haskell text warp
+         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";
@@ -198974,6 +199366,29 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "polysemy-test" = callPackage
+    ({ mkDerivation, base-noprelude, containers, either, hedgehog, path
+     , path-io, polysemy, polysemy-plugin, relude, string-interpolate
+     , tasty, tasty-hedgehog, text
+     }:
+     mkDerivation {
+       pname = "polysemy-test";
+       version = "0.2.0.0";
+       sha256 = "10kakaipasw1gbipjl4x23cma9f6iv3ma547a26b70ysap6c41ys";
+       libraryHaskellDepends = [
+         base-noprelude containers either hedgehog path path-io polysemy
+         polysemy-plugin relude string-interpolate tasty tasty-hedgehog text
+       ];
+       testHaskellDepends = [
+         base-noprelude containers either hedgehog path path-io polysemy
+         polysemy-plugin relude string-interpolate tasty tasty-hedgehog text
+       ];
+       description = "Polysemy effects for testing";
+       license = "BSD-2-Clause-Patent";
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "polysemy-webserver" = callPackage
     ({ mkDerivation, base, bytestring, hspec, http-conduit, http-types
      , polysemy, polysemy-plugin, text, wai, wai-websockets, warp
@@ -200650,8 +201065,8 @@ self: {
      }:
      mkDerivation {
        pname = "postgresql-syntax";
-       version = "0.3.0.2";
-       sha256 = "1gl0k3idcgpnahh8mv01mjzhc4yx6i3f7shfa7mqhcgs6r1ccdhz";
+       version = "0.3.0.3";
+       sha256 = "0zylrzd8dfks1jdx1yq1i2n2a7sxa8b04h6km9lx3bdpbpv84y7i";
        libraryHaskellDepends = [
          base bytestring case-insensitive fast-builder hashable
          headed-megaparsec megaparsec parser-combinators text text-builder
@@ -202656,6 +203071,40 @@ self: {
        license = stdenv.lib.licenses.publicDomain;
      }) {};
 
+  "primal" = callPackage
+    ({ mkDerivation, base, deepseq, doctest, template-haskell
+     , transformers
+     }:
+     mkDerivation {
+       pname = "primal";
+       version = "0.1.0.0";
+       sha256 = "0y60m1249n5mzglmbkhv98lzzmmkxs2k0mn882kqs89h04hfx546";
+       libraryHaskellDepends = [ base deepseq transformers ];
+       testHaskellDepends = [ base doctest template-haskell ];
+       description = "Primeval world of Haskell";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "primal-memory" = callPackage
+    ({ mkDerivation, base, bytestring, criterion, deepseq, primal
+     , primitive, random
+     }:
+     mkDerivation {
+       pname = "primal-memory";
+       version = "0.1.0.0";
+       sha256 = "0lvz5kj6bvlgz1jykcv8dri77pjmy6fzppvk9vlvh4cx22zh9y5m";
+       libraryHaskellDepends = [ base bytestring deepseq primal ];
+       benchmarkHaskellDepends = [
+         base criterion deepseq primal primitive random
+       ];
+       description = "Unified interface for memory managemenet";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "primes" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -202839,8 +203288,6 @@ self: {
        ];
        description = "Extras for the \"primitive\" library";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "primitive-foreign" = callPackage
@@ -203061,6 +203508,17 @@ self: {
        broken = true;
      }) {};
 
+  "print-info" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "print-info";
+       version = "0.1.3.0";
+       sha256 = "02wl9hq7jkz4yzkb744xwgnbss0w2sdpi02d3ms2q5rvc03ixnh6";
+       libraryHaskellDepends = [ base ];
+       description = "Can be used to coordinate the printing output";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "printcess" = callPackage
     ({ mkDerivation, base, containers, hspec, HUnit, lens, mtl
      , QuickCheck, transformers
@@ -205186,8 +205644,8 @@ self: {
      }:
      mkDerivation {
        pname = "provenience";
-       version = "0.1.0.2";
-       sha256 = "0wzja3vv21wgwxlmwcfc6vbkdr80jjkhxbxa41zz1i78j8cc3bri";
+       version = "0.1.1.0";
+       sha256 = "020kfw1laishiqy8npg2f2llq7dv1djii0d0khjfw7f1scy4x10n";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -205361,8 +205819,8 @@ self: {
      }:
      mkDerivation {
        pname = "psql-utils";
-       version = "0.1.0.0";
-       sha256 = "09s26lqqdy2qah6i0yim9g2h61hramhij7r9kbcccbc3fgv4sd6s";
+       version = "0.2.0.0";
+       sha256 = "0y195pymiy31d8pyq71hjrh58s3hfzaa58l7qskbf3biyy159sxz";
        libraryHaskellDepends = [
          aeson base hashable postgresql-simple resource-pool time
        ];
@@ -208135,8 +208593,8 @@ self: {
      }:
      mkDerivation {
        pname = "quickspec";
-       version = "2.1.4";
-       sha256 = "0h07s2dk4kjqv3hspazjwqbr8p78g2n5ah75h0a6ywdfgdy2z621";
+       version = "2.1.5";
+       sha256 = "0j8mcn9616r40hdl0jy6mqac7i31mhlsgv421m1hc8pj1kabpc0i";
        libraryHaskellDepends = [
          base constraints containers data-lens-light dlist QuickCheck
          quickcheck-instances random spoon template-haskell transformers
@@ -209289,8 +209747,8 @@ self: {
        pname = "random";
        version = "1.2.0";
        sha256 = "1pmr7zbbqg58kihhhwj8figf5jdchhi7ik2apsyxbgsqq3vrqlg4";
-       revision = "1";
-       editedCabalFile = "11l9bcjy63qvcm4n7djp2l1l8668hbckkkdb2nj5g6iyy9pb2sa9";
+       revision = "2";
+       editedCabalFile = "1pjpv8rzbwhr881ayxbvz4filvx3qkdx13pa21407p5fiyf208a3";
        libraryHaskellDepends = [ base bytestring deepseq mtl splitmix ];
        testHaskellDepends = [
          base bytestring containers doctest mwc-random primitive smallcheck
@@ -211391,7 +211849,7 @@ self: {
        license = stdenv.lib.licenses.publicDomain;
      }) {};
 
-  "reanimate_0_4_2_0" = callPackage
+  "reanimate_0_4_3_0" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, array, attoparsec, base
      , base64-bytestring, bytestring, cassava, cereal, colour
      , containers, cubicbezier, directory, filelock, filepath, fsnotify
@@ -211404,8 +211862,8 @@ self: {
      }:
      mkDerivation {
        pname = "reanimate";
-       version = "0.4.2.0";
-       sha256 = "0dihh2k0cvh17qb37pfn1h6g620yzp923wrjqy22qbmlld896snk";
+       version = "0.4.3.0";
+       sha256 = "0rp9qfp8fhz6cxrw9gcva9crxpayrm7a49m1fmma1x9dw4x79b1q";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson ansi-terminal array attoparsec base base64-bytestring
@@ -211814,8 +212272,8 @@ self: {
     ({ mkDerivation, base, composition-prelude }:
      mkDerivation {
        pname = "recursion";
-       version = "2.2.4.1";
-       sha256 = "09r4a9h4rd48nqdn08v3mvibqvgb0ym05142jrk0qqq8f4la3dni";
+       version = "2.2.4.2";
+       sha256 = "15ahlgm0dilapk0y5jhwdvrims7nyzdsbdccq4x9jj0ddsszqr02";
        libraryHaskellDepends = [ base composition-prelude ];
        description = "A recursion schemes library for Haskell";
        license = stdenv.lib.licenses.bsd3;
@@ -212099,6 +212557,23 @@ self: {
        broken = true;
      }) {};
 
+  "rediscaching-haxl" = callPackage
+    ({ mkDerivation, aeson, async, base, bytestring, hashable, haxl
+     , hedis, network, time
+     }:
+     mkDerivation {
+       pname = "rediscaching-haxl";
+       version = "0.1.0.0";
+       sha256 = "0mgmrcw1p9q4njrmjal9ckxkli8wb2g12njqaj6xlkin2xz5ym8j";
+       libraryHaskellDepends = [
+         aeson async base bytestring hashable haxl hedis network time
+       ];
+       description = "Combine redis caching and haxl";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "redland" = callPackage
     ({ mkDerivation, base, deepseq, raptor2, redland }:
      mkDerivation {
@@ -219945,10 +220420,8 @@ self: {
      }:
      mkDerivation {
        pname = "safe-json";
-       version = "1.1.0";
-       sha256 = "18zsf2dccgf755a8g4ar3zc7ilmampsrvqa6f9p27zrayl7j87hw";
-       revision = "4";
-       editedCabalFile = "12z5z68bfrzv3laagbssdcv7g97bpk2wf1bjirrivbhdbslf6l4q";
+       version = "1.1.1";
+       sha256 = "1307fm7kmls0sd2gb5zcl75rcxxy550ksaf145s54c06qjcihhjg";
        libraryHaskellDepends = [
          aeson base bytestring containers dlist hashable scientific tasty
          tasty-hunit tasty-quickcheck text time unordered-containers
@@ -221149,31 +221622,31 @@ self: {
      }) {};
 
   "sbv" = callPackage
-    ({ mkDerivation, array, async, base, bytestring, containers
-     , crackNum, deepseq, directory, doctest, filepath, gauge
-     , generic-deriving, Glob, hlint, mtl, pretty, process, QuickCheck
-     , random, silently, syb, tasty, tasty-golden, tasty-hunit
-     , tasty-quickcheck, template-haskell, time, transformers, z3
+    ({ mkDerivation, 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.7";
-       sha256 = "0iipl3ra0ih6fjxfs4p554va5243rg1ddkllfdbs7y2sj697841l";
+       version = "8.8";
+       sha256 = "0xm05g9kxh38jjbssnhyw6c8q4rsyjndm2b8r36cqwx0n607zvgy";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         array async base containers crackNum deepseq directory filepath
-         generic-deriving 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 deepseq directory filepath gauge mtl
-         process random silently 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;
@@ -222372,6 +222845,19 @@ self: {
        broken = true;
      }) {};
 
+  "scotty-haxl" = callPackage
+    ({ mkDerivation, base, haxl, scotty, text }:
+     mkDerivation {
+       pname = "scotty-haxl";
+       version = "0.1.0.0";
+       sha256 = "06wcvjpaar8zd2y6p9j4pxs4l7rkw84s1kmcvacafkw43h1d2bx2";
+       libraryHaskellDepends = [ base haxl scotty text ];
+       description = "Combine scotty and haxl";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "scotty-params-parser" = callPackage
     ({ mkDerivation, base-prelude, matcher, scotty, success, text
      , transformers, unordered-containers
@@ -222477,6 +222963,21 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "scotty-utils" = callPackage
+    ({ mkDerivation, aeson, aeson-result, base, http-types, scotty
+     , text
+     }:
+     mkDerivation {
+       pname = "scotty-utils";
+       version = "0.1.0.0";
+       sha256 = "0f77b5xmr5gwswz15i5833karfr1qvyaaiy58khd75n9awfx5jqv";
+       libraryHaskellDepends = [
+         aeson aeson-result base http-types scotty text
+       ];
+       description = "Scotty utils library";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "scotty-view" = callPackage
     ({ mkDerivation, base, scotty, text, transformers }:
      mkDerivation {
@@ -225523,6 +226024,27 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "servant-conduit_0_15_1" = callPackage
+    ({ mkDerivation, base, base-compat, bytestring, conduit
+     , http-client, http-media, mtl, resourcet, servant, servant-client
+     , servant-server, unliftio-core, wai, warp
+     }:
+     mkDerivation {
+       pname = "servant-conduit";
+       version = "0.15.1";
+       sha256 = "1vy3ihypb0zm2yd16rq120qw3898i3c0mahh2jysssv65g0avdwp";
+       libraryHaskellDepends = [
+         base bytestring conduit mtl resourcet servant unliftio-core
+       ];
+       testHaskellDepends = [
+         base base-compat bytestring conduit http-client http-media
+         resourcet servant servant-client servant-server wai warp
+       ];
+       description = "Servant Stream support for conduit";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "servant-csharp" = callPackage
     ({ mkDerivation, aeson, base, bytestring, directory, filepath
      , heredocs, http-types, lens, mtl, servant, servant-foreign
@@ -225635,7 +226157,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "servant-docs_0_11_5" = callPackage
+  "servant-docs_0_11_6" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, base-compat, bytestring
      , case-insensitive, hashable, http-media, http-types, lens, servant
      , string-conversions, tasty, tasty-golden, tasty-hunit, text
@@ -225643,8 +226165,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-docs";
-       version = "0.11.5";
-       sha256 = "0i51f33w5bz8j6jj9j5ivg7kll510nc0hmkhdrh3q0qagbpwryfx";
+       version = "0.11.6";
+       sha256 = "07qabs5xi6dw8anmrnl2135fps901k4y1s2xywgdxhqyg01rljhq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -225873,14 +226395,14 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "servant-foreign_0_15_1" = callPackage
+  "servant-foreign_0_15_2" = callPackage
     ({ mkDerivation, base, base-compat, hspec, hspec-discover
      , http-types, lens, servant, text
      }:
      mkDerivation {
        pname = "servant-foreign";
-       version = "0.15.1";
-       sha256 = "024pd3a5pf4gqx5y2is7n38a7qyfanw13w5jy4j5a81zjmfxnwk7";
+       version = "0.15.2";
+       sha256 = "0vxm80cnd4w8zpyq7brnnjmcarb0vj7xgikwpc0il1w6hjgis7vl";
        libraryHaskellDepends = [
          base base-compat http-types lens servant text
        ];
@@ -226277,6 +226799,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "servant-machines_0_15_1" = callPackage
+    ({ mkDerivation, base, base-compat, bytestring, http-client
+     , http-media, machines, mtl, servant, servant-client
+     , servant-server, wai, warp
+     }:
+     mkDerivation {
+       pname = "servant-machines";
+       version = "0.15.1";
+       sha256 = "0k8abcc72s5bzcf2vmjkxxjnhk45rww6hr3l93msm2510hi6gda4";
+       libraryHaskellDepends = [ base bytestring machines mtl servant ];
+       testHaskellDepends = [
+         base base-compat bytestring http-client http-media machines servant
+         servant-client servant-server wai warp
+       ];
+       description = "Servant Stream support for machines";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "servant-match" = callPackage
     ({ mkDerivation, base, bytestring, hspec, http-types, network-uri
      , servant, text, utf8-string
@@ -226534,6 +227075,28 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "servant-pipes_0_15_2" = callPackage
+    ({ mkDerivation, base, base-compat, bytestring, http-client
+     , http-media, monad-control, mtl, pipes, pipes-bytestring
+     , pipes-safe, servant, servant-client, servant-server, wai, warp
+     }:
+     mkDerivation {
+       pname = "servant-pipes";
+       version = "0.15.2";
+       sha256 = "1r5irq09j64iapi5n9mzsph984r5f7cyr6zz4sw3xqh648dmf75h";
+       libraryHaskellDepends = [
+         base bytestring monad-control mtl pipes pipes-safe servant
+       ];
+       testHaskellDepends = [
+         base base-compat bytestring http-client http-media pipes
+         pipes-bytestring pipes-safe servant servant-client servant-server
+         wai warp
+       ];
+       description = "Servant Stream support for pipes";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "servant-pool" = callPackage
     ({ mkDerivation, base, resource-pool, servant, time }:
      mkDerivation {
@@ -227261,7 +227824,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "servant-swagger_1_1_8" = callPackage
+  "servant-swagger_1_1_10" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, base-compat, bytestring
      , Cabal, cabal-doctest, directory, doctest, filepath, hspec
      , hspec-discover, http-media, insert-ordered-containers, lens
@@ -227271,8 +227834,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-swagger";
-       version = "1.1.8";
-       sha256 = "16zmrakgiwf9rb9bvw3mjbmkqixyms42ymh7g1vyvz399plfn0c7";
+       version = "1.1.10";
+       sha256 = "0y6zylhs4z0nfz75d4i2azcq0yh2bd4inanwblx4035dgkk1q78a";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          aeson aeson-pretty base base-compat bytestring hspec http-media
@@ -228885,8 +229448,8 @@ self: {
      }:
      mkDerivation {
        pname = "shake-futhark";
-       version = "0.1.0.0";
-       sha256 = "1wxp025dmlal1nm7f7s16pzgx42sawfcnz3lv6krilhr7ynb92ss";
+       version = "0.1.0.1";
+       sha256 = "110kvha6makrirdpc3x2r2lnazy4nn2xc8s5ydaz64fx9838mlra";
        libraryHaskellDepends = [
          base containers filepath futhark shake text
        ];
@@ -229145,31 +229708,6 @@ self: {
      }:
      mkDerivation {
        pname = "shakespeare";
-       version = "2.0.24.1";
-       sha256 = "0r9msld629fh9h98iclhd30h1rbg1xqzjqxj64k0n1p39fkx4ndm";
-       libraryHaskellDepends = [
-         aeson base blaze-html blaze-markup bytestring containers directory
-         exceptions ghc-prim parsec process scientific template-haskell text
-         th-lift time transformers unordered-containers vector
-       ];
-       testHaskellDepends = [
-         aeson base blaze-html blaze-markup bytestring containers directory
-         exceptions ghc-prim hspec HUnit parsec process template-haskell
-         text time transformers
-       ];
-       description = "A toolkit for making compile-time interpolated templates";
-       license = stdenv.lib.licenses.mit;
-       maintainers = with stdenv.lib.maintainers; [ psibi ];
-     }) {};
-
-  "shakespeare_2_0_25" = callPackage
-    ({ mkDerivation, aeson, base, blaze-html, blaze-markup, bytestring
-     , containers, directory, exceptions, ghc-prim, hspec, HUnit, parsec
-     , process, scientific, template-haskell, text, th-lift, time
-     , transformers, unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "shakespeare";
        version = "2.0.25";
        sha256 = "1fjv3yg425d87d3dih0l3ff95g5a5yp9w85m58sjara6xqivj9s4";
        libraryHaskellDepends = [
@@ -229184,7 +229722,6 @@ self: {
        ];
        description = "A toolkit for making compile-time interpolated templates";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
        maintainers = with stdenv.lib.maintainers; [ psibi ];
      }) {};
 
@@ -232096,6 +232633,8 @@ self: {
        ];
        description = "A simple to understand static site generator";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "sixel" = callPackage
@@ -232528,14 +233067,14 @@ self: {
        license = stdenv.lib.licenses.gpl2;
      }) {};
 
-  "skylighting_0_9" = callPackage
+  "skylighting_0_10" = callPackage
     ({ mkDerivation, base, binary, blaze-html, bytestring, containers
      , directory, filepath, pretty-show, skylighting-core, text
      }:
      mkDerivation {
        pname = "skylighting";
-       version = "0.9";
-       sha256 = "1855k1xjh38r389zvlzga7dkc3scj65ip9frvvkagxa2ls1irfp1";
+       version = "0.10";
+       sha256 = "1gi6pfi5rcmql0gdcjyb114phkc0xnkrhk6y2h6yvx4jflzpw4lj";
        configureFlags = [ "-fexecutable" ];
        isLibrary = true;
        isExecutable = true;
@@ -232583,7 +233122,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "skylighting-core_0_9" = callPackage
+  "skylighting-core_0_10" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, attoparsec, base
      , base64-bytestring, binary, blaze-html, bytestring
      , case-insensitive, colour, containers, criterion, Diff, directory
@@ -232593,8 +233132,8 @@ self: {
      }:
      mkDerivation {
        pname = "skylighting-core";
-       version = "0.9";
-       sha256 = "0gljyp007pcym2b0azg0sn654kmss9xwim84xw7hxc1q8rwvdxhr";
+       version = "0.10";
+       sha256 = "1b2ldgdgq0a1wg7nlfpzm1rag8hbmm7gnirrm78cd72kycrmly60";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -233135,8 +233674,8 @@ self: {
      }:
      mkDerivation {
        pname = "slynx";
-       version = "0.3.4";
-       sha256 = "1qyi231wvi62cgjanqy7n4ypddf1xr59914cghvglgjwrpz9fljp";
+       version = "0.4.0";
+       sha256 = "10a6nqpr422c80vmzjx1r2wgbhkc2kjn7kvmavc0cx1752wn79kc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -235731,10 +236270,10 @@ self: {
     ({ mkDerivation, base, socket }:
      mkDerivation {
        pname = "socket-icmp";
-       version = "0.1.0.0";
-       sha256 = "14lfvbhcq1ri9bfc0qiymh8qv8b7q78lzfbr5qsarh8rb85ii2vj";
+       version = "0.1.0.1";
+       sha256 = "1wvrdgz0ybacbzg91vi8jiswr02lj7hz61cksmcfii2qsmzpfgb7";
        libraryHaskellDepends = [ base socket ];
-       description = "Definitions for ICMP with the `socket` library";
+       description = "Definitions for using ICMP with the `socket` library";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
@@ -240710,8 +241249,6 @@ self: {
        ];
        description = "Containers for STM";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "stm-delay" = callPackage
@@ -240781,8 +241318,6 @@ self: {
        ];
        description = "STM-specialised Hash Array Mapped Trie";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "stm-io-hooks" = callPackage
@@ -241194,8 +241729,8 @@ self: {
      }:
      mkDerivation {
        pname = "store";
-       version = "0.7.6";
-       sha256 = "1gzax38chn57ybikvddk6g8msyv52y5s30yndpp64bdh3kqwlchq";
+       version = "0.7.7";
+       sha256 = "152blmvnp8k0bh9bw6ddzmb2rhs0a36v1k0fza39n88sldx504s3";
        libraryHaskellDepends = [
          array async base base-orphans base64-bytestring bifunctors
          bytestring containers contravariant cryptohash deepseq directory
@@ -241250,8 +241785,8 @@ self: {
      }:
      mkDerivation {
        pname = "store-streaming";
-       version = "0.2.0.2";
-       sha256 = "1hnzpyw5l90nrm3vlrwbv8517iaaq0razfjj6m8a41jy2lkgf4gz";
+       version = "0.2.0.3";
+       sha256 = "0b164ixsqgrar4riqlm3ip5rfbinapk6md7hnz32gzcmrgav283q";
        libraryHaskellDepends = [
          async base bytestring conduit free resourcet store store-core
          streaming-commons text transformers
@@ -241325,15 +241860,15 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "stratosphere_0_57_0" = callPackage
+  "stratosphere_0_58_0" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, bytestring, containers
      , hashable, hspec, hspec-discover, lens, template-haskell, text
      , unordered-containers
      }:
      mkDerivation {
        pname = "stratosphere";
-       version = "0.57.0";
-       sha256 = "1ksxy117bizi4bnj7skv5hq7rsw2gz0w5yg5b3xhc6ialkq9in4z";
+       version = "0.58.0";
+       sha256 = "17yi1h5rcnhvwzpd27hz5pw1dznmdhg58jwsp37bfxns0hx35ywn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -243027,8 +243562,8 @@ self: {
      }:
      mkDerivation {
        pname = "stripe-core";
-       version = "2.5.0";
-       sha256 = "06b5qx20zkvaqvn98jqmq0vqrpkgfvab5wjq7lwlcdm9nn7nrsgi";
+       version = "2.6.2";
+       sha256 = "00bjr71lawn1ar18vm3p849ffr6r6fmgwn2ksg4vas5rmmy2vwib";
        libraryHaskellDepends = [
          aeson base bytestring mtl text time transformers
          unordered-containers
@@ -243043,8 +243578,8 @@ self: {
     ({ mkDerivation, base, stripe-core, stripe-http-client }:
      mkDerivation {
        pname = "stripe-haskell";
-       version = "2.5.0";
-       sha256 = "0qazqygkg6hlfvz6wg3gk2am7qnxzsfqjqh6mgyandz9l141pyx5";
+       version = "2.6.2";
+       sha256 = "02ydf9i632r2clhvf1f9v0yx7vmpmh37mch1jshazrw3my6sq1vl";
        libraryHaskellDepends = [ base stripe-core stripe-http-client ];
        description = "Stripe API for Haskell";
        license = stdenv.lib.licenses.mit;
@@ -243058,8 +243593,8 @@ self: {
      }:
      mkDerivation {
        pname = "stripe-http-client";
-       version = "2.5.0";
-       sha256 = "1386d2bhql56kazxx89icl1j5ikhhza2cv934x19s5lqsl8089yi";
+       version = "2.6.2";
+       sha256 = "0xz8dc2mh5mscc3mp5n4h2sch1winpaf7sy1w4s87vv68304jfg3";
        libraryHaskellDepends = [
          aeson base bytestring http-client http-client-tls http-types
          stripe-core text
@@ -243109,6 +243644,8 @@ self: {
        ];
        description = "Listen for Stripe webhook events with Scotty";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "stripe-signature" = callPackage
@@ -243126,6 +243663,27 @@ self: {
        testHaskellDepends = [ base bytestring text ];
        description = "Verification of Stripe webhook signatures";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "stripe-signature_1_0_0_6" = callPackage
+    ({ mkDerivation, base, base16-bytestring, bytestring, cryptonite
+     , memory, stripe-concepts, text
+     }:
+     mkDerivation {
+       pname = "stripe-signature";
+       version = "1.0.0.6";
+       sha256 = "0lp3fli9g5yvlxy8f0md2d3wv6z45mw0929b8c0y2xkcsdjvpp5l";
+       libraryHaskellDepends = [
+         base base16-bytestring bytestring cryptonite memory stripe-concepts
+         text
+       ];
+       testHaskellDepends = [ base bytestring text ];
+       description = "Verification of Stripe webhook signatures";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "stripe-tests" = callPackage
@@ -243135,8 +243693,8 @@ self: {
      }:
      mkDerivation {
        pname = "stripe-tests";
-       version = "2.5.0";
-       sha256 = "0jqxzdriaysf2lya8p9lc1ind2m4b4nz15dn7vb3sx74vw6lp4s3";
+       version = "2.6.2";
+       sha256 = "06r1jyf6rjmnd6p2grfs0s0f5x6sswsxw9ip7x81rh9cz5qdshdg";
        libraryHaskellDepends = [
          aeson base bytestring free hspec hspec-core mtl random stripe-core
          text time transformers unordered-containers
@@ -244223,8 +244781,6 @@ self: {
        ];
        description = "Efficiently build a bytestring from smaller chunks";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "supercollider-ht" = callPackage
@@ -244349,15 +244905,13 @@ self: {
 
   "supernova" = callPackage
     ({ mkDerivation, aeson, async, base, bifunctor, binary, bytestring
-     , Cabal, crc32c, exceptions, lens-family-core, logging, managed
-     , network, proto-lens, proto-lens-runtime, proto-lens-setup
-     , streamly, text, unliftio
+     , crc32c, exceptions, lens-family-core, logging, managed, network
+     , proto-lens, proto-lens-runtime, streamly, text, unliftio
      }:
      mkDerivation {
        pname = "supernova";
-       version = "0.0.1";
-       sha256 = "0v0x1xk63kxrf2ihhdr24z7ami557d3w2zizd0g8xqp02pr5gs8z";
-       setupHaskellDepends = [ base Cabal proto-lens-setup ];
+       version = "0.0.2";
+       sha256 = "0nqylb2qqqyxqw2f9smdl3hiv4kbi8hphxndp4v1yx3hq3zhdbjj";
        libraryHaskellDepends = [
          base bifunctor binary bytestring crc32c exceptions lens-family-core
          logging managed network proto-lens proto-lens-runtime text unliftio
@@ -245041,13 +245595,14 @@ self: {
      }) {};
 
   "swiss-ephemeris" = callPackage
-    ({ mkDerivation, base, directory, hspec, hspec-discover }:
+    ({ mkDerivation, base, directory, hspec, hspec-discover, QuickCheck
+     }:
      mkDerivation {
        pname = "swiss-ephemeris";
-       version = "0.1.0.2";
-       sha256 = "0kjph3dy7ii767zpjdqi2ya08vgahhwkbf1fp48n26vfilcwppc9";
+       version = "0.2.0.0";
+       sha256 = "12va8a5brad7jqafvp1d4m3kvc0a00w2961jl0kyn4iq7kbgapdb";
        libraryHaskellDepends = [ base ];
-       testHaskellDepends = [ base directory hspec ];
+       testHaskellDepends = [ base directory hspec QuickCheck ];
        testToolDepends = [ hspec-discover ];
        description = "Haskell bindings for the Swiss Ephemeris C library";
        license = stdenv.lib.licenses.gpl2;
@@ -246861,6 +247416,18 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "tabular_0_2_2_8" = callPackage
+    ({ mkDerivation, base, csv, html, mtl }:
+     mkDerivation {
+       pname = "tabular";
+       version = "0.2.2.8";
+       sha256 = "0z936gh8n8i8qdkagyxwd9gqq13skd5fv013vdvwsibrxkm0czfb";
+       libraryHaskellDepends = [ base csv html mtl ];
+       description = "Two-dimensional data tables with rendering functions";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "taffybar" = callPackage
     ({ mkDerivation, ansi-terminal, base, broadcast-chan, bytestring
      , ConfigFile, containers, dbus, dbus-hslogger, directory, dyre
@@ -248082,14 +248649,14 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "tasty-expected-failure_0_12" = callPackage
+  "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";
-       sha256 = "1yhbgrbsghr3cxy4rxb7wfl9xbasm00xky3hrw4zyyl87r7gs6v6";
+       version = "0.12.1";
+       sha256 = "1r4xljml8w55q6qpjj94ig2yic398624fld3dwjfcbaldgbacpmm";
        libraryHaskellDepends = [ base tagged tasty unbounded-delays ];
        testHaskellDepends = [
          base hedgehog tasty tasty-golden tasty-hedgehog tasty-hunit
@@ -249435,25 +250002,40 @@ self: {
     ({ mkDerivation, base, template-haskell }:
      mkDerivation {
        pname = "template-haskell-compat-v0208";
-       version = "0.1.2.1";
-       sha256 = "1c8m1z46j6azvxd6hrr76rb7gq6bxfwg3j8m25p260hrss595c06";
+       version = "0.1.4";
+       sha256 = "0byc81m07v5a765vs4jpwgmgkf54c2n5yaqz8ava1sspmmf2p9fh";
        libraryHaskellDepends = [ base template-haskell ];
        description = "A backwards compatibility layer for Template Haskell newer than 2.8";
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "template-haskell-compat-v0208_0_1_4" = callPackage
+  "template-haskell-compat-v0208_0_1_5" = callPackage
     ({ mkDerivation, base, template-haskell }:
      mkDerivation {
        pname = "template-haskell-compat-v0208";
-       version = "0.1.4";
-       sha256 = "0byc81m07v5a765vs4jpwgmgkf54c2n5yaqz8ava1sspmmf2p9fh";
+       version = "0.1.5";
+       sha256 = "1s1ynp568i7y5v062kliia46c3cmaijslf2hlmdkkqfdvf8fmzp1";
        libraryHaskellDepends = [ base template-haskell ];
        description = "A backwards compatibility layer for Template Haskell newer than 2.8";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "template-haskell-optics" = callPackage
+    ({ mkDerivation, base, containers, optics-core, template-haskell }:
+     mkDerivation {
+       pname = "template-haskell-optics";
+       version = "0.1";
+       sha256 = "019njh3w321dsyx892snxl16arypf04mw415s8f1771wcd3l4q8n";
+       libraryHaskellDepends = [
+         base containers optics-core template-haskell
+       ];
+       description = "Optics for template-haskell types";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "template-haskell-util" = callPackage
     ({ mkDerivation, base, GenericPretty, ghc-prim, template-haskell }:
      mkDerivation {
@@ -254732,6 +255314,27 @@ self: {
        broken = true;
      }) {};
 
+  "timezone-detect" = callPackage
+    ({ mkDerivation, base, directory, hspec, hspec-discover, time
+     , timezone-olson, timezone-series
+     }:
+     mkDerivation {
+       pname = "timezone-detect";
+       version = "0.3.0.0";
+       sha256 = "10pv88wmz8zqr1h3zh66skbkma2zz3gvwjaalnpfz5ii2dgl27yy";
+       libraryHaskellDepends = [
+         base time timezone-olson timezone-series
+       ];
+       testHaskellDepends = [
+         base directory hspec time timezone-olson timezone-series
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Haskell bindings for the zone-detect C library; plus tz-aware utils";
+       license = stdenv.lib.licenses.gpl2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "timezone-olson" = callPackage
     ({ mkDerivation, base, binary, bytestring, extensible-exceptions
      , time, timezone-series
@@ -255293,8 +255896,8 @@ self: {
      }:
      mkDerivation {
        pname = "tlynx";
-       version = "0.3.4";
-       sha256 = "10nn1043z5gzm0zrw5z0fxalwrh48wvxlwq65nanjajwb612w1p4";
+       version = "0.4.0";
+       sha256 = "1gsyyw8bvlc15z6hy7cd9w6v6wgjg9ra19w9vp6kajlyzyw5j1kw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -261165,8 +261768,8 @@ self: {
      }:
      mkDerivation {
        pname = "typesafe-precure";
-       version = "0.7.7.1";
-       sha256 = "0yjw4fm7n7qdb9rib7q5nirnw0cdvqy2g05lidxw5pkgdbi9np3m";
+       version = "0.7.8.1";
+       sha256 = "060fg6s7yjasimhx7nz4cxymlsxdv9pshs4sv83vwj31nw33kr7b";
        libraryHaskellDepends = [
          aeson aeson-pretty autoexporter base bytestring dlist
          monad-skeleton template-haskell text th-data-compat
@@ -262750,6 +263353,54 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "uniqueness-periods-vector" = callPackage
+    ({ mkDerivation, base, vector }:
+     mkDerivation {
+       pname = "uniqueness-periods-vector";
+       version = "0.1.0.0";
+       sha256 = "0c5ywfpcy71dqxsvsxk1xkmnhaa9fsnaypr6rnv1igiv1qc8fqkc";
+       libraryHaskellDepends = [ base vector ];
+       description = "Generalization of the uniqueness-periods and uniqueness-periods-general packages functionality";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "uniqueness-periods-vector-common" = callPackage
+    ({ mkDerivation, base, vector }:
+     mkDerivation {
+       pname = "uniqueness-periods-vector-common";
+       version = "0.1.0.0";
+       sha256 = "0lkkanqi2l2c6fmf1nasb6kigdp0gfi9qncsl07i8jmbk6wxppss";
+       libraryHaskellDepends = [ base vector ];
+       description = "Generalization of the dobutokO-poetry-general package functionality";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "uniqueness-periods-vector-general" = callPackage
+    ({ mkDerivation, base, print-info, uniqueness-periods-vector-common
+     , vector
+     }:
+     mkDerivation {
+       pname = "uniqueness-periods-vector-general";
+       version = "0.2.0.0";
+       sha256 = "0aqjj08y6jf03dcwcvshxm9vzqyk6i05758c994d0xz23pzwi2lx";
+       libraryHaskellDepends = [
+         base print-info uniqueness-periods-vector-common vector
+       ];
+       description = "Generalization of the functionality of the dobutokO-poetry-general-languages package";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "uniqueness-periods-vector-properties" = callPackage
+    ({ mkDerivation, base, uniqueness-periods-vector, vector }:
+     mkDerivation {
+       pname = "uniqueness-periods-vector-properties";
+       version = "0.1.1.1";
+       sha256 = "17bwchd6acnr457rhkrqsanl67nps2d6722ap781havnsvqlff0x";
+       libraryHaskellDepends = [ base uniqueness-periods-vector vector ];
+       description = "Metrics for the maximum element for the uniqueness-periods-vector packages family";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "unit" = callPackage
     ({ mkDerivation, base, hspec }:
      mkDerivation {
@@ -265261,6 +265912,8 @@ self: {
        ];
        description = "Reversable and secure encoding of object ids as uuids";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "uuid-le" = callPackage
@@ -266676,15 +267329,19 @@ self: {
      }) {};
 
   "vector-fftw" = callPackage
-    ({ mkDerivation, base, fftw, primitive, storable-complex, vector }:
+    ({ mkDerivation, base, fftw, primitive, QuickCheck
+     , storable-complex, test-framework, test-framework-quickcheck2
+     , vector
+     }:
      mkDerivation {
        pname = "vector-fftw";
-       version = "0.1.3.8";
-       sha256 = "0xlr4566hh6lnpinzrk623a96jnb8mp8mq6cymlsl8y38qx36jp6";
-       revision = "3";
-       editedCabalFile = "0wh7sa71gl1ssqqd4axyvwxlmkfb0n3hm90imjvg0vsp7g2y7zs0";
+       version = "0.1.4.0";
+       sha256 = "1ns5jhdx585s3jmcslscibf7ryaya3ca1shc4ysrikrp1mzx1jky";
        libraryHaskellDepends = [ base primitive storable-complex vector ];
        librarySystemDepends = [ fftw ];
+       testHaskellDepends = [
+         base QuickCheck test-framework test-framework-quickcheck2 vector
+       ];
        description = "A binding to the fftw library for one-dimensional vectors";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -272817,6 +273474,26 @@ self: {
        license = stdenv.lib.licenses.gpl3;
      }) {};
 
+  "witherable_0_3_2" = callPackage
+    ({ mkDerivation, base, base-orphans, containers, hashable
+     , monoidal-containers, transformers, transformers-compat
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "witherable";
+       version = "0.3.2";
+       sha256 = "1iqf3kc9h599lbiym8rf9b4fhj31lqwm1cxqz6x02q9dxyrcprmi";
+       revision = "1";
+       editedCabalFile = "01mprffm41km3pm5nlpsp2ig2izgl6ll9ylrym3dg01f9609aa0z";
+       libraryHaskellDepends = [
+         base base-orphans containers hashable monoidal-containers
+         transformers transformers-compat unordered-containers vector
+       ];
+       description = "filterable traversable";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "witherable" = callPackage
     ({ mkDerivation, base, base-orphans, containers, hashable, lens
      , monoidal-containers, transformers, transformers-compat
@@ -275051,6 +275728,29 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "xeno_0_4_2" = callPackage
+    ({ mkDerivation, array, base, bytestring, bytestring-mmap, bzlib
+     , criterion, deepseq, filepath, ghc-prim, hexml, hexpat, hspec, mtl
+     , mutable-containers, time, vector, weigh, xml
+     }:
+     mkDerivation {
+       pname = "xeno";
+       version = "0.4.2";
+       sha256 = "0dvjzh7yyijwy2d6215wlxlln9h0ng6bnqasfh38prp6sllxk25j";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         array base bytestring deepseq mtl mutable-containers vector
+       ];
+       testHaskellDepends = [ base bytestring hexml hspec ];
+       benchmarkHaskellDepends = [
+         base bytestring bytestring-mmap bzlib criterion deepseq filepath
+         ghc-prim hexml hexpat time weigh xml
+       ];
+       description = "A fast event-based XML parser in pure Haskell";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "xenstore" = callPackage
     ({ mkDerivation, base, bytestring, cereal, mtl, network }:
      mkDerivation {
@@ -279652,6 +280352,30 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "yesod-page-cursor" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, hspec
+     , hspec-expectations-lifted, http-link-header, http-types, lens
+     , lens-aeson, monad-logger, mtl, network-uri, persistent
+     , persistent-sqlite, persistent-template, scientific, text, time
+     , unliftio, unliftio-core, wai-extra, yesod, yesod-core, yesod-test
+     }:
+     mkDerivation {
+       pname = "yesod-page-cursor";
+       version = "1.0.0.1";
+       sha256 = "0grh7pnzhxicanf2ipnb0ivq5lal9h42jd2kbbypgxp7qhvp69g3";
+       libraryHaskellDepends = [
+         aeson base bytestring containers http-link-header network-uri text
+         unliftio yesod-core
+       ];
+       testHaskellDepends = [
+         aeson base bytestring hspec hspec-expectations-lifted
+         http-link-header http-types lens lens-aeson monad-logger mtl
+         persistent persistent-sqlite persistent-template scientific text
+         time unliftio unliftio-core wai-extra yesod yesod-core yesod-test
+       ];
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "yesod-paginate" = callPackage
     ({ mkDerivation, base, template-haskell, yesod }:
      mkDerivation {
@@ -281497,8 +282221,8 @@ self: {
      }:
      mkDerivation {
        pname = "z3";
-       version = "408.1";
-       sha256 = "1r54d289rdfvxqk0774hhh0x2kj8zsh7graahqwwp76r911jb8bp";
+       version = "408.2";
+       sha256 = "1fjf9pfj3fhhcd0ak8rm6m5im2il8n5d21z8yv5c32xnsgj7z89a";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base containers transformers ];
diff --git a/pkgs/development/haskell-modules/non-hackage-packages.nix b/pkgs/development/haskell-modules/non-hackage-packages.nix
index 8801f1f1ddd86..dc6dbe6506142 100644
--- a/pkgs/development/haskell-modules/non-hackage-packages.nix
+++ b/pkgs/development/haskell-modules/non-hackage-packages.nix
@@ -23,4 +23,13 @@ self: super: {
   # both are auto-generated by pkgs/development/tools/haskell/haskell-language-server/update.sh
   haskell-language-server = self.callPackage ../tools/haskell/haskell-language-server { };
   hls-ghcide = self.callPackage ../tools/haskell/haskell-language-server/hls-ghcide.nix { };
+
+  # cabal2nix --revision <rev> https://github.com/hasura/ci-info-hs.git
+  ci-info = self.callPackage ../misc/haskell/hasura/ci-info {};
+  # cabal2nix --revision <rev> https://github.com/hasura/pg-client-hs.git
+  pg-client = self.callPackage ../misc/haskell/hasura/pg-client {};
+  # cabal2nix --revision <rev> https://github.com/hasura/graphql-parser-hs.git
+  graphql-parser = self.callPackage ../misc/haskell/hasura/graphql-parser {};
+  # cabal2nix  --subpath server --maintainer offline --no-check --revision 1.2.1 https://github.com/hasura/graphql-engine.git
+  graphql-engine = self.callPackage ../misc/haskell/hasura/graphql-engine {};
 }
diff --git a/pkgs/development/haskell-modules/patches/hasura-884-compat.patch b/pkgs/development/haskell-modules/patches/hasura-884-compat.patch
new file mode 100644
index 0000000000000..bc000ba9cca21
--- /dev/null
+++ b/pkgs/development/haskell-modules/patches/hasura-884-compat.patch
@@ -0,0 +1,26 @@
+diff --git server/src-lib/Hasura/GraphQL/Transport/WebSocket/Server.hs server/src-lib/Hasura/GraphQL/Transport/WebSocket/Server.hs
+index 6cb70cf0..0c3789cd 100644
+--- server/src-lib/Hasura/GraphQL/Transport/WebSocket/Server.hs
++++ server/src-lib/Hasura/GraphQL/Transport/WebSocket/Server.hs
+@@ -45,7 +45,7 @@ import           GHC.AssertNF
+ import qualified ListT
+ import qualified Network.WebSockets                   as WS
+ import qualified StmContainers.Map                    as STMMap
+-import qualified System.IO.Error                      as E
++--import qualified System.IO.Error                      as E
+ 
+ import qualified Hasura.Logging                       as L
+ 
+@@ -287,12 +287,6 @@ createServerApp (WSServer logger@(L.Logger writeLog) serverStatus) wsHandlers !p
+           let rcv = forever $ do
+                 -- Process all messages serially (important!), in a separate thread:
+                 msg <- liftIO $ 
+-                  -- Re-throw "receiveloop: resource vanished (Connection reset by peer)" :
+-                  --   https://github.com/yesodweb/wai/blob/master/warp/Network/Wai/Handler/Warp/Recv.hs#L112 
+-                  -- as WS exception signaling cleanup below. It's not clear why exactly this gets 
+-                  -- raised occasionally; I suspect an equivalent handler is missing from WS itself.
+-                  -- Regardless this should be safe:
+-                  handleJust (guard . E.isResourceVanishedError) (\()-> throw WS.ConnectionClosed) $
+                     WS.receiveData conn
+                 writeLog $ WSLog wsId (EMessageReceived $ TBS.fromLBS msg) Nothing
+                 _hOnMessage wsHandlers wsConn msg
diff --git a/pkgs/development/interpreters/j/default.nix b/pkgs/development/interpreters/j/default.nix
index 8e6b434281eb1..c612135cd184c 100644
--- a/pkgs/development/interpreters/j/default.nix
+++ b/pkgs/development/interpreters/j/default.nix
@@ -1,16 +1,16 @@
 { stdenv, fetchFromGitHub, readline, libedit, bc
-, avxSupport ? false
+, avxSupport ? stdenv.hostPlatform.avxSupport
 }:
 
 stdenv.mkDerivation rec {
   pname = "j";
   version = "901";
-  jtype = "release-e";
+  jtype = "release-f";
   src = fetchFromGitHub {
     owner = "jsoftware";
     repo = "jsource";
     rev = "j${version}-${jtype}";
-    sha256 = "13ky37rrl6mc66fckrdnrw64gmvq1qlv6skzd513lab4d0wigshw";
+    sha256 = "1776021m0j1aanzwg60by83n53pw7i6afd5wplfzczwk8bywax4p";
     name = "jsource";
   };
 
diff --git a/pkgs/development/interpreters/luajit/2.0.nix b/pkgs/development/interpreters/luajit/2.0.nix
index e96a7c604c70d..afb5dd9c5b641 100644
--- a/pkgs/development/interpreters/luajit/2.0.nix
+++ b/pkgs/development/interpreters/luajit/2.0.nix
@@ -1,10 +1,10 @@
 { self, callPackage, lib }:
 callPackage ./default.nix {
   inherit self;
-  version = "2.0.5-2020-08-05";
-  rev = "2211f6f";
+  version = "2.0.5-2020-08-09";
+  rev = "e296f56";
   isStable = true;
-  sha256 = "01adxmknq2xyb3w9sn8ilnar8181h7ksd9i80yrsbwzix5lwkn6m";
+  sha256 = "0g4wvpmmrxj8ir6yi86gg93khy8ri7x4w091jihpxsmn670da21f";
   extraMeta = { # this isn't precise but it at least stops the useless Hydra build
     platforms = with lib; filter (p: p != "aarch64-linux")
       (platforms.linux ++ platforms.darwin);
diff --git a/pkgs/development/interpreters/luajit/2.1.nix b/pkgs/development/interpreters/luajit/2.1.nix
index f08bbd0e97242..cb0320c7c7cfd 100644
--- a/pkgs/development/interpreters/luajit/2.1.nix
+++ b/pkgs/development/interpreters/luajit/2.1.nix
@@ -1,8 +1,8 @@
 { self, callPackage }:
 callPackage ./default.nix {
   inherit self;
-  version = "2.1.0-2020-08-05";
-  rev = "10ddae7";
+  version = "2.1.0-2020-08-27";
+  rev = "ff1e72a";
   isStable = false;
-  sha256 = "1lmjs0gz9vgbhh5f45jvvibpj7f3sz81r8cz4maln9yhc67f2zmk";
+  sha256 = "0rlh5y48jbxnamr3a5i3szzh7y9ycvq052rw6m82gdhrb1jlamdz";
 }
diff --git a/pkgs/development/interpreters/python/default.nix b/pkgs/development/interpreters/python/default.nix
index 76963587c20d9..db60c0ead6f81 100644
--- a/pkgs/development/interpreters/python/default.nix
+++ b/pkgs/development/interpreters/python/default.nix
@@ -108,9 +108,9 @@ in {
       major = "3";
       minor = "9";
       patch = "0";
-      suffix = "b5";
+      suffix = "rc1";
     };
-    sha256 = "0r0m82srq4z44dahczd1cv6wgmxcpqbn5dyd8czcpk2pp9ydgqbc";
+    sha256 = "0w6wvyy9fbvfvrmhvmlb5gq18haagywk9hjkp1knjdarfczag9zv";
     inherit (darwin) configd;
     inherit passthruFun;
   };
diff --git a/pkgs/development/interpreters/rakudo/default.nix b/pkgs/development/interpreters/rakudo/default.nix
index fb33743dc9ac2..0c708cd3171e1 100644
--- a/pkgs/development/interpreters/rakudo/default.nix
+++ b/pkgs/development/interpreters/rakudo/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "rakudo";
-  version = "2020.08.1";
+  version = "2020.08.2";
 
   src = fetchurl {
     url    = "https://www.rakudo.org/dl/rakudo/rakudo-${version}.tar.gz";
-    sha256 = "1jwlqppm2g6ivzpipkcyihsxzsii3qyx1f35n7wj5dsf99b3hkfm";
+    sha256 = "16qsq6alvk2x44x39j2fzxigvm5cvmz85i0nkjcw0wz29yyf8lch";
   };
 
   buildInputs = [ icu zlib gmp perl ];
diff --git a/pkgs/development/interpreters/rakudo/nqp.nix b/pkgs/development/interpreters/rakudo/nqp.nix
index 93b42d2b8e1da..3f5f7afcfed48 100644
--- a/pkgs/development/interpreters/rakudo/nqp.nix
+++ b/pkgs/development/interpreters/rakudo/nqp.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "nqp";
-  version = "2020.08.1";
+  version = "2020.08.2";
 
   src = fetchurl {
-    url    = "https://github.com/perl6/nqp/releases/download/${version}/nqp-${version}.tar.gz";
-    sha256 = "0pxmg22dx6rhfgrxq4gbwqf6d2nahw6iprjvrg8brkbcbyj3ryhd";
+    url    = "https://github.com/raku/nqp/releases/download/${version}/nqp-${version}.tar.gz";
+    sha256 = "14zr1swprxl284k0h1w72pcypj24sga15170ylaqjb8wxy8h1mqw";
   };
 
   buildInputs = [ perl ];
diff --git a/pkgs/development/libraries/alembic/default.nix b/pkgs/development/libraries/alembic/default.nix
index 1157142e5b82d..1bb79a64ba104 100644
--- a/pkgs/development/libraries/alembic/default.nix
+++ b/pkgs/development/libraries/alembic/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec
 {
   pname = "alembic";
-  version = "1.7.13";
+  version = "1.7.14";
 
   src = fetchFromGitHub {
     owner = "alembic";
     repo = "alembic";
     rev = version;
-    sha256 = "01j4fsq917jckdh16nvmc35xiy11j4g1sc17y6g8qxa00s2sfsa4";
+    sha256 = "0yri063v7j5jsvqbmlwr0hf2d1a55dgc1nj85rf10sxqhijwzk55";
   };
 
   outputs = [ "bin" "dev" "out" "lib" ];
diff --git a/pkgs/development/libraries/appindicator-sharp/default.nix b/pkgs/development/libraries/appindicator-sharp/default.nix
new file mode 100644
index 0000000000000..9eff4e3895ba1
--- /dev/null
+++ b/pkgs/development/libraries/appindicator-sharp/default.nix
@@ -0,0 +1,43 @@
+{
+  autoreconfHook,
+  fetchFromGitHub,
+  lib,
+  libappindicator,
+  mono,
+  gtk-sharp-3_0,
+  pkg-config,
+  stdenv,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "appindicator-sharp";
+  version = "5a79cde93da6d68a4b1373f1ce5796c3c5fe1b37";
+
+  src = fetchFromGitHub {
+    owner = "stsundermann";
+    repo = "appindicator-sharp";
+    rev = version;
+    sha256 = "sha256:1i0vqbp05l29f5v9ygp7flm4s05pcnn5ivl578mxmhb51s7ncw6l";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    mono
+    pkg-config
+  ];
+
+  buildInputs = [
+    gtk-sharp-3_0
+    libappindicator
+  ];
+
+  ac_cv_path_MDOC = "no";
+  installFlagsArray = ["GAPIXMLDIR=/tmp/gapixml"];
+
+  meta = {
+    description = "Bindings for appindicator using gobject-introspection";
+    homepage = "https://github.com/stsundermann/appindicator-sharp";
+    license = lib.licenses.lgpl3Only;
+    maintainers = with lib.maintainers; [ kevincox ];
+  };
+}
diff --git a/pkgs/development/libraries/appstream/default.nix b/pkgs/development/libraries/appstream/default.nix
index 21bbf8c1bc745..45f27b38a63d3 100644
--- a/pkgs/development/libraries/appstream/default.nix
+++ b/pkgs/development/libraries/appstream/default.nix
@@ -1,18 +1,20 @@
 { stdenv, fetchFromGitHub, meson, ninja, pkgconfig, gettext
 , xmlto, docbook_xsl, docbook_xml_dtd_45, libxslt
 , libstemmer, glib, xapian, libxml2, libyaml, gobject-introspection
-, pcre, itstool, gperf, vala
+, pcre, itstool, gperf, vala, lmdb, libsoup
 }:
 
 stdenv.mkDerivation rec {
   pname = "appstream";
-  version = "0.12.6";
+  version = "0.12.11";
+
+  outputs = [ "out" "dev" ];
 
   src = fetchFromGitHub {
     owner  = "ximion";
     repo   = "appstream";
-    rev    = "APPSTREAM_${stdenv.lib.replaceStrings ["."] ["_"] version}";
-    sha256 = "0hbl26aw3g2hag7z4di9z59qz057qcywrxpnnmp86z7rngvjbqpx";
+    rev    = "v${version}";
+    sha256 = "sha256-bCDyMwQdn9Csxs2hy4dm+LjtxK4+YBK6yDkAdhu1QVU=";
   };
 
   nativeBuildInputs = [
@@ -21,7 +23,7 @@ stdenv.mkDerivation rec {
     gobject-introspection itstool vala
   ];
 
-  buildInputs = [ libstemmer pcre glib xapian libxml2 libyaml gperf ];
+  buildInputs = [ libstemmer pcre glib xapian libxml2 libyaml gperf lmdb libsoup ];
 
   prePatch = ''
     substituteInPlace meson.build \
diff --git a/pkgs/development/libraries/aspell/dictionaries.nix b/pkgs/development/libraries/aspell/dictionaries.nix
index fac55b60651ee..32405d6a52519 100644
--- a/pkgs/development/libraries/aspell/dictionaries.nix
+++ b/pkgs/development/libraries/aspell/dictionaries.nix
@@ -694,18 +694,18 @@ in rec {
 
   pt_BR = buildOfficialDict {
     language = "pt_BR";
-    version = "20090702-0";
+    version = "20131030-12-0";
     fullName = "Brazilian Portuguese";
     filename = "aspell6";
-    sha256 = "1y09lx9zf2rnp55r16b2vgj953l3538z1vaqgflg9mdvm555bz3p";
+    sha256 = "1xqlpk21s93c6blkdnpk7l62q9fxjvzdv2x86chl8p2x1gdrj3gb";
   };
 
   pt_PT = buildOfficialDict {
     language = "pt_PT";
-    version = "20070510-0";
+    version = "20190329-1-0";
     fullName = "Portuguese";
     filename = "aspell6";
-    sha256 = "1mnr994cwlag6shy8865ky99lymysiln07mbldcncahg90dagdxq";
+    sha256 = "0ld0d0ily4jqifjfsxfv4shbicz6ymm2gk56fq9gbzra1j4qnw75";
   };
 
   qu = buildOfficialDict {
diff --git a/pkgs/development/libraries/ayatana-ido/default.nix b/pkgs/development/libraries/ayatana-ido/default.nix
index 41e4c92e56b68..66ead87daa074 100644
--- a/pkgs/development/libraries/ayatana-ido/default.nix
+++ b/pkgs/development/libraries/ayatana-ido/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ayatana-ido";
-  version = "0.4.90";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "AyatanaIndicators";
     repo = pname;
     rev = version;
-    sha256 = "02vqjryni96zzrpkq5d7kvgw7nf252d2fm2xq8fklvvb2vz3fa0w";
+    sha256 = "1jmdvvgrgicpnpnygc24qcisqb9y026541gb6lw6fwapvc9aj73p";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook gtk-doc vala ];
diff --git a/pkgs/development/libraries/dlib/default.nix b/pkgs/development/libraries/dlib/default.nix
index 3f59368c278bb..43ac2530cc131 100644
--- a/pkgs/development/libraries/dlib/default.nix
+++ b/pkgs/development/libraries/dlib/default.nix
@@ -2,7 +2,7 @@
 , guiSupport ? false, libX11
 
   # see http://dlib.net/compile.html
-, avxSupport ? true
+, avxSupport ? stdenv.hostPlatform.avxSupport
 , cudaSupport ? true
 }:
 
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     rm -rf dlib/external
   '';
 
-  cmakeFlags = [ 
+  cmakeFlags = [
     "-DUSE_DLIB_USE_CUDA=${if cudaSupport then "1" else "0"}"
     "-DUSE_AVX_INSTRUCTIONS=${if avxSupport then "yes" else "no"}" ];
 
diff --git a/pkgs/development/libraries/ethash/default.nix b/pkgs/development/libraries/ethash/default.nix
index 3522ff231ab18..749005e09a988 100644
--- a/pkgs/development/libraries/ethash/default.nix
+++ b/pkgs/development/libraries/ethash/default.nix
@@ -3,14 +3,14 @@
 
 stdenv.mkDerivation rec {
   pname = "ethash";
-  version = "0.4.4";
+  version = "0.5.2";
 
   src =
     fetchFromGitHub {
       owner = "chfast";
       repo = "ethash";
       rev = "v${version}";
-      sha256 = "1gfs8s4nv2ikkn3rhzifr0dx5m0c1kpnhmzf8x6zlwhw3qwlc98w";
+      sha256 = "0shr3m33raxy9j2mpm3q9mdbchs3nhgfaywidyxgmwqaiw1xpyif";
     };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/exiv2/default.nix b/pkgs/development/libraries/exiv2/default.nix
index 02d3f1da3e698..e7c41bcedc5e6 100644
--- a/pkgs/development/libraries/exiv2/default.nix
+++ b/pkgs/development/libraries/exiv2/default.nix
@@ -15,22 +15,21 @@
 
 stdenv.mkDerivation rec {
   pname = "exiv2";
-  version = "0.27.2";
+  version = "0.27.3";
 
   src = fetchFromGitHub {
     owner = "exiv2";
     repo  = "exiv2";
     rev = "v${version}";
-    sha256 = "0n8il52yzbmvbkryrl8waz7hd9a2fdkw8zsrmhyh63jlvmmc31gf";
+    sha256 = "0d294yhcdw8ziybyd4rp5hzwknzik2sm0cz60ff7fljacv75bjpy";
   };
 
   patches = [
-    # included in next release
+    # Fix aarch64 build https://github.com/Exiv2/exiv2/pull/1271
     (fetchpatch {
-      name = "cve-2019-20421.patch";
-      url = "https://github.com/Exiv2/exiv2/commit/a82098f4f90cd86297131b5663c3dec6a34470e8.patch";
-      sha256 = "16r19qb9l5j43ixm5jqid9sdv5brlkk1wq0w79rm5agxq4kblfyc";
-      excludes = [ "tests/bugfixes/github/test_issue_1011.py" "test/data/Jp2Image_readMetadata_loop.poc" ];
+      name = "cmake-fix-aarch64.patch";
+      url = "https://github.com/Exiv2/exiv2/commit/bbe0b70840cf28b7dd8c0b7e9bb1b741aeda2efd.patch";
+      sha256 = "13zw1mn0ag0jrz73hqjhdsh1img7jvj5yddip2k2sb5phy04rzfx";
     })
   ];
 
@@ -40,6 +39,7 @@ stdenv.mkDerivation rec {
     # the cmake package does not handle absolute CMAKE_INSTALL_INCLUDEDIR correctly
     # (setting it to an absolute path causes include files to go to $out/$out/include,
     #  because the absolute path is interpreted with root at $out).
+    # Can probably be removed once https://github.com/Exiv2/exiv2/pull/1263 is merged.
     "-DCMAKE_INSTALL_INCLUDEDIR=include"
     "-DCMAKE_INSTALL_LIBDIR=lib"
   ];
@@ -77,7 +77,6 @@ stdenv.mkDerivation rec {
   preCheck = ''
     patchShebangs ../test/
     mkdir ../test/tmp
-    export LD_LIBRARY_PATH="$(realpath ../build/lib)"
 
     ${stdenv.lib.optionalString (stdenv.isAarch64 || stdenv.isAarch32) ''
       # Fix tests on arm
@@ -86,7 +85,6 @@ stdenv.mkDerivation rec {
     ''}
 
     ${stdenv.lib.optionalString stdenv.isDarwin ''
-      export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH''${DYLD_LIBRARY_PATH:+:}`pwd`/lib
       # Removing tests depending on charset conversion
       substituteInPlace ../test/Makefile --replace "conversions.sh" ""
       rm -f ../tests/bugfixes/redmine/test_issue_460.py
@@ -94,10 +92,6 @@ stdenv.mkDerivation rec {
      ''}
   '';
 
-  postCheck = ''
-    (cd ../tests/ && python3 runner.py)
-  '';
-
   # With CMake we have to enable samples or there won't be
   # a tests target. This removes them.
   postInstall = ''
@@ -108,7 +102,7 @@ stdenv.mkDerivation rec {
     )
   '';
 
-  # Fix CMake export paths.
+  # Fix CMake export paths. Can be removed once https://github.com/Exiv2/exiv2/pull/1263 is merged.
   postFixup = ''
     sed -i "$dev/lib/cmake/exiv2/exiv2Config.cmake" \
         -e "/INTERFACE_INCLUDE_DIRECTORIES/ s@\''${_IMPORT_PREFIX}@$dev@" \
diff --git a/pkgs/development/libraries/fflas-ffpack/default.nix b/pkgs/development/libraries/fflas-ffpack/default.nix
index bc84039a9aa2c..23b31fe439fdc 100644
--- a/pkgs/development/libraries/fflas-ffpack/default.nix
+++ b/pkgs/development/libraries/fflas-ffpack/default.nix
@@ -31,19 +31,21 @@ stdenv.mkDerivation rec {
   configureFlags = [
     "--with-blas-libs=-lcblas"
     "--with-lapack-libs=-llapacke"
-  ] ++ stdenv.lib.optionals stdenv.isx86_64 {
+  ] ++ stdenv.lib.optionals stdenv.isx86_64 [
     # disable SIMD instructions (which are enabled *when available* by default)
     # for now we need to be careful to disable *all* relevant versions of an instruction set explicitly (https://github.com/linbox-team/fflas-ffpack/issues/284)
-    default        = [ "--disable-sse3" "--disable-ssse3" "--disable-sse41" "--disable-sse42" "--disable-avx" "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl" "--disable-fma" "--disable-fma4" ];
-    westmere       = [                                                                        "--disable-avx" "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl" "--disable-fma" "--disable-fma4" ];
-    sandybridge    = [                                                                                        "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl" "--disable-fma" "--disable-fma4" ];
-    ivybridge      = [                                                                                        "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl" "--disable-fma" "--disable-fma4" ];
-    haswell        = [                                                                                                                                                                       "--disable-fma4" ];
-    broadwell      = [                                                                                                                                                                       "--disable-fma4" ];
-    skylake        = [                                                                                                                                                                       "--disable-fma4" ];
-    skylake-avx512 = [                                                                                                                                                                       "--disable-fma4" ];
-  }.${stdenv.hostPlatform.platform.gcc.arch or "default"};
-
+    "--${if stdenv.hostPlatform.sse3Support   then "enable" else "disable"}-sse3"
+    "--${if stdenv.hostPlatform.ssse3Support  then "enable" else "disable"}-ssse3"
+    "--${if stdenv.hostPlatform.sse4_1Support then "enable" else "disable"}-sse41"
+    "--${if stdenv.hostPlatform.sse4_2Support then "enable" else "disable"}-sse42"
+    "--${if stdenv.hostPlatform.avxSupport    then "enable" else "disable"}-avx"
+    "--${if stdenv.hostPlatform.avx2Support   then "enable" else "disable"}-avx2"
+    "--${if stdenv.hostPlatform.avx512Support then "enable" else "disable"}-avx512f"
+    "--${if stdenv.hostPlatform.avx512Support then "enable" else "disable"}-avx512dq"
+    "--${if stdenv.hostPlatform.avx512Support then "enable" else "disable"}-avx512vl"
+    "--${if stdenv.hostPlatform.fmaSupport    then "enable" else "disable"}-fma"
+    "--${if stdenv.hostPlatform.fma4Support   then "enable" else "disable"}-fma4"
+  ];
   doCheck = true;
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/g2o/default.nix b/pkgs/development/libraries/g2o/default.nix
index 7167112b6bd19..675d994cf0e6b 100644
--- a/pkgs/development/libraries/g2o/default.nix
+++ b/pkgs/development/libraries/g2o/default.nix
@@ -27,16 +27,13 @@ mkDerivation rec {
     # Detection script is broken
     "-DQGLVIEWER_INCLUDE_DIR=${libqglviewer}/include/QGLViewer"
     "-DG2O_BUILD_EXAMPLES=OFF"
-  ] ++ lib.optionals stdenv.isx86_64 ([ "-DDO_SSE_AUTODETECT=OFF" ] ++ {
-    default        = [ "-DDISABLE_SSE3=ON" "-DDISABLE_SSE4_1=ON" "-DDISABLE_SSE4_2=ON" "-DDISABLE_SSE4_A=ON" ];
-    westmere       = [                                                                 "-DDISABLE_SSE4_A=ON" ];
-    sandybridge    = [                                                                 "-DDISABLE_SSE4_A=ON" ];
-    ivybridge      = [                                                                 "-DDISABLE_SSE4_A=ON" ];
-    haswell        = [                                                                 "-DDISABLE_SSE4_A=ON" ];
-    broadwell      = [                                                                 "-DDISABLE_SSE4_A=ON" ];
-    skylake        = [                                                                 "-DDISABLE_SSE4_A=ON" ];
-    skylake-avx512 = [                                                                 "-DDISABLE_SSE4_A=ON" ];
-  }.${stdenv.hostPlatform.platform.gcc.arch or "default"});
+  ] ++ lib.optionals stdenv.isx86_64 [
+    "-DDO_SSE_AUTODETECT=OFF"
+    "-DDISABLE_SSE3=${  if stdenv.hostPlatform.sse3Support   then "OFF" else "ON"}"
+    "-DDISABLE_SSE4_1=${if stdenv.hostPlatform.sse4_1Support then "OFF" else "ON"}"
+    "-DDISABLE_SSE4_2=${if stdenv.hostPlatform.sse4_2Support then "OFF" else "ON"}"
+    "-DDISABLE_SSE4_A=${if stdenv.hostPlatform.sse4_aSupport then "OFF" else "ON"}"
+  ];
 
   meta = with lib; {
     description = "A General Framework for Graph Optimization";
diff --git a/pkgs/development/libraries/gensio/default.nix b/pkgs/development/libraries/gensio/default.nix
index 169506e66cc02..daca5fc0bdb1b 100644
--- a/pkgs/development/libraries/gensio/default.nix
+++ b/pkgs/development/libraries/gensio/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gensio";
-  version = "2.1.3";
+  version = "2.1.4";
 
   src = fetchFromGitHub {
     owner = "cminyard";
     repo = "${pname}";
     rev = "v${version}";
-    sha256 = "0sdqv4j1jjjc2nxnd9h7r4w66bdjl5ksvfia4i4cjj7jfl0hhynl";
+    sha256 = "0c44qhhrknjl7sp94q34z7nv7bvnlqs8wzm385661liy4mnfn4dc";
   };
 
   configureFlags = [
diff --git a/pkgs/development/libraries/givaro/default.nix b/pkgs/development/libraries/givaro/default.nix
index fdaf518c6114f..78b6b08827077 100644
--- a/pkgs/development/libraries/givaro/default.nix
+++ b/pkgs/development/libraries/givaro/default.nix
@@ -17,17 +17,17 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     "--disable-optimization"
-  ] ++ stdenv.lib.optionals stdenv.isx86_64 {
+  ] ++ stdenv.lib.optionals stdenv.isx86_64 [
     # disable SIMD instructions (which are enabled *when available* by default)
-    default        = [ "--disable-sse3" "--disable-ssse3" "--disable-sse41" "--disable-sse42" "--disable-avx" "--disable-avx2" "--disable-fma" "--disable-fma4" ];
-    westmere       = [                                                                        "--disable-avx" "--disable-avx2" "--disable-fma" "--disable-fma4" ];
-    sandybridge    = [                                                                                        "--disable-avx2" "--disable-fma" "--disable-fma4" ];
-    ivybridge      = [                                                                                        "--disable-avx2" "--disable-fma" "--disable-fma4" ];
-    haswell        = [                                                                                                                         "--disable-fma4" ];
-    broadwell      = [                                                                                                                         "--disable-fma4" ];
-    skylake        = [                                                                                                                         "--disable-fma4" ];
-    skylake-avx512 = [                                                                                                                         "--disable-fma4" ];
-  }.${stdenv.hostPlatform.platform.gcc.arch or "default"};
+    "--${if stdenv.hostPlatform.sse3Support   then "enable" else "disable"}-sse3"
+    "--${if stdenv.hostPlatform.ssse3Support  then "enable" else "disable"}-ssse3"
+    "--${if stdenv.hostPlatform.sse4_1Support then "enable" else "disable"}-sse41"
+    "--${if stdenv.hostPlatform.sse4_2Support then "enable" else "disable"}-sse42"
+    "--${if stdenv.hostPlatform.avxSupport    then "enable" else "disable"}-avx"
+    "--${if stdenv.hostPlatform.avx2Support   then "enable" else "disable"}-avx2"
+    "--${if stdenv.hostPlatform.fmaSupport    then "enable" else "disable"}-fma"
+    "--${if stdenv.hostPlatform.fma4Support   then "enable" else "disable"}-fma4"
+  ];
 
   # On darwin, tests are linked to dylib in the nix store, so we need to make
   # sure tests run after installPhase.
diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix
index f7b0667741d38..cb2b8a11c0393 100644
--- a/pkgs/development/libraries/glib/default.nix
+++ b/pkgs/development/libraries/glib/default.nix
@@ -16,9 +16,6 @@ with stdenv.lib;
 assert stdenv.isLinux -> utillinuxMinimal != null;
 
 # TODO:
-# * Add gio-module-fam
-#     Problem: cyclic dependency on gamin
-#     Possible solution: build as a standalone module, set env. vars
 # * Make it build without python
 #     Problem: an example (test?) program needs it.
 #     Possible solution: disable compilation of this example somehow
diff --git a/pkgs/development/libraries/goffice/default.nix b/pkgs/development/libraries/goffice/default.nix
index 308a4db280067..46b40d00d7803 100644
--- a/pkgs/development/libraries/goffice/default.nix
+++ b/pkgs/development/libraries/goffice/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "goffice";
-  version = "0.10.47";
+  version = "0.10.48";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0xmigfdzvmlpa0fw79mf3xwchmxc8rlidryn5syv8bz7msmrb215";
+    sha256 = "1z6f3q8fxkd1ysqrwdxdi0844zqa00vjpf07gq8mh3kal8picfd4";
   };
 
   nativeBuildInputs = [ pkgconfig intltool ];
diff --git a/pkgs/development/libraries/grantlee/5/default.nix b/pkgs/development/libraries/grantlee/5/default.nix
index 09bf922248585..4eef2d407d8ea 100644
--- a/pkgs/development/libraries/grantlee/5/default.nix
+++ b/pkgs/development/libraries/grantlee/5/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib, copyPathsToStore, fetchurl, qtbase, qtscript, cmake }:
+{ mkDerivation, lib, fetchurl, qtbase, qtscript, cmake }:
 
 mkDerivation rec {
   pname = "grantlee";
@@ -14,7 +14,10 @@ mkDerivation rec {
   buildInputs = [ qtbase qtscript ];
   nativeBuildInputs = [ cmake ];
 
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./grantlee-nix-profiles.patch
+    ./grantlee-no-canonicalize-filepath.patch
+  ];
 
   outputs = [ "out" "dev" ];
   postFixup =
diff --git a/pkgs/development/libraries/grantlee/5/series b/pkgs/development/libraries/grantlee/5/series
deleted file mode 100644
index 9c4015a1c1979..0000000000000
--- a/pkgs/development/libraries/grantlee/5/series
+++ /dev/null
@@ -1,2 +0,0 @@
-grantlee-nix-profiles.patch
-grantlee-no-canonicalize-filepath.patch
diff --git a/pkgs/development/libraries/gstreamer/default.nix b/pkgs/development/libraries/gstreamer/default.nix
index 94d71760a7f86..e7e11db612981 100644
--- a/pkgs/development/libraries/gstreamer/default.nix
+++ b/pkgs/development/libraries/gstreamer/default.nix
@@ -23,7 +23,7 @@ rec {
     inherit gst-plugins-base gstreamer gst-plugins-bad;
   };
 
-  gst-validate = callPackage ./validate { inherit gst-plugins-base; };
+  gst-validate = callPackage ./validate { inherit gstreamer gst-plugins-base; };
 
   # note: gst-python is in ./python/default.nix - called under pythonPackages
 }
diff --git a/pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix b/pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix
deleted file mode 100644
index 804d80b8e1d17..0000000000000
--- a/pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, gst-plugins-base, gstreamer }:
-
-stdenv.mkDerivation rec {
-  name = "gnonlin-0.10.17";
-
-  src = fetchurl {
-    urls = [
-      "https://gstreamer.freedesktop.org/src/gnonlin/${name}.tar.bz2"
-      "mirror://gentoo/distfiles/${name}.tar.bz2"
-      ];
-    sha256 = "0dc9kvr6i7sh91cyhzlbx2bchwg84rfa4679ccppzjf0y65dv8p4";
-  };
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ gst-plugins-base gstreamer ];
-
-  meta = {
-    homepage = "https://gstreamer.freedesktop.org/modules/gnonlin.html";
-    description = "Gstreamer Non-Linear Multimedia Editing Plugins";
-    license = stdenv.lib.licenses.gpl2Plus;
-    platforms = stdenv.lib.platforms.unix;
-  };
-}
diff --git a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-bad/default.nix b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-bad/default.nix
deleted file mode 100644
index cd37a513184d4..0000000000000
--- a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-bad/default.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ fetchurl, stdenv, pkgconfig, glib, gstreamer, gst-plugins-base
-, libdvdnav, libdvdread, orc }:
-
-stdenv.mkDerivation rec {
-  name = "gst-plugins-bad-0.10.23";
-
-  src = fetchurl {
-    urls = [
-      "${meta.homepage}/src/gst-plugins-bad/${name}.tar.bz2"
-      "mirror://gentoo/distfiles/${name}.tar.bz2"
-      ];
-    sha256 = "148lw51dm6pgw8vc6v0fpvm7p233wr11nspdzmvq7bjp2cd7vbhf";
-  };
-
-  postInstall = ''
-    # Fixes CVE-2016-9447
-    # Does not actually impact NSF playback
-    rm -v $out/lib/gstreamer-0.10/libgstnsf.so
-  '';
-
-  buildInputs =
-    [ pkgconfig glib gstreamer gst-plugins-base libdvdnav libdvdread orc ];
-
-  enableParallelBuilding = true;
-
-  meta = {
-    homepage = "https://gstreamer.freedesktop.org";
-
-    description = "‘Bad’ (potentially low quality) plug-ins for GStreamer";
-
-    maintainers = [stdenv.lib.maintainers.raskin];
-    platforms = stdenv.lib.platforms.linux;
-
-    license = stdenv.lib.licenses.lgpl2Plus;
-  };
-}
diff --git a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/default.nix b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/default.nix
deleted file mode 100644
index a19e8ca6a5b4a..0000000000000
--- a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/default.nix
+++ /dev/null
@@ -1,62 +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;
-    # https://github.com/NixOS/nixpkgs/pull/91090#issuecomment-653753497
-    broken = true;
-  };
-}
diff --git a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/gcc-4.9.patch b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/gcc-4.9.patch
deleted file mode 100644
index fd9f6ea240d28..0000000000000
--- a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/gcc-4.9.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-https://bugzilla.gnome.org/show_bug.cgi?id=670690
-
-From 9bd5a7ae5435469c3557a3d70e762791cb3dc5c7 Mon Sep 17 00:00:00 2001
-From: Antoine Jacoutot <ajacoutot@gnome.org>
-Date: Mon, 20 Jan 2014 15:44:09 +0100
-Subject: [PATCH] audioresample: fix build on BSD
-
-On i386, EMMINTRIN is defined but not usable without sse so check for
-__SSE__ and __SSE2__ as well.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=670690
----
- gst/audioresample/resample.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/gst/audioresample/resample.c b/gst/audioresample/resample.c
-index 98d006c..481fa01 100644
---- a/gst/audioresample/resample.c
-+++ b/gst/audioresample/resample.c
-@@ -77,13 +77,13 @@
- #define EXPORT G_GNUC_INTERNAL
- 
- #ifdef _USE_SSE
--#ifndef HAVE_XMMINTRIN_H
-+#if !defined(__SSE__) || !defined(HAVE_XMMINTRIN_H)
- #undef _USE_SSE
- #endif
- #endif
- 
- #ifdef _USE_SSE2
--#ifndef HAVE_EMMINTRIN_H
-+#if !defined(__SSE2__) || !defined(HAVE_XMMINTRIN_H)
- #undef _USE_SSE2
- #endif
- #endif
--- 
-1.8.5.3
-
diff --git a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/default.nix b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/default.nix
deleted file mode 100644
index 225bcc7e263e0..0000000000000
--- a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/default.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-{ fetchurl, stdenv, lib, pkgconfig, gst-plugins-base, aalib, cairo
-, flac, libjpeg, speex, libpng, libdv, libcaca, libvpx
-, taglib, libpulseaudio, gdk-pixbuf, orc
-, glib, gstreamer, bzip2, libsoup, libshout, ncurses, libintl
-, # Whether to build no plugins that have external dependencies
-  # (except the PulseAudio plugin).
-  minimalDeps ? false
-}:
-
-stdenv.mkDerivation rec {
-  name = "gst-plugins-good-0.10.31";
-
-  src = fetchurl {
-    urls = [
-      "${meta.homepage}/src/gst-plugins-good/${name}.tar.bz2"
-      "mirror://gentoo/distfiles/${name}.tar.bz2"
-      ];
-    sha256 = "1ijswgcrdp243mfsyza31fpzq6plz40p4b83vkr2x4x7807889vy";
-  };
-
-  patches = [ ./v4l.patch ./linux-headers-3.9.patch ];
-
-  configureFlags = [ "--enable-experimental" "--disable-oss" ];
-
-  buildInputs =
-    [ pkgconfig glib gstreamer gst-plugins-base libintl ]
-    ++ lib.optional stdenv.isLinux libpulseaudio
-    ++ lib.optionals (!minimalDeps)
-      [ aalib libcaca cairo libdv flac libjpeg libpng speex
-        taglib bzip2 libvpx gdk-pixbuf orc libsoup libshout ];
-
-  enableParallelBuilding = true;
-
-  postInstall = lib.optionalString (!minimalDeps) ''
-    substituteInPlace $out/lib/gstreamer-0.10/libgstaasink.la \
-      --replace "${ncurses.dev}/lib" "${ncurses.out}/lib"
-  '';
-
-  # fails 1 out of 65 tests with "Could not read TLS certificate from '../../tests/files/test-cert.pem': TLS support is not available"
-  doCheck = false;
-
-  meta = {
-    homepage = "https://gstreamer.freedesktop.org";
-
-    description = "`Good' plug-ins for GStreamer";
-
-    maintainers = [stdenv.lib.maintainers.raskin];
-    platforms = stdenv.lib.platforms.unix;
-
-    license = stdenv.lib.licenses.lgpl2Plus;
-  };
-}
diff --git a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/linux-headers-3.9.patch b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/linux-headers-3.9.patch
deleted file mode 100644
index f13d3a1667144..0000000000000
--- a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/linux-headers-3.9.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/media-plugins/gst-plugins-v4l2/files/gst-plugins-v4l2-0.10.31-linux-headers-3.9.patch
-
-From 8e633d2059cb835448021cf79becb487aff10975 Mon Sep 17 00:00:00 2001
-From: Bastien Nocera <hadess@hadess.net>
-Date: Mon, 18 Mar 2013 14:59:35 +0000
-Subject: v4l2: fix compilation against newer kernel headers as on FC19
-
----
-diff --git a/sys/v4l2/v4l2_calls.c b/sys/v4l2/v4l2_calls.c
-index 07d390a..4c10f4f 100644
---- a/sys/v4l2/v4l2_calls.c
-+++ b/sys/v4l2/v4l2_calls.c
-@@ -291,8 +291,12 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object)
-         break;
-       case V4L2_CID_HFLIP:
-       case V4L2_CID_VFLIP:
-+#ifndef V4L2_CID_PAN_RESET
-       case V4L2_CID_HCENTER:
-+#endif
-+#ifndef V4L2_CID_TILT_RESET
-       case V4L2_CID_VCENTER:
-+#endif
- #ifdef V4L2_CID_PAN_RESET
-       case V4L2_CID_PAN_RESET:
- #endif
---
-cgit v0.9.0.2-2-gbebe
diff --git a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/v4l.patch b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/v4l.patch
deleted file mode 100644
index 22cff574134f7..0000000000000
--- a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/v4l.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -ru -x '*~' gst-plugins-good-0.10.31-orig/sys/v4l2/gstv4l2bufferpool.c gst-plugins-good-0.10.31/sys/v4l2/gstv4l2bufferpool.c
---- gst-plugins-good-0.10.31-orig/sys/v4l2/gstv4l2bufferpool.c	2011-12-30 14:59:13.000000000 +0100
-+++ gst-plugins-good-0.10.31/sys/v4l2/gstv4l2bufferpool.c	2013-01-28 17:41:25.549523708 +0100
-@@ -181,7 +181,6 @@
-     GST_LOG_OBJECT (pool->v4l2elem, "  MMAP offset:  %u",
-         ret->vbuffer.m.offset);
-   GST_LOG_OBJECT (pool->v4l2elem, "  length:    %u", ret->vbuffer.length);
--  GST_LOG_OBJECT (pool->v4l2elem, "  input:     %u", ret->vbuffer.input);
- 
-   data = (guint8 *) v4l2_mmap (0, ret->vbuffer.length,
-       PROT_READ | PROT_WRITE, MAP_SHARED, pool->video_fd,
diff --git a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-ugly/default.nix b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-ugly/default.nix
deleted file mode 100644
index 5321fc379cc97..0000000000000
--- a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-ugly/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ fetchurl, stdenv, pkgconfig, glib, gstreamer, gst-plugins-base
-, libmad, libdvdread, a52dec, x264, orc, lame, libintl }:
-
-stdenv.mkDerivation rec {
-  name = "gst-plugins-ugly-0.10.19";
-
-  src = fetchurl {
-    urls = [
-      "${meta.homepage}/src/gst-plugins-ugly/${name}.tar.bz2"
-      "mirror://gentoo/distfiles/${name}.tar.bz2"
-      ];
-    sha256 = "1w4d5iz9ffvh43l261zdp997i6s2iwd61lflf755s3sw4xch1a8w";
-  };
-
-  buildInputs =
-    [ pkgconfig glib gstreamer gst-plugins-base libmad libdvdread a52dec x264 orc lame libintl ];
-
-  enableParallelBuilding = true;
-
-  meta = {
-    homepage = "https://gstreamer.freedesktop.org";
-
-    description = "‘Ugly’ (potentially patent-encumbered) plug-ins for GStreamer";
-
-    maintainers = [stdenv.lib.maintainers.raskin];
-    platforms = stdenv.lib.platforms.unix;
-
-    license = stdenv.lib.licenses.lgpl2Plus;
-  };
-}
diff --git a/pkgs/development/libraries/gstreamer/legacy/gst-python/default.nix b/pkgs/development/libraries/gstreamer/legacy/gst-python/default.nix
deleted file mode 100644
index 4c56039bd0a34..0000000000000
--- a/pkgs/development/libraries/gstreamer/legacy/gst-python/default.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ fetchurl, stdenv, pkgconfig, python2Packages, gstreamer, gst-plugins-base
-}:
-
-let
-  inherit (python2Packages) python pygobject2;
-in stdenv.mkDerivation rec {
-  name = "gst-python-0.10.22";
-
-  src = fetchurl {
-    urls = [
-      "${meta.homepage}/src/gst-python/${name}.tar.bz2"
-      "mirror://gentoo/distfiles/${name}.tar.bz2"
-      ];
-    sha256 = "0y1i4n5m1diljqr9dsq12anwazrhbs70jziich47gkdwllcza9lg";
-  };
-
-  hardeningDisable = [ "bindnow" ];
-
-  # Need to disable the testFake test case due to bug in pygobject.
-  # See https://bugzilla.gnome.org/show_bug.cgi?id=692479
-  patches = [ ./disable-testFake.patch ];
-
-  buildInputs =
-    [ pkgconfig gst-plugins-base pygobject2 ]
-    ;
-
-  propagatedBuildInputs = [ gstreamer python ];
-
-  meta = {
-    homepage = "https://gstreamer.freedesktop.org";
-
-    description = "Python bindings for GStreamer";
-
-    license = stdenv.lib.licenses.lgpl2Plus;
-    platforms = stdenv.lib.platforms.unix;
-  };
-}
diff --git a/pkgs/development/libraries/gstreamer/legacy/gst-python/disable-testFake.patch b/pkgs/development/libraries/gstreamer/legacy/gst-python/disable-testFake.patch
deleted file mode 100644
index d0c9960e5d221..0000000000000
--- a/pkgs/development/libraries/gstreamer/legacy/gst-python/disable-testFake.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-diff -Nurp gst-python-0.10.22.orig/testsuite/test_bin.py gst-python-0.10.22/testsuite/test_bin.py
---- gst-python-0.10.22.orig/testsuite/test_bin.py	2014-10-29 18:58:00.921827721 +0100
-+++ gst-python-0.10.22/testsuite/test_bin.py	2014-10-29 19:00:32.019353092 +0100
-@@ -131,52 +131,6 @@ class BinAddRemove(TestCase):
-         self.assertRaises(gst.AddError, self.bin.add, src, sink)
-         self.bin.remove(src, sink)
-         self.assertRaises(gst.RemoveError, self.bin.remove, src, sink)
--
--class Preroll(TestCase):
--    def setUp(self):
--        TestCase.setUp(self)
--        self.bin = gst.Bin('bin')
--
--    def tearDown(self):
--        # FIXME: wait for state change thread to settle down
--        while self.bin.__gstrefcount__ > 1:
--            time.sleep(0.1)
--        self.assertEquals(self.bin.__gstrefcount__, 1)
--        del self.bin
--        TestCase.tearDown(self)
--
--    def testFake(self):
--        src = gst.element_factory_make('fakesrc')
--        sink = gst.element_factory_make('fakesink')
--        self.bin.add(src)
--
--        # bin will go to paused, src pad task will start and error out
--        self.bin.set_state(gst.STATE_PAUSED)
--        ret = self.bin.get_state()
--        self.assertEquals(ret[0], gst.STATE_CHANGE_SUCCESS)
--        self.assertEquals(ret[1], gst.STATE_PAUSED)
--        self.assertEquals(ret[2], gst.STATE_VOID_PENDING)
--
--        # adding the sink will cause the bin to go in preroll mode
--        gst.debug('adding sink and setting to PAUSED, should cause preroll')
--        self.bin.add(sink)
--        sink.set_state(gst.STATE_PAUSED)
--        ret = self.bin.get_state(timeout=0)
--        self.assertEquals(ret[0], gst.STATE_CHANGE_ASYNC)
--        self.assertEquals(ret[1], gst.STATE_PAUSED)
--        self.assertEquals(ret[2], gst.STATE_PAUSED)
--
--        # to actually complete preroll, we need to link and re-enable fakesrc
--        src.set_state(gst.STATE_READY)
--        src.link(sink)
--        src.set_state(gst.STATE_PAUSED)
--        ret = self.bin.get_state()
--        self.assertEquals(ret[0], gst.STATE_CHANGE_SUCCESS)
--        self.assertEquals(ret[1], gst.STATE_PAUSED)
--        self.assertEquals(ret[2], gst.STATE_VOID_PENDING)
--
--        self.bin.set_state(gst.STATE_NULL)
--        self.bin.get_state()
-  
- class ConstructorTest(TestCase):
-     def testGood(self):
diff --git a/pkgs/development/libraries/gstreamer/legacy/gstreamer/darwin.patch b/pkgs/development/libraries/gstreamer/legacy/gstreamer/darwin.patch
deleted file mode 100644
index 67dfc34434db5..0000000000000
--- a/pkgs/development/libraries/gstreamer/legacy/gstreamer/darwin.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/gst/gstdatetime.c b/gst/gstdatetime.c
-index 60f709f..cdc7e75 100644
---- a/gst/gstdatetime.c
-+++ b/gst/gstdatetime.c
-@@ -21,8 +21,8 @@
- #include "config.h"
- #endif
- 
--#include "glib-compat-private.h"
- #include "gst_private.h"
-+#include "glib-compat-private.h"
- #include "gstdatetime.h"
- #include <glib.h>
- #include <math.h>
diff --git a/pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix b/pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix
deleted file mode 100644
index b78f6148e4873..0000000000000
--- a/pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix
+++ /dev/null
@@ -1,89 +0,0 @@
-{ fetchurl, fetchpatch, stdenv, autoreconfHook
-, perl, bison, flex, pkgconfig, glib, libxml2, libintl, libunwind
-}:
-
-stdenv.mkDerivation rec {
-  name = "gstreamer-0.10.36";
-
-  src = fetchurl {
-    urls =
-      [ "${meta.homepage}/src/gstreamer/${name}.tar.xz"
-        "mirror://gentoo/distfiles/${name}.tar.xz"
-      ];
-    sha256 = "1nkid1n2l3rrlmq5qrf5yy06grrkwjh3yxl5g0w58w0pih8allci";
-  };
-
-  outputs = [ "out" "dev" ];
-
-  nativeBuildInputs = [ autoreconfHook flex perl pkgconfig libintl bison glib ];
-  buildInputs = stdenv.lib.optional stdenv.isDarwin libunwind;
-  propagatedBuildInputs = [ glib libxml2 ];
-
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/flathub/com.xnview.XnRetro/raw/fec03bbe240f45aa10d7d4eea9d6f066d9b6ac9c/gstreamer-0.10.36-bison3.patch";
-      sha256 = "05aarg3yzl5jx3z5838ixv392g0r3kbsi2vfqniaxmidhnfzij2y";
-    })
-    (fetchpatch {
-      url = "https://github.com/GStreamer/common/commit/03a0e5736761a72d4ed880e8c485bbf9e4a8ea47.patch";
-      sha256 = "0rin3x01yy78ky3smmhbwlph18hhym18q4x9w6ddiqajg5lk4xhm";
-      extraPrefix = "common/";
-      stripLen = 1;
-    })
-    (fetchpatch {
-      url = "https://github.com/GStreamer/common/commit/8aadeaaa8a948d7ce62008789ab03e9aa514c2b9.patch";
-      sha256 = "0n2mqvq2al7jr2hflhz4l781i3jya5a9i725jvy508ambpgycz3x";
-      extraPrefix = "common/";
-      stripLen = 1;
-    })
-    (fetchpatch {
-      url = "https://github.com/GStreamer/common/commit/7bb2bcecda471a0d514a964365a78150f3ee5747.patch";
-      sha256 = "0famdj70m7wjvr1dpy7iywhrkqxmrshxz0rizz1bixgp42dvkhbq";
-      extraPrefix = "common/";
-      stripLen = 1;
-    })
-  ] ++
-    # See https://trac.macports.org/ticket/40783 for explanation of patch
-    stdenv.lib.optional stdenv.isDarwin ./darwin.patch;
-
-  postPatch = ''
-    sed -i -e 's/^   /\t/' docs/gst/Makefile.in docs/libs/Makefile.in docs/plugins/Makefile.in
-  '';
-
-  configureFlags = [
-    "--disable-examples"
-    "--localstatedir=/var"
-    "--disable-gtk-doc"
-    "--disable-docbook"
-  ];
-
-  doCheck = false; # fails. 2 tests crash
-
-  postInstall = ''
-    # Hm, apparently --disable-gtk-doc is ignored...
-    rm -rf $out/share/gtk-doc
-  '';
-
-  setupHook = ./setup-hook.sh;
-
-  meta = {
-    homepage = "https://gstreamer.freedesktop.org";
-
-    description = "Library for constructing graphs of media-handling components";
-
-    longDescription = ''
-      GStreamer is a library for constructing graphs of media-handling
-      components.  The applications it supports range from simple
-      Ogg/Vorbis playback, audio/video streaming to complex audio
-      (mixing) and video (non-linear editing) processing.
-
-      Applications can take advantage of advances in codec and filter
-      technology transparently.  Developers can add new codecs and
-      filters by writing a simple plugin with a clean, generic
-      interface.
-    '';
-
-    license = stdenv.lib.licenses.lgpl2Plus;
-    platforms = stdenv.lib.platforms.unix;
-  };
-}
diff --git a/pkgs/development/libraries/gstreamer/legacy/gstreamer/setup-hook.sh b/pkgs/development/libraries/gstreamer/legacy/gstreamer/setup-hook.sh
deleted file mode 100644
index 636e20b732b45..0000000000000
--- a/pkgs/development/libraries/gstreamer/legacy/gstreamer/setup-hook.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-addGstreamerLibPath () {
-    if test -d "$1/lib/gstreamer-0.10"
-    then
-        export GST_PLUGIN_SYSTEM_PATH="${GST_PLUGIN_SYSTEM_PATH-}${GST_PLUGIN_SYSTEM_PATH:+:}$1/lib/gstreamer-0.10"
-    fi
-}
-
-addEnvHooks "$hostOffset" addGstreamerLibPath
diff --git a/pkgs/development/libraries/gstreamer/legacy/gstreamermm/default.nix b/pkgs/development/libraries/gstreamer/legacy/gstreamermm/default.nix
deleted file mode 100644
index 24197b04b73f3..0000000000000
--- a/pkgs/development/libraries/gstreamer/legacy/gstreamermm/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ stdenv, fetchurl, glibmm, gstreamer, gst-plugins-base, libsigcxx, libxmlxx, pkgconfig }:
-
-let
-  ver_maj = "0.10";
-  ver_min = "11";
-in
-stdenv.mkDerivation {
-  name = "gstreamermm-${ver_maj}.${ver_min}";
-
-  src = fetchurl {
-    url    = "mirror://gnome/sources/gstreamermm/${ver_maj}/gstreamermm-${ver_maj}.${ver_min}.tar.xz";
-    sha256 = "12b5f377363594a69cb79f2f5cd0a8b1813ca6553680c3216e6354cfd682ebc6";
-  };
- 
-  doCheck = false; # Tests require pulseaudio in /homeless-shelter
-
-  propagatedBuildInputs = [
-    glibmm gstreamer gst-plugins-base libsigcxx libxmlxx
-  ];
-
-  nativeBuildInputs = [ pkgconfig ];
-
-  meta = with stdenv.lib; {
-    description = "C++ bindings for the GStreamer streaming multimedia library";
-    homepage = "https://www.gtkmm.org/";
-    license = licenses.lgpl2Plus;
-    maintainers = with maintainers; [ plcplc ];
-    platforms = platforms.unix;
-  };
-
-}
diff --git a/pkgs/development/libraries/gstreamer/rtsp-server/default.nix b/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
index dfb18754c8398..92e8a45a4f6fc 100644
--- a/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
+++ b/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
@@ -20,6 +20,15 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" ];
 
+  patches = [
+    # To use split outputs, we need this so double prefix won't be used in the
+    # pkg-config files. Hopefully, this won't be needed on the next release,
+    # _if_
+    # https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/merge_requests/1
+    # will be merged. For the current release, this merge request won't apply.
+    ./fix_pkgconfig_includedir.patch
+  ];
+
   nativeBuildInputs = [
     meson
     ninja
diff --git a/pkgs/development/libraries/gstreamer/rtsp-server/fix_pkgconfig_includedir.patch b/pkgs/development/libraries/gstreamer/rtsp-server/fix_pkgconfig_includedir.patch
new file mode 100644
index 0000000000000..d31fe19fb0fee
--- /dev/null
+++ b/pkgs/development/libraries/gstreamer/rtsp-server/fix_pkgconfig_includedir.patch
@@ -0,0 +1,15 @@
+diff --git i/pkgconfig/meson.build w/pkgconfig/meson.build
+index 8ed8299..594cbfe 100644
+--- i/pkgconfig/meson.build
++++ w/pkgconfig/meson.build
+@@ -2,8 +2,8 @@ pkgconf = configuration_data()
+ 
+ pkgconf.set('prefix', get_option('prefix'))
+ pkgconf.set('exec_prefix', '${prefix}')
+-pkgconf.set('libdir', '${prefix}/@0@'.format(get_option('libdir')))
+-pkgconf.set('includedir', '${prefix}/@0@'.format(get_option('includedir')))
++pkgconf.set('libdir', join_paths(get_option('prefix'), get_option('libdir')))
++pkgconf.set('includedir', join_paths(get_option('prefix'), get_option('includedir')))
+ pkgconf.set('GST_API_VERSION', api_version)
+ pkgconf.set('VERSION', gst_version)
+ 
diff --git a/pkgs/development/libraries/hpx/default.nix b/pkgs/development/libraries/hpx/default.nix
index 3ced1c121c652..b6d6b6887525a 100644
--- a/pkgs/development/libraries/hpx/default.nix
+++ b/pkgs/development/libraries/hpx/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hpx";
-  version = "1.4.1";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "STEllAR-GROUP";
     repo = "hpx";
     rev = version;
-    sha256 = "0yjsrb11hlfwbiw0xi71ami9nrvz6jwj160h9qgl50icd79ngn46";
+    sha256 = "10hgjavhvn33y3k5j3l1326x13bxffghg2arxjrh7i7zd3qprfv5";
   };
 
   buildInputs = [ boost hwloc gperftools ];
diff --git a/pkgs/development/libraries/itk/default.nix b/pkgs/development/libraries/itk/default.nix
index 84dedfa0b3b67..1288242faf2cb 100644
--- a/pkgs/development/libraries/itk/default.nix
+++ b/pkgs/development/libraries/itk/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "itk";
-  version = "5.1.0";
+  version = "5.1.1";
 
   src = fetchFromGitHub {
     owner = "InsightSoftwareConsortium";
     repo = "ITK";
     rev = "v${version}";
-    sha256 = "0rvkp00xj1js60021jv2ydyl74wvbyb205gm9d7hf8gy2q456hgl";
+    sha256 = "1z7rmqrhgl7hfb3d0077kvp8vpi05r2zk3qyqzmv7bzbal5sqqhv";
   };
 
   cmakeFlags = [
diff --git a/pkgs/development/libraries/java/hsqldb/default.nix b/pkgs/development/libraries/java/hsqldb/default.nix
index d9139ec1d823b..88f32866b0d06 100644
--- a/pkgs/development/libraries/java/hsqldb/default.nix
+++ b/pkgs/development/libraries/java/hsqldb/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "hsqldb";
-  version = "2.5.0";
+  version = "2.5.1";
   underscoreMajMin = stdenv.lib.strings.replaceChars ["."] ["_"] (stdenv.lib.versions.majorMinor version);
 
   src = fetchurl {
     url = "mirror://sourceforge/project/hsqldb/hsqldb/hsqldb_${underscoreMajMin}/hsqldb-${version}.zip";
-    sha256 = "0s64w7qq5vayrzcmdhrdfmd6iqqv6x6fpiq9lpy2gva3dckv3q6j";
+    sha256 = "0yd9px85y036bp3q1assj3fgaykxrwnhnc7cbjgic39cykfy5hrg";
   };
 
   nativeBuildInputs = [ unzip makeWrapper ];
diff --git a/pkgs/development/libraries/java/lombok/default.nix b/pkgs/development/libraries/java/lombok/default.nix
index f48c4821d9238..5928d99b6c248 100644
--- a/pkgs/development/libraries/java/lombok/default.nix
+++ b/pkgs/development/libraries/java/lombok/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "lombok-1.18.10";
+  name = "lombok-1.18.12";
 
   src = fetchurl {
     url = "https://projectlombok.org/downloads/${name}.jar";
-    sha256 = "1ymjwxg01dq8qq89hx23yvk5h46hwfb8ihbqbvabmz1vh9afjdi8";
+    sha256 = "01jl6i5wzjxyk36fcq6ji90x9h143gvnwhv86cbkqaxhxh41af29";
   };
 
   buildCommand = ''
diff --git a/pkgs/development/libraries/jxrlib/default.nix b/pkgs/development/libraries/jxrlib/default.nix
index e119c75ff8dd2..f0f5b9d77934a 100644
--- a/pkgs/development/libraries/jxrlib/default.nix
+++ b/pkgs/development/libraries/jxrlib/default.nix
@@ -13,6 +13,12 @@ stdenv.mkDerivation rec {
     sha256 = "0rk3hbh00nw0wgbfbqk1szrlfg3yq7w6ar16napww3nrlm9cj65w";
   };
 
+  postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
+    substituteInPlace Makefile \
+      --replace '-shared' '-dynamiclib -undefined dynamic_lookup' \
+      --replace '.so' '.dylib'
+  '';
+
   nativeBuildInputs = [ python ];
 
   makeFlags = [ "DIR_INSTALL=$(out)" "SHARED=1" ];
@@ -21,7 +27,7 @@ stdenv.mkDerivation rec {
     description = "Implementation of the JPEG XR image codec standard";
     homepage = "https://jxrlib.codeplex.com";
     license = licenses.bsd2;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ romildo ];
   };
 }
diff --git a/pkgs/development/libraries/kde-frameworks/default.nix b/pkgs/development/libraries/kde-frameworks/default.nix
index 966d89e4cbf79..02e25692ef16c 100644
--- a/pkgs/development/libraries/kde-frameworks/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/default.nix
@@ -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 {};
diff --git a/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/default.nix b/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/default.nix
index 3a3f066ad33b7..645d05afc2bec 100644
--- a/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/default.nix
@@ -1,9 +1,11 @@
-{ mkDerivation, lib, copyPathsToStore, cmake, pkgconfig }:
+{ mkDerivation, lib, cmake, pkgconfig }:
 
 mkDerivation {
   name = "extra-cmake-modules";
 
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./nix-lib-path.patch
+  ];
 
   outputs = [ "out" ];  # this package has no runtime components
 
diff --git a/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/series b/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/series
deleted file mode 100644
index b4569e50a5f73..0000000000000
--- a/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/series
+++ /dev/null
@@ -1 +0,0 @@
-nix-lib-path.patch
diff --git a/pkgs/development/libraries/kde-frameworks/kauth/default.nix b/pkgs/development/libraries/kde-frameworks/kauth/default.nix
index c94c8b91ecd20..0a513d6eed94a 100644
--- a/pkgs/development/libraries/kde-frameworks/kauth/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kauth/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore, propagate,
+  mkDerivation, lib, propagate,
   extra-cmake-modules, kcoreaddons, polkit-qt, qttools
 }:
 
@@ -9,7 +9,9 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ polkit-qt qttools ];
   propagatedBuildInputs = [ kcoreaddons ];
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./cmake-install-paths.patch
+  ];
   # library stores reference to plugin path,
   # separating $out from $bin would create a reference cycle
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/kde-frameworks/kauth/series b/pkgs/development/libraries/kde-frameworks/kauth/series
deleted file mode 100644
index d2689425c3876..0000000000000
--- a/pkgs/development/libraries/kde-frameworks/kauth/series
+++ /dev/null
@@ -1 +0,0 @@
-cmake-install-paths.patch
diff --git a/pkgs/development/libraries/kde-frameworks/kcmutils/default.nix b/pkgs/development/libraries/kde-frameworks/kcmutils/default.nix
index 29689c789d3e5..ab14529be01ea 100644
--- a/pkgs/development/libraries/kde-frameworks/kcmutils/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kcmutils/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib,
   extra-cmake-modules,
   kconfigwidgets, kcoreaddons, kdeclarative, ki18n, kiconthemes, kitemviews,
   kpackage, kservice, kxmlgui, qtdeclarative,
diff --git a/pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix b/pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix
index 7e3de9d4d1415..5eced8832877e 100644
--- a/pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib,
   docbook_xml_dtd_45, extra-cmake-modules, kdoctools,
   kauth, karchive, kcompletion, kconfig, kconfigwidgets, kcoreaddons, kcrash,
   kdbusaddons, kded, kdesignerplugin, kemoticons, kglobalaccel, kguiaddons,
@@ -11,7 +11,9 @@
 mkDerivation {
   name = "kdelibs4support";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./nix-kde-include-dir.patch
+  ];
   setupHook = ./setup-hook.sh;
   nativeBuildInputs = [ extra-cmake-modules qttools ];
   propagatedNativeBuildInputs = [ kdoctools ];
diff --git a/pkgs/development/libraries/kde-frameworks/kdelibs4support/series b/pkgs/development/libraries/kde-frameworks/kdelibs4support/series
deleted file mode 100644
index 9b08ab208774a..0000000000000
--- a/pkgs/development/libraries/kde-frameworks/kdelibs4support/series
+++ /dev/null
@@ -1 +0,0 @@
-nix-kde-include-dir.patch
diff --git a/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix b/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix
index 90a7116f42ad1..47831f0f5d92c 100644
--- a/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib,
   extra-cmake-modules,
   attr, ebook_tools, exiv2, ffmpeg_3, karchive, kcoreaddons, ki18n, poppler, qtbase, qtmultimedia, taglib
 }:
@@ -12,5 +12,7 @@ mkDerivation {
     attr ebook_tools exiv2 ffmpeg_3 karchive kcoreaddons ki18n poppler qtbase qtmultimedia
     taglib
   ];
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./cmake-install-paths.patch
+  ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kfilemetadata/series b/pkgs/development/libraries/kde-frameworks/kfilemetadata/series
deleted file mode 100644
index d2689425c3876..0000000000000
--- a/pkgs/development/libraries/kde-frameworks/kfilemetadata/series
+++ /dev/null
@@ -1 +0,0 @@
-cmake-install-paths.patch
diff --git a/pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix b/pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix
index 8faac005f2ac3..76bf0fd053703 100644
--- a/pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib,
   extra-cmake-modules,
   breeze-icons, karchive, kcoreaddons, kconfigwidgets, ki18n, kitemviews,
   qtbase, qtsvg, qttools,
@@ -8,7 +8,9 @@
 mkDerivation {
   name = "kiconthemes";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./default-theme-breeze.patch
+  ];
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     breeze-icons karchive kcoreaddons kconfigwidgets ki18n kitemviews
diff --git a/pkgs/development/libraries/kde-frameworks/kiconthemes/series b/pkgs/development/libraries/kde-frameworks/kiconthemes/series
deleted file mode 100644
index ab5cc8a3edb27..0000000000000
--- a/pkgs/development/libraries/kde-frameworks/kiconthemes/series
+++ /dev/null
@@ -1 +0,0 @@
-default-theme-breeze.patch
diff --git a/pkgs/development/libraries/kde-frameworks/kinit/default.nix b/pkgs/development/libraries/kde-frameworks/kinit/default.nix
index 116f475e2f8c5..654f6e20604a2 100644
--- a/pkgs/development/libraries/kde-frameworks/kinit/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kinit/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore, writeScript,
+  mkDerivation, lib, writeScript,
   extra-cmake-modules, kdoctools,
   kconfig, kcrash, ki18n, kio, kparts, kservice, kwindowsystem, plasma-framework
 }:
diff --git a/pkgs/development/libraries/kde-frameworks/kinit/series b/pkgs/development/libraries/kde-frameworks/kinit/series
deleted file mode 100644
index 9195a4e8e6b08..0000000000000
--- a/pkgs/development/libraries/kde-frameworks/kinit/series
+++ /dev/null
@@ -1,3 +0,0 @@
-kinit-libpath.patch
-start_kdeinit-path.patch
-kdeinit-extra_libs.patch
diff --git a/pkgs/development/libraries/kde-frameworks/kio/default.nix b/pkgs/development/libraries/kde-frameworks/kio/default.nix
index fee21a6a92353..434496c7b9a94 100644
--- a/pkgs/development/libraries/kde-frameworks/kio/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kio/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools, qttools,
   karchive, kbookmarks, kcompletion, kconfig, kconfigwidgets, kcoreaddons,
   kdbusaddons, ki18n, kiconthemes, kitemviews, kjobwidgets, knotifications,
@@ -21,5 +21,8 @@ mkDerivation {
     kxmlgui qtbase qttools solid
   ];
   outputs = [ "out" "dev" ];
-  patches = (copyPathsToStore (lib.readPathsFromFile ./. ./series));
+  patches = [
+    ./samba-search-path.patch
+    ./kio-debug-module-loader.patch
+  ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kio/series b/pkgs/development/libraries/kde-frameworks/kio/series
deleted file mode 100644
index 5330c40a3306d..0000000000000
--- a/pkgs/development/libraries/kde-frameworks/kio/series
+++ /dev/null
@@ -1,2 +0,0 @@
-samba-search-path.patch
-kio-debug-module-loader.patch
diff --git a/pkgs/development/libraries/kde-frameworks/kpackage/default.nix b/pkgs/development/libraries/kde-frameworks/kpackage/default.nix
index 6779faa50cdcf..6bd42420b85dd 100644
--- a/pkgs/development/libraries/kde-frameworks/kpackage/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kpackage/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
   karchive, kconfig, kcoreaddons, ki18n, qtbase,
 }:
@@ -9,5 +9,8 @@ mkDerivation {
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [ karchive kconfig kcoreaddons ki18n qtbase ];
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./allow-external-paths.patch
+    ./qdiriterator-follow-symlinks.patch
+  ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kpackage/series b/pkgs/development/libraries/kde-frameworks/kpackage/series
deleted file mode 100644
index 9b7f076efc70e..0000000000000
--- a/pkgs/development/libraries/kde-frameworks/kpackage/series
+++ /dev/null
@@ -1,2 +0,0 @@
-allow-external-paths.patch
-qdiriterator-follow-symlinks.patch
diff --git a/pkgs/development/libraries/kde-frameworks/kquickcharts.nix b/pkgs/development/libraries/kde-frameworks/kquickcharts.nix
new file mode 100644
index 0000000000000..5a06d4c1cad82
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kquickcharts.nix
@@ -0,0 +1,15 @@
+{
+  mkDerivation, lib,
+  extra-cmake-modules,
+  qtquickcontrols2,
+}:
+
+mkDerivation {
+  name = "kquickcharts";
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ qtquickcontrols2 ];
+  outputs = [ "out" "dev" ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kservice/default.nix b/pkgs/development/libraries/kde-frameworks/kservice/default.nix
index 356e6537a4fd2..630582ecf7638 100644
--- a/pkgs/development/libraries/kde-frameworks/kservice/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kservice/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib,
   bison, extra-cmake-modules, flex,
   kconfig, kcoreaddons, kcrash, kdbusaddons, kdoctools, ki18n, kwindowsystem,
   qtbase, shared-mime-info,
@@ -15,5 +15,8 @@ mkDerivation {
   ];
   propagatedBuildInputs = [ kconfig kcoreaddons ];
   propagatedUserEnvPkgs = [ shared-mime-info ]; # for kbuildsycoca5
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./qdiriterator-follow-symlinks.patch
+    ./no-canonicalize-path.patch
+  ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kservice/series b/pkgs/development/libraries/kde-frameworks/kservice/series
deleted file mode 100644
index 3ce22dbd35a08..0000000000000
--- a/pkgs/development/libraries/kde-frameworks/kservice/series
+++ /dev/null
@@ -1,2 +0,0 @@
-qdiriterator-follow-symlinks.patch
-no-canonicalize-path.patch
\ No newline at end of file
diff --git a/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix b/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix
index c075adf02941b..1e77b63f7c9aa 100644
--- a/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib,
   extra-cmake-modules,
   libpthreadstubs, libXdmcp,
   qtbase, qttools, qtx11extras
@@ -14,7 +14,9 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ libpthreadstubs libXdmcp qttools qtx11extras ];
   propagatedBuildInputs = [ qtbase ];
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./platform-plugins-path.patch
+  ];
   preConfigure = ''
     NIX_CFLAGS_COMPILE+=" -DNIXPKGS_QT_PLUGIN_PATH=\"''${!outputBin}/$qtPluginPrefix\""
   '';
diff --git a/pkgs/development/libraries/kde-frameworks/kwindowsystem/series b/pkgs/development/libraries/kde-frameworks/kwindowsystem/series
deleted file mode 100644
index 2cd02056ff815..0000000000000
--- a/pkgs/development/libraries/kde-frameworks/kwindowsystem/series
+++ /dev/null
@@ -1 +0,0 @@
-platform-plugins-path.patch
diff --git a/pkgs/development/libraries/libaacs/default.nix b/pkgs/development/libraries/libaacs/default.nix
index 2b3ef8c99c818..d6c90ee172b63 100644
--- a/pkgs/development/libraries/libaacs/default.nix
+++ b/pkgs/development/libraries/libaacs/default.nix
@@ -9,11 +9,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libaacs";
-  version  = "0.10.0";
+  version  = "0.11.0";
 
   src = fetchurl {
     url = "http://get.videolan.org/libaacs/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "1zhjdcph8sqx7ak35s22kc736icwq135jlypggkp6vqyyygb3xlk";
+    sha256 = "11skjqjlldmbjkyxdcz4fmcn6y4p95r1xagbcnjy4ndnzf0l723d";
   };
 
   buildInputs = [ libgcrypt libgpgerror ];
diff --git a/pkgs/development/libraries/libcint/default.nix b/pkgs/development/libraries/libcint/default.nix
index 4a83175f66bf0..55ba8d7b30177 100644
--- a/pkgs/development/libraries/libcint/default.nix
+++ b/pkgs/development/libraries/libcint/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libcint";
-  version = "3.0.20";
+  version = "3.1.1";
 
   src = fetchFromGitHub {
     owner = "sunqm";
     repo = "libcint";
     rev = "v${version}";
-    sha256 = "0iqqq568q9sxppr08rvmpyjq0n82pm04x9rxhh3mf20x1ds7ngj5";
+    sha256 = "0z1gavi7aacx68fmyzy90vzv5kff844lnxc6habs6y377dr3rwwy";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/libfilezilla/default.nix b/pkgs/development/libraries/libfilezilla/default.nix
index ed9de3aaa4cdc..5edcb7e410fda 100644
--- a/pkgs/development/libraries/libfilezilla/default.nix
+++ b/pkgs/development/libraries/libfilezilla/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libfilezilla";
-  version = "0.23.0";
+  version = "0.24.0";
 
   src = fetchurl {
     url = "https://download.filezilla-project.org/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "0lk84aw5ylrhpy26djdw3byhjbn9qrzx5k98r0i4nwfizckw3smd";
+    sha256 = "1372i9f501kn8p1vkqdydaqvvi6lzxsnw2yzyxx5j4syqd4p0qa5";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/libraries/liblouis/default.nix b/pkgs/development/libraries/liblouis/default.nix
index 5d0459b4f308b..c394e3dc4d547 100644
--- a/pkgs/development/libraries/liblouis/default.nix
+++ b/pkgs/development/libraries/liblouis/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "liblouis";
-  version = "3.14.0";
+  version = "3.15.0";
 
   src = fetchFromGitHub {
     owner = "liblouis";
     repo = "liblouis";
     rev = "v${version}";
-    sha256 = "0v6w8b9r994mkkbm2gqgd7k5yfmdhgbabh0j1gmn375nyvhy4qqh";
+    sha256 = "1ljy5xsy7vf2r0ix0d7bqcr6qvr6897f8madsx9zlm1mrj31n5px";
   };
 
   outputs = [ "out" "dev" "man" "info" "doc" ];
diff --git a/pkgs/development/libraries/libpqxx/default.nix b/pkgs/development/libraries/libpqxx/default.nix
index a710e09a454fd..feb9c7e65147a 100644
--- a/pkgs/development/libraries/libpqxx/default.nix
+++ b/pkgs/development/libraries/libpqxx/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     description = "A C++ library to access PostgreSQL databases";
     homepage = "http://pqxx.org/development/libpqxx/";
     license = lib.licenses.bsd3;
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.eelco ];
   };
 }
diff --git a/pkgs/development/libraries/libpwquality/default.nix b/pkgs/development/libraries/libpwquality/default.nix
index bd45cb529f1ab..5d83b137b8e6c 100644
--- a/pkgs/development/libraries/libpwquality/default.nix
+++ b/pkgs/development/libraries/libpwquality/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, autoreconfHook, perl, cracklib, python3 }:
+{ stdenv, lib, fetchFromGitHub, autoreconfHook, perl, cracklib, python3, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "libpwquality";
@@ -11,8 +11,21 @@ stdenv.mkDerivation rec {
     sha256 = "0n4pjhm7wfivk0wizggaxq4y4mcxic876wcarjabkp5z9k14y36h";
   };
 
-  nativeBuildInputs = [ autoreconfHook perl ];
-  buildInputs = [ cracklib python3 ];
+  nativeBuildInputs = [ autoreconfHook perl python3 ];
+  buildInputs = [ cracklib ];
+
+  patches = lib.optional stdenv.hostPlatform.isStatic [
+    (fetchpatch {
+      name = "static-build.patch";
+      url = "https://github.com/libpwquality/libpwquality/pull/40.patch";
+      sha256 = "1ypccq437wxwgddd98cvd330jfm7jscdlzlyxgy05g6yzrr68xyk";
+    })
+  ];
+
+  configureFlags = lib.optional stdenv.hostPlatform.isStatic [
+    # Python binding generates a shared library which are unavailable with musl build
+    "--disable-python-bindings"
+  ];
 
   meta = with lib; {
     description = "Password quality checking and random password generation library";
diff --git a/pkgs/development/libraries/libraw/default.nix b/pkgs/development/libraries/libraw/default.nix
index 69169c7e9af72..f20810801d974 100644
--- a/pkgs/development/libraries/libraw/default.nix
+++ b/pkgs/development/libraries/libraw/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libraw";
-  version = "0.19.5";
+  version = "0.20.0";
 
   src = fetchurl {
     url = "https://www.libraw.org/data/LibRaw-${version}.tar.gz";
-    sha256 = "1x827sh6vl8j3ll2ihkcr234y07f31hi1v7sl08jfw3irkbn58j0";
+    sha256 = "18wlsvj6c1rv036ph3695kknpgzc3lk2ikgshy8417yfl8ykh2hz";
   };
 
   outputs = [ "out" "lib" "dev" "doc" ];
diff --git a/pkgs/development/libraries/libusb/fix-headers.patch b/pkgs/development/libraries/libusb-compat/fix-headers.patch
index ea9cbc34978ed..ea9cbc34978ed 100644
--- a/pkgs/development/libraries/libusb/fix-headers.patch
+++ b/pkgs/development/libraries/libusb-compat/fix-headers.patch
diff --git a/pkgs/development/libraries/linbox/default.nix b/pkgs/development/libraries/linbox/default.nix
index 2217996acdbce..09bd7e1209110 100644
--- a/pkgs/development/libraries/linbox/default.nix
+++ b/pkgs/development/libraries/linbox/default.nix
@@ -39,18 +39,17 @@ stdenv.mkDerivation rec {
   configureFlags = [
     "--with-blas-libs=-lblas"
     "--disable-optimization"
-  ] ++ stdenv.lib.optionals stdenv.isx86_64 {
+  ] ++ stdenv.lib.optionals stdenv.isx86_64 [
     # disable SIMD instructions (which are enabled *when available* by default)
-    default        = [ "--disable-sse3" "--disable-ssse3" "--disable-sse41" "--disable-sse42" "--disable-avx" "--disable-avx2" "--disable-fma" "--disable-fma4" ];
-    westmere       = [                                                                        "--disable-avx" "--disable-avx2" "--disable-fma" "--disable-fma4" ];
-    sandybridge    = [                                                                                        "--disable-avx2" "--disable-fma" "--disable-fma4" ];
-    ivybridge      = [                                                                                        "--disable-avx2" "--disable-fma" "--disable-fma4" ];
-    haswell        = [                                                                                                                         "--disable-fma4" ];
-    broadwell      = [                                                                                                                         "--disable-fma4" ];
-    skylake        = [                                                                                                                         "--disable-fma4" ];
-    skylake-avx512 = [                                                                                                                         "--disable-fma4" ];
-  }.${stdenv.hostPlatform.platform.gcc.arch or "default"}
-  ++ stdenv.lib.optionals withSage [
+    "--${if stdenv.hostPlatform.sse3Support   then "enable" else "disable"}-sse3"
+    "--${if stdenv.hostPlatform.ssse3Support  then "enable" else "disable"}-ssse3"
+    "--${if stdenv.hostPlatform.sse4_1Support then "enable" else "disable"}-sse41"
+    "--${if stdenv.hostPlatform.sse4_2Support then "enable" else "disable"}-sse42"
+    "--${if stdenv.hostPlatform.avxSupport    then "enable" else "disable"}-avx"
+    "--${if stdenv.hostPlatform.avx2Support   then "enable" else "disable"}-avx2"
+    "--${if stdenv.hostPlatform.fmaSupport    then "enable" else "disable"}-fma"
+    "--${if stdenv.hostPlatform.fma4Support   then "enable" else "disable"}-fma4"
+  ] ++ stdenv.lib.optionals withSage [
     "--enable-sage"
   ];
 
diff --git a/pkgs/development/libraries/lyra/default.nix b/pkgs/development/libraries/lyra/default.nix
index c0220e6e21db3..8d5d083d82b02 100644
--- a/pkgs/development/libraries/lyra/default.nix
+++ b/pkgs/development/libraries/lyra/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lyra";
-  version = "1.4";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "bfgroup";
     repo = "lyra";
     rev = version;
-    sha256 = "08g6kqaj079aq7i6c1pwj778lrr3yk188wn1byxdd6zqpwrsv71q";
+    sha256 = "0xil6b055csnrvxxmby5x9njf166bri472jxwzshc49cz7svhhpk";
   };
 
   nativeBuildInputs = [ meson ninja ];
diff --git a/pkgs/development/libraries/notify-sharp/default.nix b/pkgs/development/libraries/notify-sharp/default.nix
index 403b0326bb5a5..58d35767d1e0d 100644
--- a/pkgs/development/libraries/notify-sharp/default.nix
+++ b/pkgs/development/libraries/notify-sharp/default.nix
@@ -1,12 +1,13 @@
-{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook
+{ stdenv, fetchFromGitLab, pkgconfig, autoreconfHook
 , mono, gtk-sharp-3_0, dbus-sharp-1_0, dbus-sharp-glib-1_0 }:
 
 stdenv.mkDerivation rec {
   pname = "notify-sharp";
   version = "3.0.3";
 
-  src = fetchFromGitHub {
-    owner = "GNOME";
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "Archive";
     repo = "notify-sharp";
 
     rev = version;
diff --git a/pkgs/development/libraries/openmpi/default.nix b/pkgs/development/libraries/openmpi/default.nix
index d6f23a9060ff2..95c2a9c3fcf4d 100644
--- a/pkgs/development/libraries/openmpi/default.nix
+++ b/pkgs/development/libraries/openmpi/default.nix
@@ -18,7 +18,7 @@
 assert !cudaSupport || cudatoolkit != null;
 
 let
-  version = "4.0.4";
+  version = "4.0.5";
 
   cudatoolkit_joined = symlinkJoin {
     name = "${cudatoolkit.name}-unsplit";
@@ -30,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 = ''
diff --git a/pkgs/development/libraries/pcl/default.nix b/pkgs/development/libraries/pcl/default.nix
index 506c78aca8a58..d1c39b42a9d5b 100644
--- a/pkgs/development/libraries/pcl/default.nix
+++ b/pkgs/development/libraries/pcl/default.nix
@@ -4,13 +4,13 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "pcl-1.11.0";
+  name = "pcl-1.11.1";
 
   src = fetchFromGitHub {
     owner = "PointCloudLibrary";
     repo = "pcl";
     rev = name;
-    sha256 = "0nr3j71gh1v8x6wjr7a7xyr0438sw7vf621a5kbw4lmsxbj55k8g";
+    sha256 = "1cli2rxqsk6nxp36p5mgvvahjz8hm4fb68yi8cf9nw4ygbcvcwb1";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/qt-4.x/4.8/default.nix b/pkgs/development/libraries/qt-4.x/4.8/default.nix
index 8512806e4556f..3deea882bb6c2 100644
--- a/pkgs/development/libraries/qt-4.x/4.8/default.nix
+++ b/pkgs/development/libraries/qt-4.x/4.8/default.nix
@@ -3,9 +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 ? false # ancient gstreamer is broken
-, alsaLib, gstreamer, gst-plugins-base
-, buildWebkit ? false
+, alsaLib
 , libGLSupported ? stdenv.lib.elem stdenv.hostPlatform.system stdenv.lib.platforms.mesaPlatforms
 , flashplayerFix ? false, gdk-pixbuf
 , gtkStyle ? stdenv.hostPlatform == stdenv.buildPlatform, gtk2
@@ -178,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"
@@ -191,9 +189,7 @@ stdenv.mkDerivation rec {
     [ libXrender libXrandr libXinerama libXcursor libXext libXfixes libXv libXi
       libSM zlib libpng openssl dbus freetype fontconfig glib ]
         # Qt doesn't directly need GLU (just GL), but many apps use, it's small and doesn't remain a runtime-dep if not used
-    ++ lib.optional libGLSupported libGLU
-    ++ lib.optional ((buildWebkit || buildMultimedia) && stdenv.isLinux ) alsaLib
-    ++ lib.optionals (buildWebkit || buildMultimedia) [ gstreamer gst-plugins-base ];
+    ++ lib.optional libGLSupported libGLU;
 
   # The following libraries are only used in plugins
   buildInputs =
diff --git a/pkgs/development/libraries/qt-5/modules/qtbase.nix b/pkgs/development/libraries/qt-5/modules/qtbase.nix
index 4d7507220b563..3cbcaaacefb81 100644
--- a/pkgs/development/libraries/qt-5/modules/qtbase.nix
+++ b/pkgs/development/libraries/qt-5/modules/qtbase.nix
@@ -255,18 +255,18 @@ stdenv.mkDerivation {
       "-no-warnings-are-errors"
     ]
     ++ (
-      if (!stdenv.hostPlatform.isx86_64)
-      then [ "-no-sse2" ]
-      else lib.optionals (compareVersion "5.9.0" >= 0) {
-        default        = [ "-sse2" "-no-sse3" "-no-ssse3" "-no-sse4.1" "-no-sse4.2" "-no-avx" "-no-avx2" ];
-        westmere       = [ "-sse2"    "-sse3"    "-ssse3"    "-sse4.1"    "-sse4.2" "-no-avx" "-no-avx2" ];
-        sandybridge    = [ "-sse2"    "-sse3"    "-ssse3"    "-sse4.1"    "-sse4.2"    "-avx" "-no-avx2" ];
-        ivybridge      = [ "-sse2"    "-sse3"    "-ssse3"    "-sse4.1"    "-sse4.2"    "-avx" "-no-avx2" ];
-        haswell        = [ "-sse2"    "-sse3"    "-ssse3"    "-sse4.1"    "-sse4.2"    "-avx"    "-avx2" ];
-        broadwell      = [ "-sse2"    "-sse3"    "-ssse3"    "-sse4.1"    "-sse4.2"    "-avx"    "-avx2" ];
-        skylake        = [ "-sse2"    "-sse3"    "-ssse3"    "-sse4.1"    "-sse4.2"    "-avx"    "-avx2" ];
-        skylake-avx512 = [ "-sse2"    "-sse3"    "-ssse3"    "-sse4.1"    "-sse4.2"    "-avx"    "-avx2" ];
-      }.${stdenv.hostPlatform.platform.gcc.arch or "default"}
+      if (!stdenv.hostPlatform.isx86_64) then [
+        "-no-sse2"
+      ] else if (compareVersion "5.9.0" >= 0) then [
+        "-sse2"
+        "${if stdenv.hostPlatform.sse3Support   then "" else "-no"}-sse3"
+        "${if stdenv.hostPlatform.ssse3Support  then "" else "-no"}-ssse3"
+        "${if stdenv.hostPlatform.sse4_1Support then "" else "-no"}-sse4.1"
+        "${if stdenv.hostPlatform.sse4_2Support then "" else "-no"}-sse4.2"
+        "${if stdenv.hostPlatform.avxSupport    then "" else "-no"}-avx"
+        "${if stdenv.hostPlatform.avx2Support   then "" else "-no"}-avx2"
+      ] else [
+      ]
     )
     ++ [
       "-no-mips_dsp"
diff --git a/pkgs/development/libraries/rdkafka/default.nix b/pkgs/development/libraries/rdkafka/default.nix
index 7539d45627f13..308fadbdfd8e2 100644
--- a/pkgs/development/libraries/rdkafka/default.nix
+++ b/pkgs/development/libraries/rdkafka/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rdkafka";
-  version = "1.4.2";
+  version = "1.4.4";
 
   src = fetchFromGitHub {
     owner = "edenhill";
     repo = "librdkafka";
     rev = "v${version}";
-    sha256 = "05mgrdzacn9kdpr68r5j0cvsvl54s52glnsc1ww9rcxx6p7hq1ly";
+    sha256 = "0y4m29wyvhhxb7fap9z07zwgcqlr4ifwynf8a7yp5ldjpzfzxpix";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/libraries/readosm/default.nix b/pkgs/development/libraries/readosm/default.nix
index 8bf3200e295b3..6aed49d65e35a 100644
--- a/pkgs/development/libraries/readosm/default.nix
+++ b/pkgs/development/libraries/readosm/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, expat, zlib, geos, libspatialite }:
 
 stdenv.mkDerivation rec {
-  name = "readosm-1.1.0";
+  name = "readosm-1.1.0a";
 
   src = fetchurl {
     url = "https://www.gaia-gis.it/gaia-sins/readosm-sources/${name}.tar.gz";
-    sha256 = "1v20pnda67imjd70fn0zw30aar525xicy3d3v49md5cvqklws265";
+    sha256 = "0igif2bxf4dr82glxz9gyx5mmni0r2dsnx9p9k6pxv3c4lfhaz6v";
   };
 
   buildInputs = [ expat zlib geos libspatialite ];
diff --git a/pkgs/development/libraries/redkite/default.nix b/pkgs/development/libraries/redkite/default.nix
index 63e5eea25a456..be6bf0d7fa0a3 100644
--- a/pkgs/development/libraries/redkite/default.nix
+++ b/pkgs/development/libraries/redkite/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "redkite";
-  version = "1.0.1";
+  version = "1.0.3";
 
   src = fetchFromGitLab {
     owner = "iurie-sw";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1qd4r7ps0fg2m1vx3j48chfdh2c5909j4f9wip4af59inrid4w6a";
+    sha256 = "1m2db7c791fi33snkjwnvlxapmf879g5r8azlkx7sr6vp2s0jq2k";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/science/math/cudnn/generic.nix b/pkgs/development/libraries/science/math/cudnn/generic.nix
index 381920682a497..e727218c05557 100644
--- a/pkgs/development/libraries/science/math/cudnn/generic.nix
+++ b/pkgs/development/libraries/science/math/cudnn/generic.nix
@@ -32,19 +32,20 @@ stdenv.mkDerivation {
     mkdir -p $out
     cp -a include $out/include
     cp -a lib64 $out/lib64
-
-    ${lib.optionalString (lib.versionAtLeast version "8") ''
-      # patchelf fails on libcudnn_cnn_infer due to it being too big.
-      # I'm hoping it's not needed for most programs.
-      # (https://github.com/NixOS/patchelf/issues/222)
-      rm -f $out/lib64/libcudnn_cnn_infer*
-    ''}
   '';
 
   # Set RUNPATH so that libcuda in /run/opengl-driver(-32)/lib can be found.
   # See the explanation in addOpenGLRunpath.
   postFixup = ''
-    addOpenGLRunpath $out/lib/lib*.so
+    for lib in $out/lib/lib*.so; do
+      # patchelf fails on libcudnn_cnn_infer due to it being too big.
+      # Most programs will still get the RPATH since they link to
+      # other things.
+      # (https://github.com/NixOS/patchelf/issues/222)
+      if [ "$(basename $lib)" != libcudnn_cnn_infer.so ]; then
+        addOpenGLRunpath $lib
+      fi
+    done
   '';
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/libraries/science/math/libtorch/bin.nix b/pkgs/development/libraries/science/math/libtorch/bin.nix
new file mode 100644
index 0000000000000..3ae4627058687
--- /dev/null
+++ b/pkgs/development/libraries/science/math/libtorch/bin.nix
@@ -0,0 +1,111 @@
+{ callPackage
+, stdenv
+, fetchzip
+, lib
+
+, addOpenGLRunpath
+, patchelf
+, fixDarwinDylibNames
+
+, cudaSupport
+, nvidia_x11
+}:
+
+let
+  version = "1.6.0";
+  device = if cudaSupport then "cuda" else "cpu";
+  srcs = import ./binary-hashes.nix;
+  unavailable = throw "libtorch is not available for this platform";
+in stdenv.mkDerivation {
+  inherit version;
+  pname = "libtorch";
+
+  src = fetchzip srcs."${stdenv.targetPlatform.system}-${device}" or unavailable;
+
+  nativeBuildInputs =
+    if stdenv.isDarwin then [ fixDarwinDylibNames ]
+    else [ addOpenGLRunpath patchelf ]
+      ++ stdenv.lib.optionals cudaSupport [ addOpenGLRunpath ];
+
+  buildInputs = [
+    stdenv.cc.cc
+  ] ++ lib.optionals cudaSupport [ nvidia_x11 ];
+
+  dontBuild = true;
+  dontConfigure = true;
+  dontStrip = true;
+
+  installPhase = ''
+    # Copy headers and CMake files.
+    install -Dm755 -t $dev/lib lib/*.a
+    cp -r include $dev
+    cp -r share $dev
+
+    install -Dm755 -t $out/lib lib/*${stdenv.hostPlatform.extensions.sharedLibrary}*
+
+    # We do not care about Java support...
+    rm -f $out/lib/lib*jni* 2> /dev/null || true
+  '';
+
+  postFixup = let
+    libPaths = [ stdenv.cc.cc.lib ]
+      ++ stdenv.lib.optionals cudaSupport [ nvidia_x11 ];
+    rpath = stdenv.lib.makeLibraryPath libPaths;
+  in stdenv.lib.optionalString stdenv.isLinux ''
+    find $out/lib -type f \( -name '*.so' -or -name '*.so.*' \) | while read lib; do
+      echo "setting rpath for $lib..."
+      patchelf --set-rpath "${rpath}:$out/lib" "$lib"
+      ${lib.optionalString cudaSupport ''
+        addOpenGLRunpath "$lib"
+      ''}
+    done
+  '' + stdenv.lib.optionalString stdenv.isDarwin ''
+    install_name_tool -change @rpath/libshm.dylib $out/lib/libshm.dylib $out/lib/libtorch_python.dylib
+    install_name_tool -change @rpath/libc10.dylib $out/lib/libc10.dylib $out/lib/libtorch_python.dylib
+    install_name_tool -change @rpath/libiomp5.dylib $out/lib/libiomp5.dylib $out/lib/libtorch_python.dylib
+    install_name_tool -change @rpath/libtorch.dylib $out/lib/libtorch.dylib $out/lib/libtorch_python.dylib
+    install_name_tool -change @rpath/libtorch_cpu.dylib $out/lib/libtorch_cpu.dylib $out/lib/libtorch_python.dylib
+
+    install_name_tool -change @rpath/libc10.dylib $out/lib/libc10.dylib $out/lib/libtorch.dylib
+    install_name_tool -change @rpath/libiomp5.dylib $out/lib/libiomp5.dylib $out/lib/libtorch.dylib
+    install_name_tool -change @rpath/libtorch_cpu.dylib $out/lib/libtorch_cpu.dylib $out/lib/libtorch.dylib
+
+    install_name_tool -change @rpath/libc10.dylib $out/lib/libc10.dylib $out/lib/libtorch_cpu.dylib
+    install_name_tool -change @rpath/libiomp5.dylib $out/lib/libiomp5.dylib $out/lib/libtorch_cpu.dylib
+    install_name_tool -change @rpath/libtensorpipe.dylib $out/lib/libtensorpipe.dylib $out/lib/libtorch_cpu.dylib
+
+    install_name_tool -change @rpath/libc10.dylib $out/lib/libc10.dylib $out/lib/libcaffe2_observers.dylib
+    install_name_tool -change @rpath/libiomp5.dylib $out/lib/libiomp5.dylib $out/lib/libcaffe2_observers.dylib
+    install_name_tool -change @rpath/libtorch.dylib $out/lib/libtorch.dylib $out/lib/libcaffe2_observers.dylib
+    install_name_tool -change @rpath/libtorch_cpu.dylib $out/lib/libtorch_cpu.dylib $out/lib/libcaffe2_observers.dylib
+
+    install_name_tool -change @rpath/libc10.dylib $out/lib/libc10.dylib $out/lib/libcaffe2_module_test_dynamic.dylib
+    install_name_tool -change @rpath/libiomp5.dylib $out/lib/libiomp5.dylib $out/lib/libcaffe2_module_test_dynamic.dylib
+    install_name_tool -change @rpath/libtorch.dylib $out/lib/libtorch.dylib $out/lib/libcaffe2_module_test_dynamic.dylib
+    install_name_tool -change @rpath/libtorch_cpu.dylib $out/lib/libtorch_cpu.dylib $out/lib/libcaffe2_module_test_dynamic.dylib
+
+    install_name_tool -change @rpath/libc10.dylib $out/lib/libc10.dylib $out/lib/libcaffe2_detectron_ops.dylib
+    install_name_tool -change @rpath/libiomp5.dylib $out/lib/libiomp5.dylib $out/lib/libcaffe2_detectron_ops.dylib
+    install_name_tool -change @rpath/libtorch.dylib $out/lib/libtorch.dylib $out/lib/libcaffe2_detectron_ops.dylib
+    install_name_tool -change @rpath/libtorch_cpu.dylib $out/lib/libtorch_cpu.dylib $out/lib/libcaffe2_detectron_ops.dylib
+
+    install_name_tool -change @rpath/libc10.dylib $out/lib/libc10.dylib $out/lib/libshm.dylib
+    install_name_tool -change @rpath/libiomp5.dylib $out/lib/libiomp5.dylib $out/lib/libshm.dylib
+    install_name_tool -change @rpath/libtorch.dylib $out/lib/libtorch.dylib $out/lib/libshm.dylib
+    install_name_tool -change @rpath/libtorch_cpu.dylib $out/lib/libtorch_cpu.dylib $out/lib/libshm.dylib
+
+    install_name_tool -change @rpath/libiomp5.dylib $out/lib/libiomp5.dylib $out/lib/libtorch_global_deps.dylib
+    install_name_tool -change @rpath/libtorch_cpu.dylib $out/lib/libtorch_cpu.dylib $out/lib/libtorch_global_deps.dylib
+  '';
+
+  outputs = [ "out" "dev" ];
+
+  passthru.tests = callPackage ./test { };
+
+  meta = with stdenv.lib; {
+    description = "C++ API of the PyTorch machine learning framework";
+    homepage = "https://pytorch.org/";
+    license = licenses.unfree; # Includes CUDA and Intel MKL.
+    platforms = with platforms; linux ++ darwin;
+  };
+}
diff --git a/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix b/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix
new file mode 100644
index 0000000000000..92a2e05e0ba3b
--- /dev/null
+++ b/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix
@@ -0,0 +1,14 @@
+{
+  x86_64-darwin-cpu = {
+    url = "https://download.pytorch.org/libtorch/cpu/libtorch-macos-1.6.0.zip";
+    sha256 = "0d4n7la31qzl4s9pwvm07la7q6lhcwiww0yjpfz3kw6nvx84p22r";
+  };
+  x86_64-linux-cpu = {
+    url = "https://download.pytorch.org/libtorch/cpu/libtorch-cxx11-abi-shared-with-deps-1.6.0%2Bcpu.zip";
+    sha256 = "1975b4zvyihzh89vnwspw0vf9qr05sxj8939vcrlmv3gzvdspcxz";
+  };
+  x86_64-linux-cuda = {
+    url = "https://download.pytorch.org/libtorch/cu102/libtorch-cxx11-abi-shared-with-deps-1.6.0.zip";
+    sha256 = "127qnfyi1faqbm40sbnsyqxjhrqj82bzwqyz7c1hs2bm0zgrrpya";
+  };
+}
diff --git a/pkgs/development/libraries/science/math/libtorch/test/CMakeLists.txt b/pkgs/development/libraries/science/math/libtorch/test/CMakeLists.txt
new file mode 100644
index 0000000000000..b302449ef7722
--- /dev/null
+++ b/pkgs/development/libraries/science/math/libtorch/test/CMakeLists.txt
@@ -0,0 +1,4 @@
+find_package(Torch REQUIRED)
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORCH_CXX_FLAGS}")
+add_executable(test test.cpp)
+target_link_libraries(test "${TORCH_LIBRARIES}")
diff --git a/pkgs/development/libraries/science/math/libtorch/test/default.nix b/pkgs/development/libraries/science/math/libtorch/test/default.nix
new file mode 100644
index 0000000000000..d661ec28db983
--- /dev/null
+++ b/pkgs/development/libraries/science/math/libtorch/test/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, cmake, libtorch-bin, symlinkJoin }:
+
+stdenv.mkDerivation {
+  pname = "libtorch-test";
+  version = libtorch-bin.version;
+
+  src = ./.;
+
+  postPatch = ''
+    cat CMakeLists.txt
+  '';
+
+  makeFlags = [ "VERBOSE=1" ];
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ libtorch-bin ];
+
+  installPhase = ''
+    touch $out
+  '';
+
+  checkPhase = ''
+    ./test
+  '';
+}
diff --git a/pkgs/development/libraries/science/math/libtorch/test/test.cpp b/pkgs/development/libraries/science/math/libtorch/test/test.cpp
new file mode 100644
index 0000000000000..5537724ce5f67
--- /dev/null
+++ b/pkgs/development/libraries/science/math/libtorch/test/test.cpp
@@ -0,0 +1,7 @@
+#include <torch/torch.h>
+#include <iostream>
+
+int main() {
+  torch::Tensor tensor = torch::eye(3);
+  std::cout << tensor << std::endl;
+}
diff --git a/pkgs/development/libraries/science/math/openlibm/default.nix b/pkgs/development/libraries/science/math/openlibm/default.nix
index 7517ca9c6cb59..560f39e4e99a2 100644
--- a/pkgs/development/libraries/science/math/openlibm/default.nix
+++ b/pkgs/development/libraries/science/math/openlibm/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "openlibm";
-  version = "0.7.0";
+  version = "0.7.1";
   src = fetchurl {
     url = "https://github.com/JuliaLang/openlibm/archive/v${version}.tar.gz";
-    sha256 = "18q6mrq4agvlpvhix2k13qcyvqqzh30vj7b329dva64035rzg68n";
+    sha256 = "0yg8sfibr38hpb4s5ri7i0ivp96c7khdwhlxngjiymvl3jvm5cnl";
   };
 
   makeFlags = [ "prefix=$(out)" ];
diff --git a/pkgs/development/libraries/science/math/suitesparse-graphblas/default.nix b/pkgs/development/libraries/science/math/suitesparse-graphblas/default.nix
index 5244ccdb28172..1c910a4f75bb6 100644
--- a/pkgs/development/libraries/science/math/suitesparse-graphblas/default.nix
+++ b/pkgs/development/libraries/science/math/suitesparse-graphblas/default.nix
@@ -6,7 +6,7 @@
 
 stdenv.mkDerivation rec {
   pname = "suitesparse-graphblas";
-  version = "3.3.0";
+  version = "3.3.3";
 
   outputs = [ "out" "dev" ];
 
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     owner = "DrTimothyAldenDavis";
     repo = "GraphBLAS";
     rev = "v${version}";
-    sha256 = "1fin9741ild3dv7c9gk07kpizsnnx17ar9cv9lny8vl47pms940h";
+    sha256 = "1nmygb2yny0mdqp0mc6760gbxklq1jjm0c6s39qkdwzf3n9f8j7p";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/sparsehash/default.nix b/pkgs/development/libraries/sparsehash/default.nix
index 6845c616e9c1c..6007560a11ff7 100644
--- a/pkgs/development/libraries/sparsehash/default.nix
+++ b/pkgs/development/libraries/sparsehash/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  name = "sparsehash-2.0.3";
+  name = "sparsehash-2.0.4";
 
   src = fetchFromGitHub {
     owner = "sparsehash";
     repo = "sparsehash";
     rev = name;
-    sha256 = "0m3f0cnpnpf6aak52wn8xbrrdw8p0yhq8csgc8nlvf9zp8c402na";
+    sha256 = "1pf1cjvcjdmb9cd6gcazz64x0cd2ndpwh6ql2hqpypjv725xwxy7";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/spdlog/default.nix b/pkgs/development/libraries/spdlog/default.nix
index add1dcf10cb0f..22266bfd4b012 100644
--- a/pkgs/development/libraries/spdlog/default.nix
+++ b/pkgs/development/libraries/spdlog/default.nix
@@ -35,8 +35,8 @@ let
 in
 {
   spdlog_1 = generic {
-    version = "1.6.0";
-    sha256 = "15fn8nd9xj7wrxcg9n4fjffid790qg2m366rx2lq2fc9v9walrxs";
+    version = "1.7.0";
+    sha256 = "1ryaa22ppj60461hcdb8nk7jwj84arp4iw4lyw594py92g4vnx3j";
   };
 
   spdlog_0 = generic {
diff --git a/pkgs/development/libraries/speechd/default.nix b/pkgs/development/libraries/speechd/default.nix
index eab6c1d446cd8..fbf399cb246e1 100644
--- a/pkgs/development/libraries/speechd/default.nix
+++ b/pkgs/development/libraries/speechd/default.nix
@@ -39,11 +39,11 @@ let
       throw "You need to enable at least one output module.";
 in stdenv.mkDerivation rec {
   pname = "speech-dispatcher";
-  version = "0.9.1";
+  version = "0.10.1";
 
   src = fetchurl {
     url = "https://github.com/brailcom/speechd/releases/download/${version}/${pname}-${version}.tar.gz";
-    sha256 = "16bg52hnkrsrs7kgbzanb34b9zb6fqxwj0a9bmsxmj1skkil1h1p";
+    sha256 = "0j2lfzkmbsxrrgjw6arzvnfd4jn5pxab28xsk2djssr2ydb9x309";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/strigi/default.nix b/pkgs/development/libraries/strigi/default.nix
deleted file mode 100644
index 33a2ae25b1219..0000000000000
--- a/pkgs/development/libraries/strigi/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ stdenv, fetchurl, cmake, qt4, perl, bzip2, libxml2, exiv2
-, clucene_core, fam, zlib, dbus, pkgconfig
-}:
-
-stdenv.mkDerivation rec {
-  pname = "strigi";
-  version = "0.7.8";
-
-  src = fetchurl {
-    url = "https://www.vandenoever.info/software/strigi/${pname}-${version}.tar.bz2";
-    sha256 = "12grxzqwnvbyqw7q1gnz42lypadxmq89vk2qpxczmpmc4nk63r23";
-  };
-
-  includeAllQtDirs = true;
-
-  CLUCENE_HOME = clucene_core;
-
-  buildInputs =
-    [ zlib bzip2 libxml2 qt4 exiv2 clucene_core fam dbus.out ];
-
-  nativeBuildInputs = [ cmake pkgconfig perl ];
-
-  patches = [ ./export_bufferedstream.patch ./gcc6.patch ];
-
-  enableParallelBuilding = true;
-
-  # Strigi installs some libraries in an incorrect place
-  # ($out/$out/lib instead of $out/lib), so move them to the right
-  # place.
-  postInstall =
-    ''
-      mv $out/$out/lib/* $out/lib
-      rm -rf $out/nix
-    '';
-
-  meta = {
-    homepage = "http://strigi.sourceforge.net";
-    description = "A very fast and efficient crawler to index data on your harddrive";
-    license = "LGPL";
-    maintainers = with stdenv.lib.maintainers; [ sander ];
-    inherit (qt4.meta) platforms;
-  };
-}
diff --git a/pkgs/development/libraries/strigi/export_bufferedstream.patch b/pkgs/development/libraries/strigi/export_bufferedstream.patch
deleted file mode 100644
index 4c6b34fe1bec4..0000000000000
--- a/pkgs/development/libraries/strigi/export_bufferedstream.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -u -r strigi-0.7.8/libstreams/include/strigi/bufferedstream.h strigi-0.7.8_new/libstreams/include/strigi/bufferedstream.h
---- strigi-0.7.8/libstreams/include/strigi/bufferedstream.h	2013-02-05 13:34:57.000000000 -0800
-+++ strigi-0.7.8_new/libstreams/include/strigi/bufferedstream.h	2013-07-14 17:01:54.000000000 -0700
-@@ -34,7 +34,7 @@
-  * BufferedStream will do the rest.
-  */
- template <class T>
--class BufferedStream : public StreamBase<T> {
-+class STRIGI_EXPORT BufferedStream : public StreamBase<T> {
- private:
-     StreamBuffer<T> buffer;
-     bool finishedWritingToBuffer;
diff --git a/pkgs/development/libraries/strigi/gcc6.patch b/pkgs/development/libraries/strigi/gcc6.patch
deleted file mode 100644
index b46f6c52b823e..0000000000000
--- a/pkgs/development/libraries/strigi/gcc6.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-https://sourceforge.net/p/strigi/patches/4/
-
-and a fix for
-
-/tmp/nix-build-strigi-0.7.8.drv-0/strigi-0.7.8/libstreamanalyzer/plugins/indexers/clucenengindexer/cluceneindexreader.cpp:325:37: error: no matching function for call to 'make_pair(std::__cxx11::string, std::__cxx11::string&)'
-             wchartoutf8(name), value));
-
-diff -Naur strigi-0.7.8.old/libstreamanalyzer/cmake/MacroCheckGccVisibility.cmake strigi-0.7.8/libstreamanalyzer/cmake/MacroCheckGccVisibility.cmake
---- strigi-0.7.8.old/libstreamanalyzer/cmake/MacroCheckGccVisibility.cmake	2013-02-05 16:34:52.000000000 -0500
-+++ strigi-0.7.8/libstreamanalyzer/cmake/MacroCheckGccVisibility.cmake	2016-05-14 11:39:54.586260564 -0400
-@@ -15,7 +15,7 @@
-    # get the gcc version
-    exec_program(${CMAKE_C_COMPILER} ARGS ${CMAKE_C_COMPILER_ARG1} --version OUTPUT_VARIABLE _gcc_version_info)
- 
--   string (REGEX MATCH "[345]\\.[0-9]\\.[0-9]" _gcc_version "${_gcc_version_info}")
-+   string (REGEX MATCH "[3456789]\\.[0-9]\\.[0-9]" _gcc_version "${_gcc_version_info}")
-    # gcc on mac just reports: "gcc (GCC) 3.3 20030304 ..." without the patch level, handle this here:
-    if (NOT _gcc_version)
-       string (REGEX REPLACE ".*\\(GCC\\).* ([34]\\.[0-9]) .*" "\\1.0" _gcc_version "${_gcc_version_info}")
-diff -Naur strigi-0.7.8.old/libstreams/cmake/MacroCheckGccVisibility.cmake strigi-0.7.8/libstreams/cmake/MacroCheckGccVisibility.cmake
---- strigi-0.7.8.old/libstreams/cmake/MacroCheckGccVisibility.cmake	2013-02-05 16:34:57.000000000 -0500
-+++ strigi-0.7.8/libstreams/cmake/MacroCheckGccVisibility.cmake	2016-05-14 11:40:11.340134414 -0400
-@@ -15,7 +15,7 @@
-    # get the gcc version
-    exec_program(${CMAKE_C_COMPILER} ARGS ${CMAKE_C_COMPILER_ARG1} --version OUTPUT_VARIABLE _gcc_version_info)
- 
--   string (REGEX MATCH "[345]\\.[0-9]\\.[0-9]" _gcc_version "${_gcc_version_info}")
-+   string (REGEX MATCH "[3456789]\\.[0-9]\\.[0-9]" _gcc_version "${_gcc_version_info}")
-    # gcc on mac just reports: "gcc (GCC) 3.3 20030304 ..." without the patch level, handle this here:
-    if (NOT _gcc_version)
-       string (REGEX REPLACE ".*\\(GCC\\).* ([34]\\.[0-9]) .*" "\\1.0" _gcc_version "${_gcc_version_info}")
-
-diff -ru strigi-0.7.8-orig/libstreamanalyzer/plugins/indexers/clucenengindexer/cluceneindexreader.cpp strigi-0.7.8/libstreamanalyzer/plugins/indexers/clucenengindexer/cluceneindexreader.cpp
---- strigi-0.7.8-orig/libstreamanalyzer/plugins/indexers/clucenengindexer/cluceneindexreader.cpp	2013-02-05 22:34:52.000000000 +0100
-+++ strigi-0.7.8/libstreamanalyzer/plugins/indexers/clucenengindexer/cluceneindexreader.cpp	2017-07-31 10:56:27.067902643 +0200
-@@ -321,8 +321,7 @@
-         string size = value;
-         doc.size = atoi(size.c_str());
-     } else {
--        doc.properties.insert(make_pair<const string, string>(
--            wchartoutf8(name), value));
-+        doc.properties.emplace(wchartoutf8(name), value);
-     }
- }
- Variant
diff --git a/pkgs/development/libraries/tiledb/default.nix b/pkgs/development/libraries/tiledb/default.nix
index 3ebfd4ea919bf..2726ed7f237b9 100644
--- a/pkgs/development/libraries/tiledb/default.nix
+++ b/pkgs/development/libraries/tiledb/default.nix
@@ -16,19 +16,26 @@
 , python
 , gtest
 , doxygen
+, fixDarwinDylibNames
 }:
 
 stdenv.mkDerivation rec {
   pname = "tiledb";
-  version = "1.7.7";
+  version = "2.0.7";
 
   src = fetchFromGitHub {
     owner = "TileDB-Inc";
     repo = "TileDB";
     rev = version;
-    sha256 = "0vpbyxi8k29c7sjpk86y5w3yyp5fn62q5xvbw061wgp7vrprf8bm";
+    sha256 = "00g8ibsbnl4wjfx3qg4qy6s7z6dsj898j0yqfhw1gjr1pb5dsapb";
   };
 
+  # (bundled) blosc headers have a warning on some archs that it will be using
+  # unaccelerated routines.
+  cmakeFlags = [
+    "-DTILEDB_WERROR=0"
+  ];
+
   nativeBuildInputs = [
     clang-tools
     cmake
@@ -53,7 +60,7 @@ stdenv.mkDerivation rec {
     openssl
     boost
     libpqxx
-  ];
+  ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
 
   # emulate the process of pulling catch down
   postPatch = ''
@@ -65,11 +72,15 @@ stdenv.mkDerivation rec {
 
   installTargets = [ "install-tiledb" "doc" ];
 
+  postInstall = lib.optionalString stdenv.isDarwin ''
+    install_name_tool -add_rpath ${tbb}/lib $out/lib/libtiledb.dylib
+  '';
+
   meta = with lib; {
     description = "TileDB allows you to manage the massive dense and sparse multi-dimensional array data";
     homepage = "https://github.com/TileDB-Inc/TileDB";
     license = licenses.mit;
-    platforms = [ "x86_64-linux"];
+    platforms = platforms.unix;
     maintainers = with maintainers; [ rakesh4g ];
   };
 
diff --git a/pkgs/development/libraries/wcslib/default.nix b/pkgs/development/libraries/wcslib/default.nix
index d13cdaff8c621..2b3414df1a4b1 100644
--- a/pkgs/development/libraries/wcslib/default.nix
+++ b/pkgs/development/libraries/wcslib/default.nix
@@ -1,14 +1,14 @@
 { fetchurl,  stdenv, flex }:
 
 stdenv.mkDerivation rec {
-  version = "7.3";
+  version = "7.3.1";
   pname = "wcslib";
 
   buildInputs = [ flex ];
 
   src = fetchurl {
     url = "ftp://ftp.atnf.csiro.au/pub/software/wcslib/${pname}-${version}.tar.bz2";
-    sha256 ="0q99k61l2zh6irzkd5195aama37mlm0nivamz6j6r8l2ad1cy0ab";
+    sha256 ="0p0bp3jll9v2094a8908vk82m7j7qkjqzkngm1r9qj1v6l6j5z6c";
   };
 
   prePatch = ''
diff --git a/pkgs/development/libraries/webkit2-sharp/default.nix b/pkgs/development/libraries/webkit2-sharp/default.nix
new file mode 100644
index 0000000000000..b8a476b3b332b
--- /dev/null
+++ b/pkgs/development/libraries/webkit2-sharp/default.nix
@@ -0,0 +1,49 @@
+{
+  stdenv,
+  autoreconfHook,
+  fetchFromGitHub,
+  gtk-sharp-3_0,
+  lib,
+  libxslt,
+  mono,
+  pkg-config,
+  webkitgtk,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "webkit2-sharp";
+  version = "a59fd76dd730432c76b12ee6347ea66567107ab9";
+
+  src = fetchFromGitHub {
+    owner = "hbons";
+    repo = "webkit2-sharp";
+    rev = version;
+    sha256 = "sha256:0a7vx81zvzn2wq4q2mqrxvlps1mqk28lm1gpfndqryxm4iiw28vc";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    libxslt
+    mono
+    pkg-config
+  ];
+
+  buildInputs = [
+    gtk-sharp-3_0
+    webkitgtk
+  ];
+
+  ac_cv_path_MONODOCER = "no";
+  installFlagsArray = ["GAPIXMLDIR=/tmp/gapixml"];
+
+  passthru = {
+    inherit webkitgtk;
+  };
+
+  meta = {
+    description = "C# bindings for WebKit 2 with GTK+ 3";
+    homepage = "https://github.com/hbons/webkit2-sharp";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ kevincox ];
+  };
+}
diff --git a/pkgs/development/libraries/wolfssl/default.nix b/pkgs/development/libraries/wolfssl/default.nix
index 2815520f5179e..30fc90ec8c098 100644
--- a/pkgs/development/libraries/wolfssl/default.nix
+++ b/pkgs/development/libraries/wolfssl/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wolfssl";
-  version = "4.4.0";
+  version = "4.5.0";
 
   src = fetchFromGitHub {
     owner = "wolfSSL";
     repo = "wolfssl";
     rev = "v${version}-stable";
-    sha256 = "1bgkxqgxwa5dvi7fkna64wpcs552f3yxvs6fh6d32v7vg88vpfx9";
+    sha256 = "138ppnwkqkfi7nnqpd0b93dqaph72ma65m9286bz2qzlis1x8r0v";
   };
 
   configureFlags = [ "--enable-all" ];
diff --git a/pkgs/development/libraries/wxwidgets/2.8/default.nix b/pkgs/development/libraries/wxwidgets/2.8/default.nix
index 98cf0d58479b0..deb7d19c0de1a 100644
--- a/pkgs/development/libraries/wxwidgets/2.8/default.nix
+++ b/pkgs/development/libraries/wxwidgets/2.8/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, gtk2, libXinerama, libSM, libXxf86vm, xorgproto
-, gstreamer, gst-plugins-base, GConf, libX11, cairo
+, libX11, cairo
 , libGLSupported ? stdenv.lib.elem stdenv.hostPlatform.system stdenv.lib.platforms.mesaPlatforms
 , withMesa ? stdenv.lib.elem stdenv.hostPlatform.system stdenv.lib.platforms.mesaPlatforms
 , libGLU ? null, libGL ? null
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     sha256 = "1l1w4i113csv3bd5r8ybyj0qpxdq83lj6jrc5p7cc10mkwyiagqz";
   };
 
-  buildInputs = [ gtk2 libXinerama libSM libXxf86vm xorgproto gstreamer gst-plugins-base GConf libX11 cairo ]
+  buildInputs = [ gtk2 libXinerama libSM libXxf86vm xorgproto libX11 cairo ]
     ++ optional withMesa libGLU;
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/libraries/wxwidgets/2.9/default.nix b/pkgs/development/libraries/wxwidgets/2.9/default.nix
index 3812c81a51974..5db7cfc26ba91 100644
--- a/pkgs/development/libraries/wxwidgets/2.9/default.nix
+++ b/pkgs/development/libraries/wxwidgets/2.9/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, gtk2, libXinerama, libSM, libXxf86vm, xorgproto
-, gstreamer, gst-plugins-base, GConf, setfile
+, setfile
 , libGLSupported ? stdenv.lib.elem stdenv.hostPlatform.system stdenv.lib.platforms.mesaPlatforms
 , withMesa ? stdenv.lib.elem stdenv.hostPlatform.system stdenv.lib.platforms.mesaPlatforms
 , libGLU ? null, libGL ? null
@@ -32,8 +32,7 @@ stdenv.mkDerivation {
   ];
 
   buildInputs =
-    [ gtk2 libXinerama libSM libXxf86vm xorgproto gstreamer
-      gst-plugins-base GConf ]
+    [ gtk2 libXinerama libSM libXxf86vm xorgproto ]
     ++ optional withMesa libGLU
     ++ optionals stdenv.isDarwin [ setfile Carbon Cocoa Kernel QuickTime ];
 
@@ -42,7 +41,7 @@ stdenv.mkDerivation {
   propagatedBuildInputs = optional stdenv.isDarwin AGL;
 
   configureFlags =
-    [ "--enable-gtk2" "--disable-precomp-headers" "--enable-mediactrl"
+    [ "--enable-gtk2" "--disable-precomp-headers"
       (if compat24 then "--enable-compat24" else "--disable-compat24")
       (if compat26 then "--enable-compat26" else "--disable-compat26") ]
     ++ optional unicode "--enable-unicode"
diff --git a/pkgs/development/libraries/wxwidgets/3.0/default.nix b/pkgs/development/libraries/wxwidgets/3.0/default.nix
index f125ac9dca0b8..df90342a972ef 100644
--- a/pkgs/development/libraries/wxwidgets/3.0/default.nix
+++ b/pkgs/development/libraries/wxwidgets/3.0/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, fetchurl, pkgconfig
 , libXinerama, libSM, libXxf86vm
-, gtk2, GConf ? null, gtk3
+, gtk2, gtk3
 , xorgproto, gst_all_1, setfile
 , libGLSupported ? stdenv.lib.elem stdenv.hostPlatform.system stdenv.lib.platforms.mesaPlatforms
 , withMesa ? libGLSupported
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     libXinerama libSM libXxf86vm xorgproto gst_all_1.gstreamer gst_all_1.gst-plugins-base
-  ] ++ optionals withGtk2 [ gtk2 GConf ]
+  ] ++ optionals withGtk2 [ gtk2 ]
     ++ optional (!withGtk2) gtk3
     ++ optional withMesa libGLU
     ++ optional withWebKit webkitgtk
diff --git a/pkgs/development/libraries/wxwidgets/3.1/default.nix b/pkgs/development/libraries/wxwidgets/3.1/default.nix
index 0f30deb6c5227..44e6fe49b4896 100644
--- a/pkgs/development/libraries/wxwidgets/3.1/default.nix
+++ b/pkgs/development/libraries/wxwidgets/3.1/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, fetchurl, pkgconfig
 , libXinerama, libSM, libXxf86vm
-, gtk2, GConf ? null, gtk3
+, 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,7 +30,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     libXinerama libSM libXxf86vm xorgproto gst_all_1.gstreamer gst_all_1.gst-plugins-base
-  ] ++ optionals withGtk2 [ gtk2 GConf ]
+  ] ++ optionals withGtk2 [ gtk2 ]
     ++ optional (!withGtk2) gtk3
     ++ optional withMesa libGLU
     ++ optional withWebKit webkitgtk
diff --git a/pkgs/development/libraries/xapian/default.nix b/pkgs/development/libraries/xapian/default.nix
index 33a4fb93cbaba..195aea5c2f180 100644
--- a/pkgs/development/libraries/xapian/default.nix
+++ b/pkgs/development/libraries/xapian/default.nix
@@ -38,5 +38,5 @@ let
     };
   };
 in {
-  xapian_1_4 = generic "1.4.16" "4937f2f49ff27e39a42150e928c8b45877b0bf456510f0785f50159a5cb6bf70";
+  xapian_1_4 = generic "1.4.17" "0bjpaavdckl4viznr8gbq476fvg648sj4rks2vacmc51vrb8bsxm";
 }
diff --git a/pkgs/servers/hasura/ci-info.nix b/pkgs/development/misc/haskell/hasura/ci-info/default.nix
index 53c85a2e5ba19..53c85a2e5ba19 100644
--- a/pkgs/servers/hasura/ci-info.nix
+++ b/pkgs/development/misc/haskell/hasura/ci-info/default.nix
diff --git a/pkgs/servers/hasura/graphql-engine.nix b/pkgs/development/misc/haskell/hasura/graphql-engine/default.nix
index 05ba895be080a..0bd68afae4b80 100644
--- a/pkgs/servers/hasura/graphql-engine.nix
+++ b/pkgs/development/misc/haskell/hasura/graphql-engine/default.nix
@@ -17,18 +17,18 @@
 , text-builder, text-conversions, th-lift-instances, these, time
 , transformers, transformers-base, unix, unordered-containers
 , uri-encode, uuid, vector, wai, wai-websockets, warp, websockets
-, wreq, x509, yaml, zlib
+, wreq, x509, yaml, zlib, witherable, semialign, validation, cron
 }:
 mkDerivation {
   pname = "graphql-engine";
   version = "1.0.0";
   src = fetchgit {
     url = "https://github.com/hasura/graphql-engine.git";
-    sha256 = "0hg44zl3gqa8lq7kggwgmgbsgdc7zrv5cxs507vilg11xklsbz4l";
-    rev = "27b0b59361cebecd074bd59123f602e7b013bac1";
+    sha256 = "sha256-tNKoi3dtoXj0nn4qBgLBroo7SgX7SdVaHtBqjs1S3hQ=";
+    rev = "1e3eb035d3c915032ba23e502bcb0132b4d54202";
     fetchSubmodules = true;
   };
-  postUnpack = "sourceRoot+=/server; echo source root reset to $sourceRoot";
+ postUnpack = "sourceRoot+=/server; echo source root reset to $sourceRoot";
   isLibrary = true;
   isExecutable = true;
   libraryHaskellDepends = [
@@ -48,6 +48,8 @@ mkDerivation {
     th-lift-instances these time transformers transformers-base unix
     unordered-containers uri-encode uuid vector wai wai-websockets warp
     websockets wreq x509 yaml zlib
+    witherable semialign validation
+    cron
   ];
   executableHaskellDepends = [
     base bytestring pg-client text text-conversions
diff --git a/pkgs/servers/hasura/graphql-parser.nix b/pkgs/development/misc/haskell/hasura/graphql-parser/default.nix
index 8066bb83dd0ac..991b5384d5c21 100644
--- a/pkgs/servers/hasura/graphql-parser.nix
+++ b/pkgs/development/misc/haskell/hasura/graphql-parser/default.nix
@@ -5,11 +5,11 @@
 }:
 mkDerivation {
   pname = "graphql-parser";
-  version = "0.1.0.0";
+  version = "0.1.0.1";
   src = fetchgit {
     url = "https://github.com/hasura/graphql-parser-hs.git";
-    sha256 = "0vz0sqqmr1l02d3f1pc5k7rm7vpxmg5d5ijvdcwdm34yw6x5lz1v";
-    rev = "623ad78aa46e7ba2ef1aa58134ad6136b0a85071";
+    sha256 = "sha256-oem/h0AQPk7eSM/P6wMoWV9KirxutE4hnQWwrpQ6TGk=";
+    rev = "ba8e26fef1488cf3c8c08e86f02730f56ec84e1f";
     fetchSubmodules = true;
   };
   libraryHaskellDepends = [
@@ -29,6 +29,7 @@ mkDerivation {
     template-haskell text text-builder th-lift-instances
     unordered-containers vector
   ];
+  doCheck = false;
   prePatch = "hpack";
   homepage = "https://github.com/hasura/graphql-parser-hs#readme";
   license = stdenv.lib.licenses.bsd3;
diff --git a/pkgs/servers/hasura/pg-client.nix b/pkgs/development/misc/haskell/hasura/pg-client/default.nix
index 725e5e7f64084..725e5e7f64084 100644
--- a/pkgs/servers/hasura/pg-client.nix
+++ b/pkgs/development/misc/haskell/hasura/pg-client/default.nix
diff --git a/pkgs/development/node-packages/node-packages.json b/pkgs/development/node-packages/node-packages.json
index 69a61caae1505..df5d4e68a54be 100644
--- a/pkgs/development/node-packages/node-packages.json
+++ b/pkgs/development/node-packages/node-packages.json
@@ -199,6 +199,7 @@
 , "vim-language-server"
 , "vscode-css-languageserver-bin"
 , "vscode-html-languageserver-bin"
+, "vscode-json-languageserver-bin"
 , "vue-cli"
 , "vue-language-server"
 , "web-ext"
diff --git a/pkgs/development/node-packages/node-packages.nix b/pkgs/development/node-packages/node-packages.nix
index 23bc954c5e78c..db00f42aa05d5 100644
--- a/pkgs/development/node-packages/node-packages.nix
+++ b/pkgs/development/node-packages/node-packages.nix
@@ -49,13 +49,13 @@ let
         sha512 = "VHRggJbRY8vHIADWVwbq9cZux0L9LdmlN31XA3daVAI4gMkKdQEocxB7KqGDt6SfIJ3NYi/qh1nRJGooYmTBiA==";
       };
     };
-    "@angular-devkit/architect-0.1000.8" = {
+    "@angular-devkit/architect-0.1001.0" = {
       name = "_at_angular-devkit_slash_architect";
       packageName = "@angular-devkit/architect";
-      version = "0.1000.8";
+      version = "0.1001.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1000.8.tgz";
-        sha512 = "2AqPbiEugtPxNz4MGhLh+imUVelhW9h1cdJs2AbxZosIxftPb5DNDQUSAwVmRGp4CtcXVrlvcDwc0f4Fw1aiIA==";
+        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1001.0.tgz";
+        sha512 = "mJYy9tqy7ZfqAJYlQPgcHVUiaAxWnxEEpiTAftsKz/yqdO45YFkzehYXJfCqbAXYr4r7hYY3KqKMgj41ixkS8Q==";
       };
     };
     "@angular-devkit/core-10.0.7" = {
@@ -67,13 +67,13 @@ let
         sha512 = "pXaZgsQ8LHpRx4QGAUYDE8GwBQLAtoqPh6oUCwRJwBExm5rl13OGPTBWewHiq0ysV/SnFXvOjxwAaHQvC1AgZw==";
       };
     };
-    "@angular-devkit/core-10.0.8" = {
+    "@angular-devkit/core-10.1.0" = {
       name = "_at_angular-devkit_slash_core";
       packageName = "@angular-devkit/core";
-      version = "10.0.8";
+      version = "10.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-10.0.8.tgz";
-        sha512 = "d9S8VQuqaYg0c/Y2kl/MtICtZ+UKlH5bLm8y2fb2WfSL4A5XIqMGdEVxzFSiR0b1Bnt4NAoQMcBec1blHAqMSQ==";
+        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-10.1.0.tgz";
+        sha512 = "oNRwAX+5uEwgheS3UUc1W+AerbimqGojCOTdWWcq5XtSviZnBCp1FeMZV+eB6XgUWfbmbWBu39S3sCYmXVHLwg==";
       };
     };
     "@angular-devkit/core-9.1.12" = {
@@ -94,13 +94,13 @@ let
         sha512 = "eyyYPgpjtr3h7WbnNbkDubJ/p+8TgKU6abWd+NmBfTvyeHrpVFUYZabNRcdXwUDSVzfTQKdmLynIkESj/KROrg==";
       };
     };
-    "@angular-devkit/schematics-10.0.8" = {
+    "@angular-devkit/schematics-10.1.0" = {
       name = "_at_angular-devkit_slash_schematics";
       packageName = "@angular-devkit/schematics";
-      version = "10.0.8";
+      version = "10.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-10.0.8.tgz";
-        sha512 = "p2PjvrExuzOe/azyOEcBeIgwZIk4D6VeLkJf/KVjhXOVu13pjIXHX7/qWl+IYnbtj3NZGHqXM5Cr8nxsJNIMpw==";
+        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-10.1.0.tgz";
+        sha512 = "5Vl32bHpcB/oj0oNR8nPLXF7DwPVuzrJjosch8G+sPG2gAG6OpwjUhQjY1U6E4xJGDR6j7fX8jw+TwC2cMgUbQ==";
       };
     };
     "@angular-devkit/schematics-9.1.12" = {
@@ -229,13 +229,13 @@ let
         sha512 = "bQVb6PE34iDmZj6wZZzYm3rLjguxoSqHZj4QReVQsOle/LdIwl48hV9Iz/Pivy9NtVCui9LL/lmSQzMt0G0jkw==";
       };
     };
-    "@apollo/federation-0.19.0" = {
+    "@apollo/federation-0.20.0" = {
       name = "_at_apollo_slash_federation";
       packageName = "@apollo/federation";
-      version = "0.19.0";
+      version = "0.20.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@apollo/federation/-/federation-0.19.0.tgz";
-        sha512 = "8cd8ftHgqaseDTN7RJrROT6FT1xy8RV2Qb9BGhhqPVMHqf08GtidBqQTk6hv1UDR0qu/TRZA6J4Kh7oXeMrPQg==";
+        url = "https://registry.npmjs.org/@apollo/federation/-/federation-0.20.0.tgz";
+        sha512 = "Q2eGSjrArtY04FSVIxUK3/JaVDDw4aJZBRl0+UZ1dwrpk6YtBpydW2u4X6dPTnBqRDpKVGVmc9gkQr8d3LpcKA==";
       };
     };
     "@apollo/protobufjs-1.0.5" = {
@@ -355,31 +355,31 @@ let
         sha512 = "TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ==";
       };
     };
-    "@babel/core-7.11.4" = {
+    "@babel/core-7.11.5" = {
       name = "_at_babel_slash_core";
       packageName = "@babel/core";
-      version = "7.11.4";
+      version = "7.11.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/core/-/core-7.11.4.tgz";
-        sha512 = "5deljj5HlqRXN+5oJTY7Zs37iH3z3b++KjiKtIsJy1NrjOOVSEaJHEetLBhyu0aQOSNNZ/0IuEAan9GzRuDXHg==";
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.11.5.tgz";
+        sha512 = "fsEANVOcZHzrsV6dMVWqpSeXClq3lNbYrfFGme6DE25FQWe7pyeYpXyx9guqUnpy466JLzZ8z4uwSr2iv60V5Q==";
       };
     };
-    "@babel/generator-7.11.0" = {
+    "@babel/generator-7.11.4" = {
       name = "_at_babel_slash_generator";
       packageName = "@babel/generator";
-      version = "7.11.0";
+      version = "7.11.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.11.0.tgz";
-        sha512 = "fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ==";
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.11.4.tgz";
+        sha512 = "Rn26vueFx0eOoz7iifCN2UHT6rGtnkSGWSoDRIy8jZN3B91PzeSULbswfLoOWuTuAcNwpG/mxy+uCTDnZ9Mp1g==";
       };
     };
-    "@babel/generator-7.11.4" = {
+    "@babel/generator-7.11.5" = {
       name = "_at_babel_slash_generator";
       packageName = "@babel/generator";
-      version = "7.11.4";
+      version = "7.11.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.11.4.tgz";
-        sha512 = "Rn26vueFx0eOoz7iifCN2UHT6rGtnkSGWSoDRIy8jZN3B91PzeSULbswfLoOWuTuAcNwpG/mxy+uCTDnZ9Mp1g==";
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.11.5.tgz";
+        sha512 = "9UqHWJ4IwRTy4l0o8gq2ef8ws8UPzvtMkVKjTLAiRmza9p9V6Z+OfuNd9fB1j5Q67F+dVJtPC2sZXI8NM9br4g==";
       };
     };
     "@babel/helper-annotate-as-pure-7.10.4" = {
@@ -409,13 +409,13 @@ let
         sha512 = "5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==";
       };
     };
-    "@babel/helper-builder-react-jsx-experimental-7.10.5" = {
+    "@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.5";
+      version = "7.11.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.5.tgz";
-        sha512 = "Buewnx6M4ttG+NLkKyt7baQn7ScC/Td+e99G914fRU8fGIUivDDgVIQeDHFa5e4CRSJQt58WpNHhsAZgtzVhsg==";
+        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.4" = {
@@ -625,13 +625,13 @@ let
         sha512 = "i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==";
       };
     };
-    "@babel/parser-7.11.4" = {
+    "@babel/parser-7.11.5" = {
       name = "_at_babel_slash_parser";
       packageName = "@babel/parser";
-      version = "7.11.4";
+      version = "7.11.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.11.4.tgz";
-        sha512 = "MggwidiH+E9j5Sh8pbrX5sJvMcsqS5o+7iB42M9/k0CD63MjYbdP4nhSh7uB5wnv2/RVzTZFTxzF/kIa5mrCqA==";
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz";
+        sha512 = "X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==";
       };
     };
     "@babel/plugin-external-helpers-7.8.3" = {
@@ -1156,13 +1156,13 @@ let
         sha512 = "hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==";
       };
     };
-    "@babel/plugin-transform-runtime-7.11.0" = {
+    "@babel/plugin-transform-runtime-7.11.5" = {
       name = "_at_babel_slash_plugin-transform-runtime";
       packageName = "@babel/plugin-transform-runtime";
-      version = "7.11.0";
+      version = "7.11.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.0.tgz";
-        sha512 = "LFEsP+t3wkYBlis8w6/kmnd6Kb1dxTd+wGJ8MlxTGzQo//ehtqlVL4S9DNUa53+dtPSQobN2CXx4d81FqC58cw==";
+        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.4" = {
@@ -1246,13 +1246,13 @@ let
         sha512 = "8BYcnVqQ5kMD2HXoHInBH7H1b/uP3KdnwCYXOqFnXqguOyuu443WXusbIUbWEfY3Z0Txk0M1uG/8YuAMhNl6zg==";
       };
     };
-    "@babel/preset-env-7.11.0" = {
+    "@babel/preset-env-7.11.5" = {
       name = "_at_babel_slash_preset-env";
       packageName = "@babel/preset-env";
-      version = "7.11.0";
+      version = "7.11.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.0.tgz";
-        sha512 = "2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg==";
+        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.5.tgz";
+        sha512 = "kXqmW1jVcnB2cdueV+fyBM8estd5mlNfaQi6lwLgRwCby4edpavgbFhiBNjmWA3JpB/yZGSISa7Srf+TwxDQoA==";
       };
     };
     "@babel/preset-flow-7.10.4" = {
@@ -1264,13 +1264,13 @@ let
         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" = {
@@ -1291,13 +1291,13 @@ let
         sha512 = "SdYnvGPv+bLlwkF2VkJnaX/ni1sMNetcGI1+nThF1gyv6Ph8Qucc4ZZAjM5yZcE/AKRXIOTZz7eSRDWOEjPyRQ==";
       };
     };
-    "@babel/register-7.10.5" = {
+    "@babel/register-7.11.5" = {
       name = "_at_babel_slash_register";
       packageName = "@babel/register";
-      version = "7.10.5";
+      version = "7.11.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/register/-/register-7.10.5.tgz";
-        sha512 = "eYHdLv43nyvmPn9bfNfrcC4+iYNwdQ8Pxk1MFJuU/U5LpSYl/PH4dFMazCYZDFVi8ueG3shvO+AQfLrxpYulQw==";
+        url = "https://registry.npmjs.org/@babel/register/-/register-7.11.5.tgz";
+        sha512 = "CAml0ioKX+kOAvBQDHa/+t1fgOt3qkTIz0TrRtRAT6XY0m5qYZXR85k6/sLCNPMGhYDlCFHCYuU0ybTJbvlC6w==";
       };
     };
     "@babel/runtime-7.10.5" = {
@@ -1327,13 +1327,13 @@ let
         sha512 = "ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==";
       };
     };
-    "@babel/traverse-7.11.0" = {
+    "@babel/traverse-7.11.5" = {
       name = "_at_babel_slash_traverse";
       packageName = "@babel/traverse";
-      version = "7.11.0";
+      version = "7.11.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz";
-        sha512 = "ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==";
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz";
+        sha512 = "EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==";
       };
     };
     "@babel/types-7.10.4" = {
@@ -1345,13 +1345,13 @@ let
         sha512 = "UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==";
       };
     };
-    "@babel/types-7.11.0" = {
+    "@babel/types-7.11.5" = {
       name = "_at_babel_slash_types";
       packageName = "@babel/types";
-      version = "7.11.0";
+      version = "7.11.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz";
-        sha512 = "O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==";
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz";
+        sha512 = "bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==";
       };
     };
     "@bugsnag/browser-7.3.3" = {
@@ -1579,6 +1579,15 @@ let
         sha512 = "ZHkXKq2XFFmAUdmSZrmqUSIrRM4O9gtkdpxMmV+LQl7kScUnbo6pMnXu6+FTDgZ12aW6SDoZoOJfS56WD+Eu6A==";
       };
     };
+    "@eslint/eslintrc-0.1.3" = {
+      name = "_at_eslint_slash_eslintrc";
+      packageName = "@eslint/eslintrc";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.1.3.tgz";
+        sha512 = "4YVwPkANLeNtRjMekzux1ci8hIaH5eGKktGqR0d3LWsKNn5B2X/1Z6Trxy7jQXl9EBGE6Yj02O+t09FMeRllaA==";
+      };
+    };
     "@evocateur/libnpmaccess-3.1.2" = {
       name = "_at_evocateur_slash_libnpmaccess";
       packageName = "@evocateur/libnpmaccess";
@@ -1615,13 +1624,22 @@ let
         sha512 = "EI552lf0aG2nOV8NnZpTxNo2PcXKPmDbF9K8eCBFQdIZwHNGN/mi815fxtmUMa2wTa1yndotICIDt/V0vpEx2w==";
       };
     };
-    "@fluentui/date-time-utilities-7.6.0" = {
+    "@exodus/schemasafe-1.0.0-rc.2" = {
+      name = "_at_exodus_slash_schemasafe";
+      packageName = "@exodus/schemasafe";
+      version = "1.0.0-rc.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.0.0-rc.2.tgz";
+        sha512 = "W98NvvOe/Med3o66xTO03pd7a2omZebH79PV64gSE+ceDdU8uxQhFTa7ISiD1kseyqyOrMyW5/MNdsGEU02i3Q==";
+      };
+    };
+    "@fluentui/date-time-utilities-7.7.0" = {
       name = "_at_fluentui_slash_date-time-utilities";
       packageName = "@fluentui/date-time-utilities";
-      version = "7.6.0";
+      version = "7.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-7.6.0.tgz";
-        sha512 = "lp8BjSF9FW8mpVrfcuVbldVOVZ/lxWzH9xzBG67rkdjIMYwtV0/mFgB6MrKsGvzqDIlvXcoptrcUQNl0/3QA7Q==";
+        url = "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-7.7.0.tgz";
+        sha512 = "rgtGX5x1AeYUfilfkgP6ag+ZKx41BJcUs16k6iSxXxd/mt00DAPOGY8ODGikKFpjGKcUwjKfYBssyKkVHDucfA==";
       };
     };
     "@fluentui/keyboard-key-0.2.11" = {
@@ -1633,40 +1651,49 @@ let
         sha512 = "4iG5vNlRD3PrLaMfDTimHNOP1x6V3Dad0fXOwtvBBMsfdySPE9zlY+G+0aqCFcgjymOriFOk0ANZVBpK7XrnTg==";
       };
     };
-    "@fluentui/react-7.132.0" = {
+    "@fluentui/react-7.134.1" = {
       name = "_at_fluentui_slash_react";
       packageName = "@fluentui/react";
-      version = "7.132.0";
+      version = "7.134.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/react/-/react-7.132.0.tgz";
-        sha512 = "k2ZMkhUJt+wmJPEZUyWi6oiM3NlXT5zWfF0yEEKJlGeFm55Q1OGr5XdflR5Crd9CYE+zoUN7PoYe3NGebdsIUA==";
+        url = "https://registry.npmjs.org/@fluentui/react/-/react-7.134.1.tgz";
+        sha512 = "UMnf1pfTwuphU3lJAfwVsWZULu7MoJmxg/vJyirOvXa/+lQqGQr/SfXthqlkE0DPRMRr2qqtc9iNCfZxi7dfCg==";
       };
     };
-    "@fluentui/react-focus-7.13.3" = {
+    "@fluentui/react-focus-7.15.0" = {
       name = "_at_fluentui_slash_react-focus";
       packageName = "@fluentui/react-focus";
-      version = "7.13.3";
+      version = "7.15.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-7.13.3.tgz";
-        sha512 = "P7iptQRBgyAuxLUq7yusVI0FL92wjo5jdzofatkoONxVHAzrTbGsboiu00PbeYbXxEKjA1+v2y2OfbgGRpglZw==";
+        url = "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-7.15.0.tgz";
+        sha512 = "xbxB0cbyEoUfQZ19pAqBeWCYJ/4IOu1FG4bhVjDimqSD7qKwJbLlJSDNwmHr05SWprdhmqJe23KOwsHMgyvnrw==";
       };
     };
-    "@fluentui/react-icons-0.2.2" = {
+    "@fluentui/react-icons-0.3.0" = {
       name = "_at_fluentui_slash_react-icons";
       packageName = "@fluentui/react-icons";
-      version = "0.2.2";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fluentui/react-icons/-/react-icons-0.3.0.tgz";
+        sha512 = "QDrIhLUpkxM5q5bFE4pkweJJsfaNswdfDoc+X6cmr22Dii+anDFTpOcePEJiTtILxdlEmH0968OcZ4BGZF/joQ==";
+      };
+    };
+    "@fluentui/react-window-provider-0.3.0" = {
+      name = "_at_fluentui_slash_react-window-provider";
+      packageName = "@fluentui/react-window-provider";
+      version = "0.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/react-icons/-/react-icons-0.2.2.tgz";
-        sha512 = "pofZsHgbBVcyVr3I/LlbrX3P06NZnToxlH7cS9xy3LFcyrj629S5+iEXFdVk4O496MJ6qd4/FyxI/3Ru9UNlDg==";
+        url = "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-0.3.0.tgz";
+        sha512 = "zHeH1PAmoFB3OkgU8f51E3oGHrL/CjuvdPBlb1SGpByUGNihAgH/CwvJohV9z0yPDkq+chfNUmxWA/oDVpbh6Q==";
       };
     };
-    "@fluentui/theme-0.1.2" = {
+    "@fluentui/theme-0.2.0" = {
       name = "_at_fluentui_slash_theme";
       packageName = "@fluentui/theme";
-      version = "0.1.2";
+      version = "0.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/theme/-/theme-0.1.2.tgz";
-        sha512 = "hjLowlMEH6vVrE+6dNgrZ8vWXK3a750959aWC5Ss0cWMZPtL3oNxCSwsLD6I65HwErhfDIEXw1HIqNEN9XbiAw==";
+        url = "https://registry.npmjs.org/@fluentui/theme/-/theme-0.2.0.tgz";
+        sha512 = "L5OwqymTdxTVwBa3ifkQLF1A3YU6WMkMTk6PFIMfOonjt8LJ3yMMqZgz+KQR3sF/tzgy4wzW4oBmrxtTfJS2EQ==";
       };
     };
     "@graphql-cli/common-4.0.0" = {
@@ -1687,94 +1714,94 @@ let
         sha512 = "oJZb4PScX25ZGObpw9n7/bJBE7R0oF6hJ4ABe+WvMqSCI3kxaReMTgJJNIrxpmbXscxWM8U1ndLefP5IjPcU7Q==";
       };
     };
-    "@graphql-tools/delegate-6.1.0" = {
+    "@graphql-tools/delegate-6.2.0" = {
       name = "_at_graphql-tools_slash_delegate";
       packageName = "@graphql-tools/delegate";
-      version = "6.1.0";
+      version = "6.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-6.1.0.tgz";
-        sha512 = "LBulO9tEx+4TvRIY3yCivCYdtI18BpDX/qlSs+K7AuTgCH8eJ/S/FinFRTpTK/9bQwXnBh/d9WjiiRekUCiW6g==";
+        url = "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-6.2.0.tgz";
+        sha512 = "jYwg6MuErovAHXhyReTSgRTzdvPB60VEO02KGZskaD5WPqCQy6oqYBetXOp1yG6PBwJvxCTpMKuZvyPVLRM9ww==";
       };
     };
-    "@graphql-tools/graphql-file-loader-6.1.0" = {
+    "@graphql-tools/graphql-file-loader-6.2.0" = {
       name = "_at_graphql-tools_slash_graphql-file-loader";
       packageName = "@graphql-tools/graphql-file-loader";
-      version = "6.1.0";
+      version = "6.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-6.1.0.tgz";
-        sha512 = "UZsCx/JJPlkCPYoKJhOcMpDYRx0RagBJ/0gVjgUyiykGJyl8QqTUz34QZhRFg5WGPWcEyT8z18w5WocPCXwK+g==";
+        url = "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-6.2.0.tgz";
+        sha512 = "anl/fc2KTLF2Eu5Fd9fRYy+N22QBZskP2uKAqyiaJFPiIAOXWAUjK/WJ4uWAAjkGhEnseK0M8hUudgW36w8Smg==";
       };
     };
-    "@graphql-tools/import-6.1.0" = {
+    "@graphql-tools/import-6.2.0" = {
       name = "_at_graphql-tools_slash_import";
       packageName = "@graphql-tools/import";
-      version = "6.1.0";
+      version = "6.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/import/-/import-6.1.0.tgz";
-        sha512 = "MuW9v8w8hc6GvsWQH41NnOAr1f7bkV4E6AWMYpndAHPcuwwGHiLHizLCEjbNovzdoA8N9h3sMenhQyRpCAiEzg==";
+        url = "https://registry.npmjs.org/@graphql-tools/import/-/import-6.2.0.tgz";
+        sha512 = "fYLyzAW3RKKfyPO+0nEA86yUP2V2uctdsZVZEamJ9MtjW+UhZf9kbR+NBuX/FbFAQR+F7UMe5GSPjUTKC13CEg==";
       };
     };
-    "@graphql-tools/json-file-loader-6.1.0" = {
+    "@graphql-tools/json-file-loader-6.2.0" = {
       name = "_at_graphql-tools_slash_json-file-loader";
       packageName = "@graphql-tools/json-file-loader";
-      version = "6.1.0";
+      version = "6.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-6.1.0.tgz";
-        sha512 = "U5+aU4Bi9Se2+rFE0lwARHii1TyKtVG+WPNtBM1YJdgQ800/jrgjSCBl2Js/bd2YkICMLz++lCehyQSgrLpIsg==";
+        url = "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-6.2.0.tgz";
+        sha512 = "kpvYLGuxcq3V9cr996YOCAkw7F/4pC1JY1KxvI3360G0mYVVZcA8Q/XcxcwPwPZrBHDJMHhXvTRZD+svQ49Rxw==";
       };
     };
-    "@graphql-tools/load-6.1.0" = {
+    "@graphql-tools/load-6.2.0" = {
       name = "_at_graphql-tools_slash_load";
       packageName = "@graphql-tools/load";
-      version = "6.1.0";
+      version = "6.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/load/-/load-6.1.0.tgz";
-        sha512 = "4puWwWPvLKskTtabMXlYW4fdm5yaAgHNwJeUhs3/ftX9mrJOa8HnfIxULZOES9XEbaRoaVQ0wPRBjJKcTBJ7CQ==";
+        url = "https://registry.npmjs.org/@graphql-tools/load/-/load-6.2.0.tgz";
+        sha512 = "ZsxPXMpLOjNh88Q2XtDmMTP65tQfknZjCgWm9vq+FxlUh//7Z8q6WiChogIEJ9g8G0+XKmLEcA+Vi4L45QX9GA==";
       };
     };
-    "@graphql-tools/merge-6.1.0" = {
+    "@graphql-tools/merge-6.2.0" = {
       name = "_at_graphql-tools_slash_merge";
       packageName = "@graphql-tools/merge";
-      version = "6.1.0";
+      version = "6.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.1.0.tgz";
-        sha512 = "dD7J/LELhy87+5V8pko5EhSx2leoRIT02V5coa6S19PTiNrVqCJU/fMMKdWC1FmHSWUYOf+wZhItsilUxPr7XQ==";
+        url = "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.2.0.tgz";
+        sha512 = "q2bnFhdw6ssBzIlTkyUGPzBThLHgwuTVCRvjjCepegQCKGzwDypve0n+EMBUnoaOcJ3JRgQHR3eStP2x/S0AYw==";
       };
     };
-    "@graphql-tools/schema-6.1.0" = {
+    "@graphql-tools/schema-6.2.0" = {
       name = "_at_graphql-tools_slash_schema";
       packageName = "@graphql-tools/schema";
-      version = "6.1.0";
+      version = "6.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/schema/-/schema-6.1.0.tgz";
-        sha512 = "AZflTf9HU3Uy8UgUwxwFXN9Lf+9D36LBoDRIxPRhsj6EtawbwCqsd3UFwNek0OgiwNi3BL2b+D+6QEcw2IOsDA==";
+        url = "https://registry.npmjs.org/@graphql-tools/schema/-/schema-6.2.0.tgz";
+        sha512 = "wlAIgN6pMgRaruiJqlZLIe+FM834ZYif/P7evCbG71sm7Ou8t0n+dkpf8+qZAa7D+PWO9G96BF1l2NPUlM+KvA==";
       };
     };
-    "@graphql-tools/url-loader-6.1.0" = {
+    "@graphql-tools/url-loader-6.2.0" = {
       name = "_at_graphql-tools_slash_url-loader";
       packageName = "@graphql-tools/url-loader";
-      version = "6.1.0";
+      version = "6.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.1.0.tgz";
-        sha512 = "AzTDZPQqHv2jrTrKhPgLbeWBhEjwFMAFnRKPsaGnSxkZWAeTeA4XevbWS4wl9jho0klTtSRBbKnNBp+dxbpmwA==";
+        url = "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.2.0.tgz";
+        sha512 = "bPktwMT42tvsPIlJYQ4bwjnQKhOSwCsV/R81T0tsoh+UbKR2/QxccSQCoNJAUIxP6hXfR+Sc1wMXUw7m8/akrg==";
       };
     };
-    "@graphql-tools/utils-6.1.0" = {
+    "@graphql-tools/utils-6.2.0" = {
       name = "_at_graphql-tools_slash_utils";
       packageName = "@graphql-tools/utils";
-      version = "6.1.0";
+      version = "6.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/utils/-/utils-6.1.0.tgz";
-        sha512 = "YcyslZ/8rk5nQOGnkEDp/xi6Xphu0mgjh5LTZ1qUio5P+d95/9MW44cPdmi3Feg4kO8u+1GcPC+685hFpJlZJw==";
+        url = "https://registry.npmjs.org/@graphql-tools/utils/-/utils-6.2.0.tgz";
+        sha512 = "Z5ONje6tGNvBzGwo/8eIafr98mwuvWpi3IwPp8CKHKjTBAKlUxY8hlwSn+bEMPyuA9uH/7nHWz4lamRQQEHAhg==";
       };
     };
-    "@graphql-tools/wrap-6.1.0" = {
+    "@graphql-tools/wrap-6.2.0" = {
       name = "_at_graphql-tools_slash_wrap";
       packageName = "@graphql-tools/wrap";
-      version = "6.1.0";
+      version = "6.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-6.1.0.tgz";
-        sha512 = "sJ4ePvgQ2AKWGQ75hockh1k+0BhPbr7SZqe4T/HKNMCuATNiRi0m78FoxHTp/JODMKRPfhadunD74CXrxupy6A==";
+        url = "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-6.2.0.tgz";
+        sha512 = "I7EAvY6x6cBB92j+IrZLE3meYUdmHNK8r/TvHXJ8SmgMJGlt4z8bjOr7WmYdMPufyVdHBSGwECqjWcxOhSxLsA==";
       };
     };
     "@hapi/address-2.1.4" = {
@@ -2524,13 +2551,13 @@ let
         sha512 = "RibeMnDPvlL8bFYW5C8cs4mbI3AHfQef73tnJCQ/SgrXZHehmHnsyWUiE7qDQCAo+B1RfTapvSyFF69iPj326A==";
       };
     };
-    "@microsoft/load-themed-styles-1.10.79" = {
+    "@microsoft/load-themed-styles-1.10.82" = {
       name = "_at_microsoft_slash_load-themed-styles";
       packageName = "@microsoft/load-themed-styles";
-      version = "1.10.79";
+      version = "1.10.82";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.79.tgz";
-        sha512 = "p4Ym7B2d8HT1K0VHAQkUw1SRmXQrko59lmqg/cr8ORClXIhoqc6Zt3m6I53olz4af2pXzpiI0ynHu6KmYYLOfQ==";
+        url = "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.82.tgz";
+        sha512 = "p92TRErd5xpYkSy7TjNDs+0LmxDBSusmLSgnWCv7xZf9DGXZCW08ZiUVlbsaj3e49kGskOaWQvarMDejm2b+FQ==";
       };
     };
     "@mrmlnc/readdir-enhanced-2.2.1" = {
@@ -2569,22 +2596,22 @@ let
         sha512 = "b+MGNyP9/LXkapreJzNUzcvuzZslj/RGgdVVJ16P2wSlYatfLycPObImqVJSmNAdyeShvNeM/pl3sVZsObFueg==";
       };
     };
-    "@netlify/build-3.3.2" = {
+    "@netlify/build-3.3.5" = {
       name = "_at_netlify_slash_build";
       packageName = "@netlify/build";
-      version = "3.3.2";
+      version = "3.3.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/build/-/build-3.3.2.tgz";
-        sha512 = "nIjjJyKJP+6hAMAfNeNUfMMNvXm8qtAtIv/i+Va7PvapPNO37p5H15o0dlke7xLIQuxuDvd6UE3bilj/c1KvdQ==";
+        url = "https://registry.npmjs.org/@netlify/build/-/build-3.3.5.tgz";
+        sha512 = "QhPsiexwv2pKJTCvxiOKYaR5LmQS1H9hlF+8PzZBqk/rUUQAt9y6L6gQQJ1hnXEdsFIQGUqBG0aPolKgWQ3H7A==";
       };
     };
-    "@netlify/cache-utils-1.0.1" = {
+    "@netlify/cache-utils-1.0.2" = {
       name = "_at_netlify_slash_cache-utils";
       packageName = "@netlify/cache-utils";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/cache-utils/-/cache-utils-1.0.1.tgz";
-        sha512 = "wJBHxOWrqGiwgdgd/PxzJC6tVltODDYsqb5Dqs2pJi4LoIXFlAoW+scAWIIURHYs8zodte50pAcMg5cnLLUKPw==";
+        url = "https://registry.npmjs.org/@netlify/cache-utils/-/cache-utils-1.0.2.tgz";
+        sha512 = "5eB8PpX4UaJsgVWwV+TSuGyzi/rysCqTSZzVVJVDSVr0sQa574N6LmLWuYl0WJluSTWeYtUUlATLeP838FaZfQ==";
       };
     };
     "@netlify/config-0.11.11" = {
@@ -2596,13 +2623,13 @@ let
         sha512 = "Z7yzbx5qCX2I5RLlNyo0MMQ6GKJc8o5Nej9yspCavjqgYlUS7VJfbeE67WNxC26FXwDUqq00zJ0MrCS0Un1YOw==";
       };
     };
-    "@netlify/config-2.1.2" = {
+    "@netlify/config-2.1.3" = {
       name = "_at_netlify_slash_config";
       packageName = "@netlify/config";
-      version = "2.1.2";
+      version = "2.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/config/-/config-2.1.2.tgz";
-        sha512 = "2DvK5rw4DIrQ+Vla4A/C7euFtP43dCdW8Df2sPAiPvOWZLiV941N7flHRB8IJqOQcV/MaG4+qg+lMlR2KDC/Qg==";
+        url = "https://registry.npmjs.org/@netlify/config/-/config-2.1.3.tgz";
+        sha512 = "rasNRIFI/U6j293k46capM+b9yc+NT/wfnqtSjd+WGsXuj6O4iMXuN5gpNteKg5RYGFP4mAkP4BjM+//OBFtvg==";
       };
     };
     "@netlify/functions-utils-1.2.8" = {
@@ -2641,13 +2668,13 @@ let
         sha512 = "TcdVJZ3J4iu+WYV9sLMBOr1jW2+XgLtIt1LfGYqsH+yqfkWoWavV27y5ttznM1BODFYQb9fMJG/xO2wAeXCzMw==";
       };
     };
-    "@netlify/zip-it-and-ship-it-1.3.11" = {
+    "@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.11";
+      version = "1.3.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-1.3.11.tgz";
-        sha512 = "j+DSEwSztqoAMPSvx3PnfHqpR3aCW4B/piLbrRLq+Bp8UElq9UZZN3wzEvTL8NS+2VNb5HvwDYDPev208+Fz8g==";
+        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" = {
@@ -2749,13 +2776,13 @@ let
         sha512 = "oN3y7FAROHhrAt7Rr7PnTSwrHrZVRTS2ZbyxeQwSSYD0ifwM3YNgQqbaRmjcWoPyq77MjchusjJDspbzMmip1Q==";
       };
     };
-    "@npmcli/git-2.0.3" = {
+    "@npmcli/git-2.0.4" = {
       name = "_at_npmcli_slash_git";
       packageName = "@npmcli/git";
-      version = "2.0.3";
+      version = "2.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/git/-/git-2.0.3.tgz";
-        sha512 = "c/ODsV5ppjB12VDXKc6hzVNgg6ZJX/etILUn3WgF5NLAYBhQLJ3fBq6uB2jQD4OwqOzJdPT1/xA3Xh3aaWGk5w==";
+        url = "https://registry.npmjs.org/@npmcli/git/-/git-2.0.4.tgz";
+        sha512 = "OJZCmJ9DNn1cz9HPXXsPmUBnqaArot3CGYo63CyajHQk+g87rPXVOJByGsskQJhPsUUEXJcsZ2Q6bWd2jSwnBA==";
       };
     };
     "@npmcli/installed-package-contents-1.0.5" = {
@@ -2803,15 +2830,6 @@ let
         sha512 = "M9o+DOrb8l603qvgz1FogJBUGLqcMFL1aFg2ZEL0FbXJofiNTLOWIeB4faeZTLwE6dt0xH9GpCVpzksMMzGbmA==";
       };
     };
-    "@oclif/command-1.7.0" = {
-      name = "_at_oclif_slash_command";
-      packageName = "@oclif/command";
-      version = "1.7.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/command/-/command-1.7.0.tgz";
-        sha512 = "TkknFtWcZI8te0E8sW+ohiblExrLx73rIcV4KdIzDX01u+oTZWZaap51F6TSGFnR/Gey0WctaDvJhZlt4xgKdA==";
-      };
-    };
     "@oclif/command-1.8.0" = {
       name = "_at_oclif_slash_command";
       packageName = "@oclif/command";
@@ -2821,15 +2839,6 @@ let
         sha512 = "5vwpq6kbvwkQwKqAoOU3L72GZ3Ta8RRrewKj9OJRolx28KLJJ8Dg9Rf7obRwt5jQA9bkYd8gqzMTrI7H3xLfaw==";
       };
     };
-    "@oclif/config-1.16.0" = {
-      name = "_at_oclif_slash_config";
-      packageName = "@oclif/config";
-      version = "1.16.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/config/-/config-1.16.0.tgz";
-        sha512 = "vOnMPQcHokC03WBCuLipTxksTwgZcmDOnH2H0UHqndfKKN9GVDzpZTH6zaFVQBdjTME5VtRzg9A2UaNmq6OXWw==";
-      };
-    };
     "@oclif/config-1.17.0" = {
       name = "_at_oclif_slash_config";
       packageName = "@oclif/config";
@@ -3091,13 +3100,13 @@ let
         sha512 = "LUuXiILPURVCF8u4gnE6SWQZ/+1kVnRatXK6SmQyk+ed8F4uDyNCGuIu3/W7jYQB+k7kD6eQZqINuPWvbPTzYQ==";
       };
     };
-    "@primer/octicons-10.0.0" = {
+    "@primer/octicons-10.1.0" = {
       name = "_at_primer_slash_octicons";
       packageName = "@primer/octicons";
-      version = "10.0.0";
+      version = "10.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@primer/octicons/-/octicons-10.0.0.tgz";
-        sha512 = "iuQubq62zXZjPmaqrsfsCZUqIJgZhmA6W0tKzIKGRbkoLnff4TFFCL87hfIRATZ5qZPM4m8ioT8/bXI7WVa9WQ==";
+        url = "https://registry.npmjs.org/@primer/octicons/-/octicons-10.1.0.tgz";
+        sha512 = "oXfV0uIe7I4cb3vUzBPlPZGL5SQ3+joyyRcmk28aJiGFySl8brzL0MJC63RahiNEnIFrL3D5BRVgz5ZGGuHCOg==";
       };
     };
     "@protobufjs/aspromise-1.1.2" = {
@@ -3235,13 +3244,13 @@ let
         sha512 = "c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==";
       };
     };
-    "@schematics/angular-10.0.8" = {
+    "@schematics/angular-10.1.0" = {
       name = "_at_schematics_slash_angular";
       packageName = "@schematics/angular";
-      version = "10.0.8";
+      version = "10.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@schematics/angular/-/angular-10.0.8.tgz";
-        sha512 = "KNO61UGtiKMQSG+NbusqLtwLbxId0y+xpXJt9PKFwi+vaViOO+YzOPREfiFCuQ7q6X8SmNlrMj6sZ34E2YN1pQ==";
+        url = "https://registry.npmjs.org/@schematics/angular/-/angular-10.1.0.tgz";
+        sha512 = "kQ925yMmOwiSITY+FhuTvrl3HuEIEUrdByBNB0NlvY+DyJwPlngEOo6Iu0cYWaJcoxM1JscOWL59ZR6W7YCFIg==";
       };
     };
     "@schematics/schematics-0.1000.7" = {
@@ -3253,13 +3262,13 @@ let
         sha512 = "mucBf5EkhME9O0TvxPeiUTEuudRvEOSjhF/YFHEp/9NZB1JH9lXtBQ60IN6xtCLEbxJmAzhZSns9QPPrHaZRrw==";
       };
     };
-    "@schematics/update-0.1000.8" = {
+    "@schematics/update-0.1001.0" = {
       name = "_at_schematics_slash_update";
       packageName = "@schematics/update";
-      version = "0.1000.8";
+      version = "0.1001.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@schematics/update/-/update-0.1000.8.tgz";
-        sha512 = "xHuj6ME3PNTsVUrpftd98LF3WHPM0NU25GcT/n0E/j0/52yDTiaPS3wUnYSK8ZSv4Et4hcyGx7f/LEXAoOKJXw==";
+        url = "https://registry.npmjs.org/@schematics/update/-/update-0.1001.0.tgz";
+        sha512 = "LRGwo37akHe/BUl5FHj74mJ/xhM0Z7W8pWMWJ6zGihs+HNXjTgfYVgGA1TgN0amqQODa3AxxLL6aLj+hVYZi+g==";
       };
     };
     "@serverless/cli-1.5.2" = {
@@ -3280,13 +3289,13 @@ let
         sha512 = "lOUyRopNTKJYVEU9T6stp2irwlTDsYMmUKBOUjnMcwGveuUfIJqrCOtFLtIPPj3XJlbZy5F68l4KP9rZ8Ipang==";
       };
     };
-    "@serverless/components-2.34.7" = {
+    "@serverless/components-2.34.9" = {
       name = "_at_serverless_slash_components";
       packageName = "@serverless/components";
-      version = "2.34.7";
+      version = "2.34.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/components/-/components-2.34.7.tgz";
-        sha512 = "zQ5S/DjqYKgcUUA/FJGr09m5cQ59eXWMXUoKanZAAmpaAfpvD5uaLbGGlgdIli6JZTks5hLqtjfcar87r94/qg==";
+        url = "https://registry.npmjs.org/@serverless/components/-/components-2.34.9.tgz";
+        sha512 = "qFjIeGgR4SjS32Tbl4BvoxOtLpv3Vx4s/81HdmmpdIrMPe7ePGUfkBVBu3axxAXHf4ajlb4WC1HmhTmZAHHSLQ==";
       };
     };
     "@serverless/core-1.1.2" = {
@@ -3298,13 +3307,13 @@ let
         sha512 = "PY7gH+7aQ+MltcUD7SRDuQODJ9Sav9HhFJsgOiyf8IVo7XVD6FxZIsSnpMI6paSkptOB7n+0Jz03gNlEkKetQQ==";
       };
     };
-    "@serverless/enterprise-plugin-3.7.1" = {
+    "@serverless/enterprise-plugin-3.8.2" = {
       name = "_at_serverless_slash_enterprise-plugin";
       packageName = "@serverless/enterprise-plugin";
-      version = "3.7.1";
+      version = "3.8.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/enterprise-plugin/-/enterprise-plugin-3.7.1.tgz";
-        sha512 = "+9/gtrSRCXrO/5gLlFO9hZlxl90ctjsDx8dwKHnO9mVMXJ7RQmUWUj+5h2kSrD6bs2F1RmhLgQhwj7DCGEEAQg==";
+        url = "https://registry.npmjs.org/@serverless/enterprise-plugin/-/enterprise-plugin-3.8.2.tgz";
+        sha512 = "tJqvVBHOQk110UXEO/RVeZIUh/tyBlxalaNnGRiTsbT2kRsq0s/OfznfMufANmlKaKPcoOXxHEW8oaAV4N1XyA==";
       };
     };
     "@serverless/event-mocks-1.1.1" = {
@@ -3325,22 +3334,22 @@ let
         sha512 = "2c5A6HSWwXluknPNJ2s+Z4WfBwP7Kn6kgsEKD+5xlXpDpBFsRku/xJyO9eqRCwxTM41stgHNC6TRsZ03+wH/rw==";
       };
     };
-    "@serverless/platform-client-1.1.7" = {
+    "@serverless/platform-client-1.1.8" = {
       name = "_at_serverless_slash_platform-client";
       packageName = "@serverless/platform-client";
-      version = "1.1.7";
+      version = "1.1.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/platform-client/-/platform-client-1.1.7.tgz";
-        sha512 = "520U/OZN/IV1UnqVPGGMnoPM4TsflxffcyNSbs8Nr7G/9eGr1rcHw2vMAU5Z+4M7DoMDi7FogLNCrr51PLGxaQ==";
+        url = "https://registry.npmjs.org/@serverless/platform-client/-/platform-client-1.1.8.tgz";
+        sha512 = "DmU71Lh0ALOMumGD7k2HfO6WwaFpJCA4ech1S9Kd8AQvpKZrT8fyUl9Ymc/E6GJLRC4s3a5wzcsLbu5AiDNyHA==";
       };
     };
-    "@serverless/platform-client-china-1.0.34" = {
+    "@serverless/platform-client-china-1.0.37" = {
       name = "_at_serverless_slash_platform-client-china";
       packageName = "@serverless/platform-client-china";
-      version = "1.0.34";
+      version = "1.0.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/platform-client-china/-/platform-client-china-1.0.34.tgz";
-        sha512 = "pEMq9hsPYIzMxEZY/tBscOiUDpGQ17yN7ORAdS/mLNjuoouyOJfTiYtehYoY+wNBm25BIcZnkX81+X+IpyF5ng==";
+        url = "https://registry.npmjs.org/@serverless/platform-client-china/-/platform-client-china-1.0.37.tgz";
+        sha512 = "eN2UBK51Z9RkRY5Im0j2wCl3XuHBKiuY3kpQIxtGs52yuQx8PA0I/HBsYwyRgoTpvATK3MM/SsyeKpvNs90+uw==";
       };
     };
     "@serverless/platform-sdk-2.3.1" = {
@@ -3460,22 +3469,22 @@ let
         sha512 = "3X+OwwwT9j0r2ObqxYIiAgdaHsTW71b92PN3wawGAxl4YgPRrRVw8Fouhe41I4WJsn7OlKUNedylZguvpYg9qw==";
       };
     };
-    "@snyk/cli-interface-2.8.0" = {
+    "@snyk/cli-interface-2.8.1" = {
       name = "_at_snyk_slash_cli-interface";
       packageName = "@snyk/cli-interface";
-      version = "2.8.0";
+      version = "2.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.8.0.tgz";
-        sha512 = "St/G39iJG1zQK15L24kcVYM2gmFc/ylBCcBqU2DMZKJKwOPccKLUO6s+dWIUXMccQ+DFS6TuHPvuAKQNi9C4Yg==";
+        url = "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.8.1.tgz";
+        sha512 = "pALcfgoY0hAavy/pBlDIqEu+FFC5m+D4bMnCwlQ26mObL/zzxp2+Ohx+HykCIom62u2J94SzAtRLFdm/2TgoOw==";
       };
     };
-    "@snyk/cli-interface-2.8.1" = {
+    "@snyk/cli-interface-2.9.0" = {
       name = "_at_snyk_slash_cli-interface";
       packageName = "@snyk/cli-interface";
-      version = "2.8.1";
+      version = "2.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.8.1.tgz";
-        sha512 = "pALcfgoY0hAavy/pBlDIqEu+FFC5m+D4bMnCwlQ26mObL/zzxp2+Ohx+HykCIom62u2J94SzAtRLFdm/2TgoOw==";
+        url = "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.9.0.tgz";
+        sha512 = "KDVHsU71apUPHK1PiIUXVW7stGZilbwKIoi0ffz1Qa0Er03fm3aV602scnOinbTtVy5UTm3L4WmdCdQrRoBYOQ==";
       };
     };
     "@snyk/cocoapods-lockfile-parser-3.5.1" = {
@@ -3910,13 +3919,13 @@ let
         sha512 = "/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==";
       };
     };
-    "@types/babel-types-7.0.8" = {
+    "@types/babel-types-7.0.9" = {
       name = "_at_types_slash_babel-types";
       packageName = "@types/babel-types";
-      version = "7.0.8";
+      version = "7.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.8.tgz";
-        sha512 = "jvu8g4LR7+p6ao30RhTREnEhHxmP4/R9D9/rOR/Kq14FztORty9SKgtOZUNZNMB9CXLxZ54EWu4dArUE8WdTsw==";
+        url = "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.9.tgz";
+        sha512 = "qZLoYeXSTgQuK1h7QQS16hqLGdmqtRmN8w/rl3Au/l5x/zkHx+a4VHrHyBsi1I1vtK2oBHxSzKIu0R5p6spdOA==";
       };
     };
     "@types/babel__core-7.1.9" = {
@@ -4135,13 +4144,13 @@ let
         sha512 = "dCOT5lcmV/uC2J9k0rPafATeeyz+99xTt54ReX11/LObZgfzJqZNcW27zGhYyX+9iSEGXGt5qLPwRSvBZcLvtQ==";
       };
     };
-    "@types/express-serve-static-core-4.17.9" = {
+    "@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.9";
+      version = "4.17.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.9.tgz";
-        sha512 = "DG0BYg6yO+ePW+XoDENYz8zhNGC3jDDEpComMYn7WJc4mY1Us8Rw9ax2YhJXxpyk2SF47PQAoQ0YyVT1a0bEkA==";
+        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.12.tgz";
+        sha512 = "EaEdY+Dty1jEU7U6J4CUWwxL+hyEGMkO5jan5gplfegUgCUsIUWqXxqw47uGjimeT4Qgkz/XUfwoau08+fgvKA==";
       };
     };
     "@types/fs-capacitor-2.0.0" = {
@@ -4297,13 +4306,13 @@ let
         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.5.tgz";
-        sha512 = "7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==";
+        url = "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz";
+        sha512 = "3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==";
       };
     };
     "@types/json5-0.0.29" = {
@@ -4351,13 +4360,13 @@ let
         sha512 = "B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==";
       };
     };
-    "@types/lodash-4.14.160" = {
+    "@types/lodash-4.14.161" = {
       name = "_at_types_slash_lodash";
       packageName = "@types/lodash";
-      version = "4.14.160";
+      version = "4.14.161";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.160.tgz";
-        sha512 = "aP03BShJoO+WVndoVj/WNcB/YBPt+CIU1mvaao2GRAHy2yg4pT/XS4XnVHEQBjPJGycWf/9seKEO9vopTJGkvA==";
+        url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.161.tgz";
+        sha512 = "EP6O3Jkr7bXvZZSZYlsgt5DIjiGr0dXP1/jVEwVLTFgg0d+3lWVQkRavYVQszV7dYUwvg0B8R0MBDpcmXg7XIA==";
       };
     };
     "@types/long-4.0.1" = {
@@ -4414,13 +4423,13 @@ let
         sha512 = "ZvO2tAcjmMi8V/5Z3JsyofMe3hasRcaw88cto5etSVMwVQfeivGAlEYmaQgceUSVYFofVjT+ioHsATjdWcFt1w==";
       };
     };
-    "@types/node-10.17.28" = {
+    "@types/node-10.17.29" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "10.17.28";
+      version = "10.17.29";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz";
-        sha512 = "dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ==";
+        url = "https://registry.npmjs.org/@types/node/-/node-10.17.29.tgz";
+        sha512 = "zLo9rjUeQ5+QVhOufDwrb3XKyso31fJBJnk9wUUQIBDExF/O4LryvpOfozfUaxgqifTnlt7FyqsAPXUq5yFZSA==";
       };
     };
     "@types/node-12.7.12" = {
@@ -4432,31 +4441,31 @@ let
         sha512 = "KPYGmfD0/b1eXurQ59fXD1GBzhSQfz6/lKBxkaHX9dKTzjXbK68Zt7yGUxUsCS1jeTy/8aL+d9JEr+S54mpkWQ==";
       };
     };
-    "@types/node-13.13.15" = {
+    "@types/node-13.13.16" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "13.13.15";
+      version = "13.13.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-13.13.15.tgz";
-        sha512 = "kwbcs0jySLxzLsa2nWUAGOd/s21WU1jebrEdtzhsj1D4Yps1EOuyI1Qcu+FD56dL7NRNIJtDDjcqIG22NwkgLw==";
+        url = "https://registry.npmjs.org/@types/node/-/node-13.13.16.tgz";
+        sha512 = "dJ9vXxJ8MEwzNn4GkoAGauejhXoKuJyYKegsA6Af25ZpEDXomeVXt5HUWUNVHk5UN7+U0f6ghC6otwt+7PdSDg==";
       };
     };
-    "@types/node-14.6.0" = {
+    "@types/node-14.6.3" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "14.6.0";
+      version = "14.6.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-14.6.0.tgz";
-        sha512 = "mikldZQitV94akrc4sCcSjtJfsTKt4p+e/s0AGscVA6XArQ9kFclP+ZiYUMnq987rc6QlYxXv/EivqlfSLxpKA==";
+        url = "https://registry.npmjs.org/@types/node/-/node-14.6.3.tgz";
+        sha512 = "pC/hkcREG6YfDfui1FBmj8e20jFU5Exjw4NYDm8kEdrW+mOh0T1Zve8DWKnS7ZIZvgncrctcNCXF4Q2I+loyww==";
       };
     };
-    "@types/node-6.14.10" = {
+    "@types/node-6.14.11" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "6.14.10";
+      version = "6.14.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-6.14.10.tgz";
-        sha512 = "pF4HjZGSog75kGq7B1InK/wt/N08BuPATo+7HRfv7gZUzccebwv/fmWVGs/j6LvSiLWpCuGGhql51M/wcQsNzA==";
+        url = "https://registry.npmjs.org/@types/node/-/node-6.14.11.tgz";
+        sha512 = "htzPk08CmbGFjgIWaJut1oW2roZAAQxxOhkhsehCVLE7Uocx9wkcHfIQYdBWO7KqbuRvYrdBQtl5h5Mz/GxehA==";
       };
     };
     "@types/node-fetch-2.5.7" = {
@@ -4846,40 +4855,40 @@ let
         sha512 = "9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ==";
       };
     };
-    "@uifabric/foundation-7.8.3" = {
+    "@uifabric/foundation-7.9.0" = {
       name = "_at_uifabric_slash_foundation";
       packageName = "@uifabric/foundation";
-      version = "7.8.3";
+      version = "7.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@uifabric/foundation/-/foundation-7.8.3.tgz";
-        sha512 = "8b5gFeZlBb039iqx0iDZLMV4Pya1l10xJzCteg/C0B66GaKuJuW0sMv8GuFSsqXHnqMuzoakKqyq8zsRIN96Uw==";
+        url = "https://registry.npmjs.org/@uifabric/foundation/-/foundation-7.9.0.tgz";
+        sha512 = "4gdPwx0HV59aWvPKIw6yIje60CYwJZmTJsdLRXqh8Np1tWp2EsbA8U/IHQL1V91rEN0DlQhASqCDFhfQoD1jUw==";
       };
     };
-    "@uifabric/icons-7.4.3" = {
+    "@uifabric/icons-7.5.0" = {
       name = "_at_uifabric_slash_icons";
       packageName = "@uifabric/icons";
-      version = "7.4.3";
+      version = "7.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@uifabric/icons/-/icons-7.4.3.tgz";
-        sha512 = "/3+JxAXOGKeJAIQlLDFfiQaw7RSnLNWU3BnXbOCWRIzBAJme6XbvU3Oiy6Sgq79CEuSx1gwe8EifYvM8OFMYNA==";
+        url = "https://registry.npmjs.org/@uifabric/icons/-/icons-7.5.0.tgz";
+        sha512 = "RINA9VkajlCnlwEBbqiwLBaaGn38Bf9UvjOuwrrja4B9lclLeQzZuGrG/kp7CnDtIO+LC19OYl/7E3jW7yIihA==";
       };
     };
-    "@uifabric/merge-styles-7.17.0" = {
+    "@uifabric/merge-styles-7.18.0" = {
       name = "_at_uifabric_slash_merge-styles";
       packageName = "@uifabric/merge-styles";
-      version = "7.17.0";
+      version = "7.18.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@uifabric/merge-styles/-/merge-styles-7.17.0.tgz";
-        sha512 = "UFG0pKqjz6iGcYhDFDSb2br5TEOys90mCaXeXPln8QrIc5NTJG1gWeO4znG6r65e23Ab/hBz+lmoyfYxgr3fZw==";
+        url = "https://registry.npmjs.org/@uifabric/merge-styles/-/merge-styles-7.18.0.tgz";
+        sha512 = "805WIbN7lAJATXKxZjjRbIgN7raRMwWYWeDkJJ52PCPuCesOvbpdr0GkH8rC6GQ7EB0MB7YM2i6Fiye7SFewbw==";
       };
     };
-    "@uifabric/react-hooks-7.10.0" = {
+    "@uifabric/react-hooks-7.11.0" = {
       name = "_at_uifabric_slash_react-hooks";
       packageName = "@uifabric/react-hooks";
-      version = "7.10.0";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@uifabric/react-hooks/-/react-hooks-7.10.0.tgz";
-        sha512 = "zbxsFrXexfj5bPDBDh4BNFZj8vs8Jf6jmvZYRk+r/ZtvfceDyjuWcF+fYc2fjCon6pDfL5N8/S5Bc4NRw6sfvw==";
+        url = "https://registry.npmjs.org/@uifabric/react-hooks/-/react-hooks-7.11.0.tgz";
+        sha512 = "iU7c+JR+rY5kBTPmrF8F6iJBQw309MX/MvOx6ElhmNceBaa8BqDuqR9+TVfkH+Bxp37bmZnCaQF5w4+QWHZ81g==";
       };
     };
     "@uifabric/set-version-7.0.22" = {
@@ -4891,22 +4900,22 @@ let
         sha512 = "IG35UNJNxqI7NC2eYuobGTD+v4W0VHQcC3bYd5Na9EgoC9jVgguS8n6EXUtP/lC1vJEYEyPEZdVwhPxKw4F4Sw==";
       };
     };
-    "@uifabric/styling-7.15.3" = {
+    "@uifabric/styling-7.16.0" = {
       name = "_at_uifabric_slash_styling";
       packageName = "@uifabric/styling";
-      version = "7.15.3";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@uifabric/styling/-/styling-7.15.3.tgz";
-        sha512 = "P8xHumpnr2De6AyiHhi0GBUf6HpV2R/wS8c5fSEhMpMomXjWQrnVeq7OS+896Qw/qCgvT/brjXAI2EzqEPwuvg==";
+        url = "https://registry.npmjs.org/@uifabric/styling/-/styling-7.16.0.tgz";
+        sha512 = "yO404ws8Wl4fjBwG4T58TFJjeU/K+SpWJ4w+WeNMDlJcYe4zXaWn2lbOJtKtQiMl324RAEjFSOuNkXzPb0uOGQ==";
       };
     };
-    "@uifabric/utilities-7.30.0" = {
+    "@uifabric/utilities-7.31.0" = {
       name = "_at_uifabric_slash_utilities";
       packageName = "@uifabric/utilities";
-      version = "7.30.0";
+      version = "7.31.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@uifabric/utilities/-/utilities-7.30.0.tgz";
-        sha512 = "NO+XkCBsaxVzOA+JytgSGAK3ihPDG5XLPQQhFbAXSEc5eC6qzcSY6JswRPy3hC1DIWicTUh+iTrDbb+x2vZ8Wg==";
+        url = "https://registry.npmjs.org/@uifabric/utilities/-/utilities-7.31.0.tgz";
+        sha512 = "m4Yeyn4gyW7xS8LvOnCesokPModYS2YuE9GQmO++MDZ/vC5RRNlvlyktUZDuxCZ84cNCiXyTQ8nImBaPGnxHVQ==";
       };
     };
     "@vue/cli-shared-utils-4.5.4" = {
@@ -4945,76 +4954,76 @@ let
         sha512 = "/7R3dMrv/tEP4AM22hBDPfXPF24OE/2ddR3cTF1c1fSoHT/LcUvqrlHIb8SlVgl3S7WvF9Prrunp+KzkHW9bSA==";
       };
     };
-    "@vue/compiler-core-3.0.0-rc.9" = {
+    "@vue/compiler-core-3.0.0-rc.10" = {
       name = "_at_vue_slash_compiler-core";
       packageName = "@vue/compiler-core";
-      version = "3.0.0-rc.9";
+      version = "3.0.0-rc.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.0.0-rc.9.tgz";
-        sha512 = "/Ns7KGT5P0wh4JTM91drBmNIiBlKrCFUqIE2vk8dmaVvqEJf1mqympz1CDZpikghCQC6hKu3tYKxA7qtcMRazw==";
+        url = "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.0.0-rc.10.tgz";
+        sha512 = "kQzHzRsM0NPAWHeqSTb2J4VsHhjRkGeLTsGzeMnW+sojgTnS3T94KacwvYgVS4qeZAKiDq0bMNZoJWrHVQ3T8g==";
       };
     };
-    "@vue/compiler-dom-3.0.0-rc.9" = {
+    "@vue/compiler-dom-3.0.0-rc.10" = {
       name = "_at_vue_slash_compiler-dom";
       packageName = "@vue/compiler-dom";
-      version = "3.0.0-rc.9";
+      version = "3.0.0-rc.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.0.0-rc.9.tgz";
-        sha512 = "0hCnrIxwp0TKVXKnGYFztM4LMUvFpfXW7YoEglvHqIfZsGkyKcnCYDx4FPk1frDM21xnrr5HgcHt42rlz8lDBA==";
+        url = "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.0.0-rc.10.tgz";
+        sha512 = "pqIUf5leZm0P9379utrRSVBMxhV8XaqJTEFFp5etCtbEa/H5ALs29EjFMtMcm9sQaVkZlKLu86mgIacbYB9Q3w==";
       };
     };
-    "@vue/compiler-sfc-3.0.0-rc.9" = {
+    "@vue/compiler-sfc-3.0.0-rc.10" = {
       name = "_at_vue_slash_compiler-sfc";
       packageName = "@vue/compiler-sfc";
-      version = "3.0.0-rc.9";
+      version = "3.0.0-rc.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.0.0-rc.9.tgz";
-        sha512 = "kmjGzcyp93Q+ZKfvxC3GtI9bEXCa9TxsuO+Q9WtiyvOWBLxZkklQc1n5DFn6vtAUIjjlIE5GZoKawvn9LfKejA==";
+        url = "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.0.0-rc.10.tgz";
+        sha512 = "VIJ+VXqeM7WoRNgD9uYSARVb6CYq+JS2NNHfeerfNc7Uk3pjYHRv1MwEicAvN6zWFm5GLC1ZYTVD+WFg3xGAkQ==";
       };
     };
-    "@vue/compiler-ssr-3.0.0-rc.9" = {
+    "@vue/compiler-ssr-3.0.0-rc.10" = {
       name = "_at_vue_slash_compiler-ssr";
       packageName = "@vue/compiler-ssr";
-      version = "3.0.0-rc.9";
+      version = "3.0.0-rc.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.0.0-rc.9.tgz";
-        sha512 = "lpbnkJrhkI5QgprLPXcB1Uq402QiibPFKRUQZ5vu3zeAvUeMYuQUtZS/Dslurcvqd1dbBC/HM0gCpLtjEQ+2qA==";
+        url = "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.0.0-rc.10.tgz";
+        sha512 = "JBPil8sO5j7puB8acX2CQMRXEYB/EP8PoEur7RcF/+aqATI7C4yqWcSLC5TRJpigj6xE6ku6sx8om+j7ZHvgBw==";
       };
     };
-    "@vue/reactivity-3.0.0-rc.9" = {
+    "@vue/reactivity-3.0.0-rc.10" = {
       name = "_at_vue_slash_reactivity";
       packageName = "@vue/reactivity";
-      version = "3.0.0-rc.9";
+      version = "3.0.0-rc.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.0.0-rc.9.tgz";
-        sha512 = "1fJSt4zZ/icZUNsN3Te5BeVChmQ7Ner2xUYy9ALtShLSj2RwxRVhtysjXxLE16TbwLkHjsOHjA8tQWrdBfQG0A==";
+        url = "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.0.0-rc.10.tgz";
+        sha512 = "mkUZfOJlbqGZx2cARmhCs5r2+xLJPL7VFNagmlA3Fd66ZXBc3ZvTQdYsY4VUbYJFe5ByIzqu9TZiAkzXY+JVaA==";
       };
     };
-    "@vue/runtime-core-3.0.0-rc.9" = {
+    "@vue/runtime-core-3.0.0-rc.10" = {
       name = "_at_vue_slash_runtime-core";
       packageName = "@vue/runtime-core";
-      version = "3.0.0-rc.9";
+      version = "3.0.0-rc.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.0.0-rc.9.tgz";
-        sha512 = "5tViEzPl8K1moMjCQJXqvTa/RjR/h8cZ9dUDgKfKWvZhxAmXHtmYlBWrvEeFTGWiEuZj0XlZkNxMNjuHLVF0Vg==";
+        url = "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.0.0-rc.10.tgz";
+        sha512 = "VK/kq4gDDoqZ45CVwdbLLpikXLYLCt6YLhdgXX3fhf20gvPqrbEZv1ZNLruNnhhTpf9cLyU4tZ18DHeaUYPziw==";
       };
     };
-    "@vue/runtime-dom-3.0.0-rc.9" = {
+    "@vue/runtime-dom-3.0.0-rc.10" = {
       name = "_at_vue_slash_runtime-dom";
       packageName = "@vue/runtime-dom";
-      version = "3.0.0-rc.9";
+      version = "3.0.0-rc.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.0.0-rc.9.tgz";
-        sha512 = "OUKFLOaoshmQPaW7iaYuxl9ip3v08g8cXYr0bu68/0r94PF2/xO/b0GhoUoyeqp/pu1VzZ1TxulJ94JOXsuYjg==";
+        url = "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.0.0-rc.10.tgz";
+        sha512 = "bH4GuneHt3FQ+/21jba5orM/CO9N1cnT7J3wtrxopFJ4/4H5cvHXyG6v+ZVTu1d733Ij/6yMRA7xbtfi9a4zJw==";
       };
     };
-    "@vue/shared-3.0.0-rc.9" = {
+    "@vue/shared-3.0.0-rc.10" = {
       name = "_at_vue_slash_shared";
       packageName = "@vue/shared";
-      version = "3.0.0-rc.9";
+      version = "3.0.0-rc.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/shared/-/shared-3.0.0-rc.9.tgz";
-        sha512 = "SHD7qwziiG6208nKrs0qqbWbYckvBiCBCLwlRjUb6NEDUMN0TOVyzyaTvdnHND9ion/ZMdwEKMtWWtgJJkHDdw==";
+        url = "https://registry.npmjs.org/@vue/shared/-/shared-3.0.0-rc.10.tgz";
+        sha512 = "fI6gVhhgb3cAmEkY4oeVVA2hWZ2xvkgogHdBI5PL7gSvZnOB6XZ2eQGsYjC4W+7BegvEkoMBuZsFXVa4ZQ07XQ==";
       };
     };
     "@webassemblyjs/ast-1.8.1" = {
@@ -5395,22 +5404,22 @@ let
         sha512 = "NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==";
       };
     };
-    "@yarnpkg/core-2.1.1" = {
+    "@yarnpkg/core-2.2.2" = {
       name = "_at_yarnpkg_slash_core";
       packageName = "@yarnpkg/core";
-      version = "2.1.1";
+      version = "2.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@yarnpkg/core/-/core-2.1.1.tgz";
-        sha512 = "qeBxz8nHjKAbGTP2ZcXBnXGfM7+cN0A73mIai/24uru1ayvCIgfjWL1uIj/MM+m+K5lJX0Dcn94ZBHWits9JWQ==";
+        url = "https://registry.npmjs.org/@yarnpkg/core/-/core-2.2.2.tgz";
+        sha512 = "TQ0wqQjbZQDrf31N5v4NtE4Juw1c16hYu9QwNloUxRgY/Z+AQIuqa6Jgv9BbAghchZkSIXDWp6bFGD7C+q7cuA==";
       };
     };
-    "@yarnpkg/fslib-2.1.0" = {
+    "@yarnpkg/fslib-2.2.1" = {
       name = "_at_yarnpkg_slash_fslib";
       packageName = "@yarnpkg/fslib";
-      version = "2.1.0";
+      version = "2.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@yarnpkg/fslib/-/fslib-2.1.0.tgz";
-        sha512 = "E+f8w5yQZnTf1soyTWy7qdf+GmHsY+A0yEN4Di44/Txk6XRIMruyc1ShDi93mOI6ilnXxD87rNms18zJ8WnspA==";
+        url = "https://registry.npmjs.org/@yarnpkg/fslib/-/fslib-2.2.1.tgz";
+        sha512 = "7SzLP/RHt8lEOaCTg6hMMrnxc2/Osbu3+UPwLZiZiGtLpYqwtTgtWTlAqddS3+MESXOZhc+3gKLX0lfqm6oWuw==";
       };
     };
     "@yarnpkg/json-proxy-2.1.0" = {
@@ -5422,13 +5431,13 @@ let
         sha512 = "rOgCg2DkyviLgr80mUMTt9vzdf5RGOujQB26yPiXjlz4WNePLBshKlTNG9rKSoKQSOYEQcw6cUmosfOKDatrCw==";
       };
     };
-    "@yarnpkg/libzip-2.1.0" = {
+    "@yarnpkg/libzip-2.2.0" = {
       name = "_at_yarnpkg_slash_libzip";
       packageName = "@yarnpkg/libzip";
-      version = "2.1.0";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@yarnpkg/libzip/-/libzip-2.1.0.tgz";
-        sha512 = "39c7KuSWcYUqVxlBLZwfqdD/D6lS+jplNVWd6uAnk8EpnacaYGJRegvkqWyfw5c8KHukNMeEGF5JHrXPZYBM0w==";
+        url = "https://registry.npmjs.org/@yarnpkg/libzip/-/libzip-2.2.0.tgz";
+        sha512 = "/YRSPJbPAvHeCJxcXJrUV4eRP9hER6YB6LyZxsFlpyF++eqdOzNu0WsuXRRJxfqYt3hl7SiGFkL23qB9jqC6cw==";
       };
     };
     "@yarnpkg/lockfile-1.1.0" = {
@@ -5440,31 +5449,31 @@ let
         sha512 = "GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==";
       };
     };
-    "@yarnpkg/parsers-2.1.0" = {
+    "@yarnpkg/parsers-2.2.0" = {
       name = "_at_yarnpkg_slash_parsers";
       packageName = "@yarnpkg/parsers";
-      version = "2.1.0";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-2.1.0.tgz";
-        sha512 = "75OYQ6PMs1C3zm+W+T1xhLyVDX78zXQGEVHpWd4o/QwpAbhneB3/5FXVGRzI3gjPPWWSb/pKOPB1S6p0xmQD2Q==";
+        url = "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-2.2.0.tgz";
+        sha512 = "k1XZaWYRHl7wCj04hcbtzKfPAZbKbsEi7xsB1Ka8obdS6DRnAw7n0gZPvvGjOoqkH95IqWf+Vi7vV5RhlGz63Q==";
       };
     };
-    "@yarnpkg/pnp-2.1.0" = {
+    "@yarnpkg/pnp-2.2.1" = {
       name = "_at_yarnpkg_slash_pnp";
       packageName = "@yarnpkg/pnp";
-      version = "2.1.0";
+      version = "2.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@yarnpkg/pnp/-/pnp-2.1.0.tgz";
-        sha512 = "b8NlB71EFifv1jDX47nFaRXrykROxHcS7YuGb2dQ+Gp9gqJ0thIaZ3yB9+qWF8acdWtNcMpjCug4xkfAAR5Odw==";
+        url = "https://registry.npmjs.org/@yarnpkg/pnp/-/pnp-2.2.1.tgz";
+        sha512 = "jrwJ3Q6M+nMs4n0O/GgxayU1Bq9mpLoZW2Mb8Nt2fs5whB0CeCr1/pGl9+yiCSjirv9jjp51TVFqF7OPvXy+gA==";
       };
     };
-    "@yarnpkg/shell-2.1.0" = {
+    "@yarnpkg/shell-2.2.0" = {
       name = "_at_yarnpkg_slash_shell";
       packageName = "@yarnpkg/shell";
-      version = "2.1.0";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@yarnpkg/shell/-/shell-2.1.0.tgz";
-        sha512 = "9i9ZWqeKHGV0DOfdxTVq5zl73Li8Fg947v57uLBEaytNF+HywkDfouNkg/6HfgBrpI0WH8OJ9Pz/uDaE5cpctw==";
+        url = "https://registry.npmjs.org/@yarnpkg/shell/-/shell-2.2.0.tgz";
+        sha512 = "IuOZhYxTydNySqP2HlKkfm1QjgCAgVBUZz5O5rXXxpS4vTNSa0q6fwqvNUSrHSWGKH/jAmJS23YbJqislj5wjg==";
       };
     };
     "@zeit/schemas-2.6.0" = {
@@ -6502,13 +6511,13 @@ let
         sha512 = "sbLEIMQrkV7RkIruqTPXxeCMkAAycv4yzTkBzRgOR1BrR5UB7qZtupqxkersTJSf0HZ3sbaNRrNV80TnnM7cUw==";
       };
     };
-    "apollo-2.30.2" = {
+    "apollo-2.30.3" = {
       name = "apollo";
       packageName = "apollo";
-      version = "2.30.2";
+      version = "2.30.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo/-/apollo-2.30.2.tgz";
-        sha512 = "CKQVvfjbeFPVew9q/dGuRNpohenK7oBTKNnwDs89ImEGoPDd7BpXRQUu/mNjUANoDpd2ztYRwO+ZxxVE8P4+sA==";
+        url = "https://registry.npmjs.org/apollo/-/apollo-2.30.3.tgz";
+        sha512 = "5X0a2PaMOYUWhk0DIRzzwu18j6WiVWIvgmciQHY++QV+aKngspXWeqAn+mugSkwkC/GVycl/0Jv/OCdnemE7Og==";
       };
     };
     "apollo-cache-1.3.5" = {
@@ -6547,49 +6556,49 @@ let
         sha512 = "jiPlMTN6/5CjZpJOkGeUV0mb4zxx33uXWdj/xQCfAMkuNAC3HN7CvYDyMHHEzmcQ5GV12LszWoQ/VlxET24CtA==";
       };
     };
-    "apollo-codegen-core-0.37.8" = {
+    "apollo-codegen-core-0.37.9" = {
       name = "apollo-codegen-core";
       packageName = "apollo-codegen-core";
-      version = "0.37.8";
+      version = "0.37.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-core/-/apollo-codegen-core-0.37.8.tgz";
-        sha512 = "5mIF75iJCGaPXPvWthQjrWKb6YD7KRioODAM6OF5r+foN70Mli2S3g7wCsnmQ0J1TtstntHVnXykHsWClj4NIg==";
+        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.8" = {
+    "apollo-codegen-flow-0.35.9" = {
       name = "apollo-codegen-flow";
       packageName = "apollo-codegen-flow";
-      version = "0.35.8";
+      version = "0.35.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-flow/-/apollo-codegen-flow-0.35.8.tgz";
-        sha512 = "nqTIvqmidL3/k6k0HcJOQfr/vG6a3i2CCKa+w1UwAR9zRJn487lvT3QGSRNuYaohB/wBdGtNk3a1V2FvFyH/xg==";
+        url = "https://registry.npmjs.org/apollo-codegen-flow/-/apollo-codegen-flow-0.35.9.tgz";
+        sha512 = "+9gJLQfSy04Y4DwPpicGLpKQ1GORo07sxQWKqJWMtVRj4exKMFXieNawDUKErvxqiwDKXcBO9B1q5MF8BcwWlA==";
       };
     };
-    "apollo-codegen-scala-0.36.8" = {
+    "apollo-codegen-scala-0.36.9" = {
       name = "apollo-codegen-scala";
       packageName = "apollo-codegen-scala";
-      version = "0.36.8";
+      version = "0.36.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-scala/-/apollo-codegen-scala-0.36.8.tgz";
-        sha512 = "6/ulLUqlKUTac5mZNAaFtzYn5LnJbXeMLftCl1NL4dyzFRn4rj+gZjDRP5e74GfDCqLAMSPyVt/6OFBxFKrs7w==";
+        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.8" = {
+    "apollo-codegen-swift-0.37.9" = {
       name = "apollo-codegen-swift";
       packageName = "apollo-codegen-swift";
-      version = "0.37.8";
+      version = "0.37.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-swift/-/apollo-codegen-swift-0.37.8.tgz";
-        sha512 = "qRqXZg2fLBm5OhJopVwh3Y3RLXeurwAj+bH3xcpxiAX05qci9MVOxwej05nmSu4GUv1csJSLDn93ZjQfByabkQ==";
+        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.8" = {
+    "apollo-codegen-typescript-0.37.9" = {
       name = "apollo-codegen-typescript";
       packageName = "apollo-codegen-typescript";
-      version = "0.37.8";
+      version = "0.37.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-typescript/-/apollo-codegen-typescript-0.37.8.tgz";
-        sha512 = "cYysqRnW2h1xKFEZH0o636IeKvWBeeTDZmNZEyfMcl2TtyMRd0cOFUmA0gokX0JK/QzvJuTJgBKD9le9W8wV2w==";
+        url = "https://registry.npmjs.org/apollo-codegen-typescript/-/apollo-codegen-typescript-0.37.9.tgz";
+        sha512 = "DFBa8vUbiVmd/kGG/mjq6umwWxFRYtzllmt2fwHIVCi9z4vDD8Y+6p9acwOxqjqKCVaJshRQCh94zGuW0gY6vA==";
       };
     };
     "apollo-datasource-0.7.2" = {
@@ -6637,13 +6646,22 @@ let
         sha512 = "YSdF/BKPbsnQpxWpmCE53pBJX44aaoif31Y22I/qKpB6ZSGzYijV5YBoCL5Q15H2oA/v/02Oazh9lbp4ek3eig==";
       };
     };
-    "apollo-language-server-1.23.3" = {
+    "apollo-graphql-0.6.0" = {
+      name = "apollo-graphql";
+      packageName = "apollo-graphql";
+      version = "0.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.6.0.tgz";
+        sha512 = "BxTf5LOQe649e9BNTPdyCGItVv4Ll8wZ2BKnmiYpRAocYEXAVrQPWuSr3dO4iipqAU8X0gvle/Xu9mSqg5b7Qg==";
+      };
+    };
+    "apollo-language-server-1.23.4" = {
       name = "apollo-language-server";
       packageName = "apollo-language-server";
-      version = "1.23.3";
+      version = "1.23.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-language-server/-/apollo-language-server-1.23.3.tgz";
-        sha512 = "WbK5tlqDpyy5TKjo1tjLIAeeTjlpZpvXURB1Qlx7ZfTqaG1846u9lgYpKw6Ydx/+1Viy60K8z530/gOgI/KmvQ==";
+        url = "https://registry.npmjs.org/apollo-language-server/-/apollo-language-server-1.23.4.tgz";
+        sha512 = "PaA25SsAQ30iXfR0noESlNYDNb4RH5S7tjVxBTj53VRArp/gQDWJM6eDvFbH5RH3vXXpfHRVna6YfymDfTPdqg==";
       };
     };
     "apollo-link-1.2.14" = {
@@ -6727,13 +6745,13 @@ let
         sha512 = "HUcP3TlgRsuGgeTOn8QMbkdx0hLPXyEJehZIPrcof0ATz7j7aTPA4at7gaiFHCo8gk07DaWYGB3PFgjboXRcWQ==";
       };
     };
-    "apollo-server-core-2.16.1" = {
+    "apollo-server-core-2.17.0" = {
       name = "apollo-server-core";
       packageName = "apollo-server-core";
-      version = "2.16.1";
+      version = "2.17.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.16.1.tgz";
-        sha512 = "nuwn5ZBbmzPwDetb3FgiFFJlNK7ZBFg8kis/raymrjd3eBGdNcOyMTJDl6J9673X9Xqp+dXQmFYDW/G3G8S1YA==";
+        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.5" = {
@@ -6754,13 +6772,13 @@ let
         sha512 = "FeGxW3Batn6sUtX3OVVUm7o56EgjxDlmgpTLNyWcLb0j6P8mw9oLNyAm3B+deHA4KNdNHO5BmHS2g1SJYjqPCQ==";
       };
     };
-    "apollo-server-express-2.16.1" = {
+    "apollo-server-express-2.17.0" = {
       name = "apollo-server-express";
       packageName = "apollo-server-express";
-      version = "2.16.1";
+      version = "2.17.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.16.1.tgz";
-        sha512 = "Oq5YNcaMYnRk6jDmA9LWf8oSd2KHDVe7jQ4wtooAvG9FVUD+FaFBgSkytXHMvtifQh2wdF07Ri8uDLMz6IQjTw==";
+        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.1" = {
@@ -6781,13 +6799,13 @@ let
         sha512 = "my2cPw+DAb2qVnIuBcsRKGyS28uIc2vjFxa1NpRoJZe9gK0BWUBk7wzXnIzWy3HZ5Er11e/40MPTUesNfMYNVA==";
       };
     };
-    "apollo-tracing-0.11.1" = {
+    "apollo-tracing-0.11.2" = {
       name = "apollo-tracing";
       packageName = "apollo-tracing";
-      version = "0.11.1";
+      version = "0.11.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.11.1.tgz";
-        sha512 = "l7g+uILw7v32GA46IRXIx5XXbZhFI96BhSqrGK9yyvfq+NMcvVZrj3kIhRImPGhAjMdV+5biA/jztabElAbDjg==";
+        url = "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.11.2.tgz";
+        sha512 = "QjmRd2ozGD+PfmF6U9w/w6jrclYSBNczN6Bzppr8qA5somEGl5pqdprIZYL28H0IapZiutA3x6p6ZVF/cVX8wA==";
       };
     };
     "apollo-upload-client-11.0.0" = {
@@ -7618,15 +7636,6 @@ let
         sha512 = "XTZ7xGML849LkQP86sWdQzfhwbt3YwIO6MqbX9mUNYY98VKaaVZP7YNNm70IpwecbkkxmfC5IYAzOQ/2p29zRA==";
       };
     };
-    "ast-types-0.13.4" = {
-      name = "ast-types";
-      packageName = "ast-types";
-      version = "0.13.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz";
-        sha512 = "x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==";
-      };
-    };
     "ast-types-0.14.1" = {
       name = "ast-types";
       packageName = "ast-types";
@@ -8005,13 +8014,13 @@ let
         sha1 = "00f35b2d27ac91b1f0d3ef2084c98cf1d1f0adc3";
       };
     };
-    "aws-sdk-2.740.0" = {
+    "aws-sdk-2.745.0" = {
       name = "aws-sdk";
       packageName = "aws-sdk";
-      version = "2.740.0";
+      version = "2.745.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.740.0.tgz";
-        sha512 = "cSedIe7g5/S5o23jHvm9+vWhcYysmuKrmbML1Z0pO9KxlqOA9s4Z5f6Il7ZmvAktfmrxu1SyQu4YEoP5DL4/zw==";
+        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.745.0.tgz";
+        sha512 = "YTmDvxb0foJC/iZOSsn+MdO4g9nPnlyRdhIpFqvPUkrFzWn5rP4mPtDJan2Eu0j4R02pdwfDhmvr82ckH2w7OQ==";
       };
     };
     "aws-sign2-0.6.0" = {
@@ -9058,13 +9067,13 @@ let
         sha512 = "5LhLQeGxdVFumJTbveJS16Rc+Vzh/nbC6o80UMj6ZRvSkiVkk+4L782OMYI0VG1JTfUxiRFP4f+CZBFyuclLBg==";
       };
     };
-    "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.3" = {
@@ -9211,13 +9220,13 @@ let
         sha512 = "XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==";
       };
     };
-    "blueimp-md5-2.16.0" = {
+    "blueimp-md5-2.17.0" = {
       name = "blueimp-md5";
       packageName = "blueimp-md5";
-      version = "2.16.0";
+      version = "2.17.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.16.0.tgz";
-        sha512 = "j4nzWIqEFpLSbdhUApHRGDwfXbV8ALhqOn+FY5L6XBdKPAXU9BpGgFSbDsgqogfqPPR9R2WooseWCsfhfEC6uQ==";
+        url = "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.17.0.tgz";
+        sha512 = "x5PKJHY5rHQYaADj6NwPUR2QRCUVSggPzrUKkeENpj871o9l9IefJbO2jkT5UvYykeOK9dx0VmkIo6dZ+vThYw==";
       };
     };
     "bn.js-4.11.9" = {
@@ -9319,6 +9328,15 @@ let
         sha1 = "39c8918ceff5799f83f9492a848f625add0c766f";
       };
     };
+    "bootstrap-3.4.1" = {
+      name = "bootstrap";
+      packageName = "bootstrap";
+      version = "3.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bootstrap/-/bootstrap-3.4.1.tgz";
+        sha512 = "yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA==";
+      };
+    };
     "bootstrap-vue-helper-json-1.1.1" = {
       name = "bootstrap-vue-helper-json";
       packageName = "bootstrap-vue-helper-json";
@@ -10417,13 +10435,13 @@ let
         sha512 = "bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==";
       };
     };
-    "caniuse-lite-1.0.30001118" = {
+    "caniuse-lite-1.0.30001123" = {
       name = "caniuse-lite";
       packageName = "caniuse-lite";
-      version = "1.0.30001118";
+      version = "1.0.30001123";
       src = fetchurl {
-        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001118.tgz";
-        sha512 = "RNKPLojZo74a0cP7jFMidQI7nvLER40HgNfgKQEJ2PFm225L0ectUungNQoK3Xk3StQcFbpBPNEvoWD59436Hg==";
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001123.tgz";
+        sha512 = "03dJDoa4YC4332jq0rqwiM+Hw6tA5RJtrnZKvOQy7ASoIUv8CinkcmGhYpCvCjedvkBQrrKnkcELxrUSW/XwNQ==";
       };
     };
     "capital-case-1.0.3" = {
@@ -11209,13 +11227,13 @@ let
         sha1 = "4fa917c3e59c94a004cd61f8ee509da651687143";
       };
     };
-    "cli-boxes-2.2.0" = {
+    "cli-boxes-2.2.1" = {
       name = "cli-boxes";
       packageName = "cli-boxes";
-      version = "2.2.0";
+      version = "2.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz";
-        sha512 = "gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==";
+        url = "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz";
+        sha512 = "y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==";
       };
     };
     "cli-color-0.1.7" = {
@@ -11371,13 +11389,13 @@ let
         sha512 = "s48Efw04VtGyQEwXDrERobMc2DF2DyYQ+2nmNsM7clxOVDtbRI9OjbXRwPeS6G2aFuHy0bB8GUq5MzkmkYt7yw==";
       };
     };
-    "cli-ux-5.4.9" = {
+    "cli-ux-5.5.0" = {
       name = "cli-ux";
       packageName = "cli-ux";
-      version = "5.4.9";
+      version = "5.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cli-ux/-/cli-ux-5.4.9.tgz";
-        sha512 = "4yCKJbFQqNQxf1v0E5T5aBJLt3SbW6dXc/R7zHp4ycdPMg9fAy5f2vhPsWgXEGCMQg+fgN0Sp7EYcZ1XGkFyUA==";
+        url = "https://registry.npmjs.org/cli-ux/-/cli-ux-5.5.0.tgz";
+        sha512 = "aXoHgEOtkem8sJmQrU/jXsojCq8uOp8++9lybCbt9mFDyPouSNawSdoPjuM00PPaSPCJThvY0VNYOQNd6gGQCA==";
       };
     };
     "cli-width-1.1.1" = {
@@ -11434,13 +11452,13 @@ let
         sha1 = "a211e09c6a3de3ba1af27d049d301250d18812bc";
       };
     };
-    "clipanion-2.4.4" = {
+    "clipanion-2.5.0" = {
       name = "clipanion";
       packageName = "clipanion";
-      version = "2.4.4";
+      version = "2.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/clipanion/-/clipanion-2.4.4.tgz";
-        sha512 = "KjyCBz8xplftHjIK/nOqq/9b3hPlXbAAo/AxoITrO4yySpQ6a9QSJDAfOx9PfcRUHteeqbdNxZKSPfeFqQ7plg==";
+        url = "https://registry.npmjs.org/clipanion/-/clipanion-2.5.0.tgz";
+        sha512 = "VYOMl0h/mZXQC2BWq7oBto1zY1SkPWUaJjt+cuIred1HrmrcX1I2N+LNyNoRy8Iwu9r6vUxJwS/tWLwhQW4tPw==";
       };
     };
     "clipboard-2.0.6" = {
@@ -12253,6 +12271,15 @@ let
         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";
@@ -13262,13 +13289,13 @@ let
         sha512 = "0Cbj7gyvFVApzpK/uhCtQ/9kE9UnYpxMzaq5nQQC/Dh4iaj5fxp7iEFIullrYwzj8nf0qnsI1Qsx34hAeAebvw==";
       };
     };
-    "cpy-8.1.0" = {
+    "cpy-8.1.1" = {
       name = "cpy";
       packageName = "cpy";
-      version = "8.1.0";
+      version = "8.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cpy/-/cpy-8.1.0.tgz";
-        sha512 = "XwlImkjPxMr01qXqC564VD4rfcDQ2eKtYmFlCy0ixsLRJ1cwYVUBh+v47jsQTO1IrmvdjqO813VpDQ0JiTuOdA==";
+        url = "https://registry.npmjs.org/cpy/-/cpy-8.1.1.tgz";
+        sha512 = "vqHT+9o67sMwJ5hUd/BAOYeemkU+MuFRsK2c36Xc3eefQpAsp1kAsyDxEDcc5JS1+y9l/XHPrIsVTcyGGmkUUQ==";
       };
     };
     "crc-0.2.0" = {
@@ -14162,6 +14189,15 @@ let
         sha512 = "YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==";
       };
     };
+    "dataloader-2.0.0" = {
+      name = "dataloader";
+      packageName = "dataloader";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dataloader/-/dataloader-2.0.0.tgz";
+        sha512 = "YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ==";
+      };
+    };
     "date-fns-1.30.1" = {
       name = "date-fns";
       packageName = "date-fns";
@@ -14225,13 +14261,13 @@ let
         sha512 = "jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==";
       };
     };
-    "dayjs-1.8.34" = {
+    "dayjs-1.8.35" = {
       name = "dayjs";
       packageName = "dayjs";
-      version = "1.8.34";
+      version = "1.8.35";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dayjs/-/dayjs-1.8.34.tgz";
-        sha512 = "Olb+E6EoMvdPmAMq2QoucuyZycKHjTlBXmRx8Ada+wGtq4SIXuDCdtoaX4KkK0yjf1fJLnwXQURr8gQKWKaybw==";
+        url = "https://registry.npmjs.org/dayjs/-/dayjs-1.8.35.tgz";
+        sha512 = "isAbIEenO4ilm6f8cpqvgjZCsuerDAz2Kb7ri201AiNn58aqXuaLJEnCtfIMdCvERZHNGRY5lDMTr/jdAnKSWQ==";
       };
     };
     "deasync-0.1.15" = {
@@ -16223,13 +16259,13 @@ let
         sha512 = "dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w==";
       };
     };
-    "electron-to-chromium-1.3.549" = {
+    "electron-to-chromium-1.3.560" = {
       name = "electron-to-chromium";
       packageName = "electron-to-chromium";
-      version = "1.3.549";
+      version = "1.3.560";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.549.tgz";
-        sha512 = "q09qZdginlqDH3+Y1P6ch5UDTW8nZ1ijwMkxFs15J/DAWOwqolIx8HZH1UP0vReByBigk/dPlU22xS1MaZ+kpQ==";
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.560.tgz";
+        sha512 = "0cEFfOA3sNXfSxo0FIClBhrLVSe/QO9LBiqmmYPm3N/IYyt41NRTa2EhvOMWAOKpjd91t/rq062yhnJzfVMKkQ==";
       };
     };
     "elegant-spinner-1.0.1" = {
@@ -17115,13 +17151,13 @@ let
         sha512 = "vlUP10xse9sWt9SGRtcr1LAC67BENcQMFeV+w5EvLEoFe3xJ8cF1Skd0msziRx/VMC+72B4DxreCE+OR12OA6Q==";
       };
     };
-    "eslint-7.7.0" = {
+    "eslint-7.8.1" = {
       name = "eslint";
       packageName = "eslint";
-      version = "7.7.0";
+      version = "7.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint/-/eslint-7.7.0.tgz";
-        sha512 = "1KUxLzos0ZVsyL81PnRN335nDtQ8/vZUD6uMtWbF+5zDtjKcsklIi78XoE0MVL93QvWTu+E5y44VyyCsOMBrIg==";
+        url = "https://registry.npmjs.org/eslint/-/eslint-7.8.1.tgz";
+        sha512 = "/2rX2pfhyUG0y+A123d0ccXtMm7DV7sH1m3lk9nk2DZ2LReq39FXHueR9xZwshE5MdfSf0xunSaMWRqyIA6M1w==";
       };
     };
     "eslint-plugin-no-unsanitized-3.1.2" = {
@@ -17142,13 +17178,13 @@ let
         sha512 = "Nhc+oVAHm0uz/PkJAWscwIT4ijTrK5fqNqz9QB1D35SbbuMG1uB6Yr5AJpvPSWg+WOw7nYNswerYh0kOk64gqQ==";
       };
     };
-    "eslint-plugin-vue-7.0.0-beta.2" = {
+    "eslint-plugin-vue-7.0.0-beta.3" = {
       name = "eslint-plugin-vue";
       packageName = "eslint-plugin-vue";
-      version = "7.0.0-beta.2";
+      version = "7.0.0-beta.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.0.0-beta.2.tgz";
-        sha512 = "EpAVWT62JTM7Yo6IUJIaIvNMSuayDaMVMXv1SC96d1/7nyx18U0FrLRKpN2GdTY8Efi4UepgR75XW7ucSRiI7A==";
+        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" = {
@@ -17331,13 +17367,13 @@ let
         sha512 = "olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==";
       };
     };
-    "esrecurse-4.2.1" = {
+    "esrecurse-4.3.0" = {
       name = "esrecurse";
       packageName = "esrecurse";
-      version = "4.2.1";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz";
-        sha512 = "64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==";
+        url = "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz";
+        sha512 = "KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==";
       };
     };
     "essentials-1.1.1" = {
@@ -17583,13 +17619,13 @@ let
         sha512 = "tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==";
       };
     };
-    "eventemitter3-4.0.6" = {
+    "eventemitter3-4.0.7" = {
       name = "eventemitter3";
       packageName = "eventemitter3";
-      version = "4.0.6";
+      version = "4.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.6.tgz";
-        sha512 = "s3GJL04SQoM+gn2c14oyqxvZ3Pcq7cduSDqy3sBFXx6UPSUmgVYwQM9zwkTn9je0lrfg0gHEwR42pF3Q2dCQkQ==";
+        url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz";
+        sha512 = "8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==";
       };
     };
     "events-1.1.1" = {
@@ -17718,15 +17754,6 @@ let
         sha512 = "adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==";
       };
     };
-    "execa-2.1.0" = {
-      name = "execa";
-      packageName = "execa";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz";
-        sha512 = "Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==";
-      };
-    };
     "execa-3.4.0" = {
       name = "execa";
       packageName = "execa";
@@ -19041,13 +19068,13 @@ let
         sha512 = "jlbUu0XkbpXeXhan5xyTqVK1jmEKNxE8hpzznI3TThHTr76GiFwK0iRzhDo4KNy+S9h/KxHaqVhTP86vA6wHCg==";
       };
     };
-    "flow-parser-0.132.0" = {
+    "flow-parser-0.133.0" = {
       name = "flow-parser";
       packageName = "flow-parser";
-      version = "0.132.0";
+      version = "0.133.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.132.0.tgz";
-        sha512 = "y1P37zDCPSdphlk+w+roCqcOar6iQdNaAJldJ6xx5/2r4ZRv4KHO+qL+AXwPWp+34eN+oPxPjWnU7GybJnyISQ==";
+        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.133.0.tgz";
+        sha512 = "ONvDDUcQVY7bMQG4ht7Ti+2IYjBBPphkc7fGmHXZHrrNNjGG4tykLZjIrIx710/k77x2djaY9VKlHC342Luy3A==";
       };
     };
     "fluent-ffmpeg-2.1.2" = {
@@ -20211,13 +20238,13 @@ let
         sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28";
       };
     };
-    "getmac-5.11.0" = {
+    "getmac-5.15.0" = {
       name = "getmac";
       packageName = "getmac";
-      version = "5.11.0";
+      version = "5.15.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/getmac/-/getmac-5.11.0.tgz";
-        sha512 = "p3g41fJt9du5KKkIXaJm7bcUrwUxn8Jg/8AVBgUmBNdCCorczRJXHLqWSETJuib9dptwNuNcfbct/OoM/meiMA==";
+        url = "https://registry.npmjs.org/getmac/-/getmac-5.15.0.tgz";
+        sha512 = "+XN9PwRDWkZ1xFaQR5GOAPDqlK+eNi5M0QBfqeeJvFJaDrwZzplYg1N8uoOZSB9RtDoPcG58Xq2dOYnbZ23N2Q==";
       };
     };
     "getpass-0.1.6" = {
@@ -20391,15 +20418,6 @@ let
         sha512 = "kbuvus1dWQB2sSW4cbfTeGpCMd8ge9jx9RKnhXhuJ7tnvT+NIrTVfYZxjtflZddQYcmdOTlkAcjmx7bor+15AQ==";
       };
     };
-    "git-url-parse-11.1.2" = {
-      name = "git-url-parse";
-      packageName = "git-url-parse";
-      version = "11.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.1.2.tgz";
-        sha512 = "gZeLVGY8QVKMIkckncX+iCq2/L8PlwncvDFKiWkBn9EtCfYDbliRTTp6qzyQ1VMdITUfq7293zDzfpjdiGASSQ==";
-      };
-    };
     "git-url-parse-11.1.3" = {
       name = "git-url-parse";
       packageName = "git-url-parse";
@@ -20941,6 +20959,15 @@ let
         sha512 = "yUhpEDLeuGiGJjRSzEq3kvt4zJtAcjKmhIiwNp/eUs75tRlXfWcHo5tcBaMQtnjHWC7nQYT5HkY/l0QOQTkVww==";
       };
     };
+    "got-11.6.0" = {
+      name = "got";
+      packageName = "got";
+      version = "11.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/got/-/got-11.6.0.tgz";
+        sha512 = "ErhWb4IUjQzJ3vGs3+RR12NWlBDDkRciFpAkQ1LPUxi6OnwhGj07gQxjPsyIk69s7qMihwKrKquV6VQq7JNYLA==";
+      };
+    };
     "got-6.7.1" = {
       name = "got";
       packageName = "got";
@@ -21112,15 +21139,6 @@ let
         sha512 = "6WzlBFC0lWmXJbIVE8OgFgXIP4RJi3OQgTPa0DVMsDXdpRDjTsM1K9wfl5HSYX7R87QAGlvcv2Y4BIZa/ItonA==";
       };
     };
-    "graphql-tag-2.10.4" = {
-      name = "graphql-tag";
-      packageName = "graphql-tag";
-      version = "2.10.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.10.4.tgz";
-        sha512 = "O7vG5BT3w6Sotc26ybcvLKNTdfr4GfsIVMD+LdYqXCeJIYPRyp8BIsDOUtxw7S1PYvRw5vH3278J2EDezR6mfA==";
-      };
-    };
     "graphql-tag-2.11.0" = {
       name = "graphql-tag";
       packageName = "graphql-tag";
@@ -22337,13 +22355,13 @@ let
         sha512 = "yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==";
       };
     };
-    "http-proxy-middleware-0.21.0" = {
+    "http-proxy-middleware-1.0.5" = {
       name = "http-proxy-middleware";
       packageName = "http-proxy-middleware";
-      version = "0.21.0";
+      version = "1.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.21.0.tgz";
-        sha512 = "4Arcl5QQ6pRMRJmtM1WVHKHkFAQn5uvw83XuNeqnMTOikDiCoTxv5/vdudhKQsF+1mtaAawrK2SEB1v2tYecdQ==";
+        url = "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.0.5.tgz";
+        sha512 = "CKzML7u4RdGob8wuKI//H8Ein6wNTEQR7yjVEzPbhBLGdOfkfvgTnp2HLnniKBDP9QW4eG10/724iTWLBeER3g==";
       };
     };
     "http-signature-0.11.0" = {
@@ -23057,13 +23075,13 @@ let
         sha512 = "zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==";
       };
     };
-    "ink-3.0.4" = {
+    "ink-3.0.5" = {
       name = "ink";
       packageName = "ink";
-      version = "3.0.4";
+      version = "3.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ink/-/ink-3.0.4.tgz";
-        sha512 = "WURr4mZoIZNaIqrgRHS1QKJsZdhs4UEeZ7IFvQgGCE7xCgtC+Svu7f7MoEuVz2hexCsmOdBKrkhMCRwFncSe1A==";
+        url = "https://registry.npmjs.org/ink/-/ink-3.0.5.tgz";
+        sha512 = "Zc/Yoi3P0cY0DC9ryb3HTwmi4Qgke9332ebOhDRaK9Cw6D+ABAOQPeHG8IdmI1GOkMKRMZwTP/1jRs/b1D1n9Q==";
       };
     };
     "ink-text-input-4.0.0" = {
@@ -25280,13 +25298,13 @@ let
         sha1 = "bcb4045c8dd0539c134bc1488cdd3e768a7a9e51";
       };
     };
-    "jquery.terminal-2.18.2" = {
+    "jquery.terminal-2.18.3" = {
       name = "jquery.terminal";
       packageName = "jquery.terminal";
-      version = "2.18.2";
+      version = "2.18.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jquery.terminal/-/jquery.terminal-2.18.2.tgz";
-        sha512 = "i6vjYLg+VwJu7r5rXggGx9ezB2o2VeBbGfAooliIANNQDLZSgh095+TtB7NeO/eS1Nfu6vHrXj5AjPL5v+9I8w==";
+        url = "https://registry.npmjs.org/jquery.terminal/-/jquery.terminal-2.18.3.tgz";
+        sha512 = "zzMVGYlAC+luF7Omm9UY1/nuvp00mozSgcGImObWSS3uDRtcxnxlwxQLC8tvlTT+koyfOvCBaWgB6AD4DvWVpQ==";
       };
     };
     "js-base64-2.6.4" = {
@@ -25550,13 +25568,13 @@ let
         sha512 = "mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==";
       };
     };
-    "json-parse-even-better-errors-2.3.0" = {
+    "json-parse-even-better-errors-2.3.1" = {
       name = "json-parse-even-better-errors";
       packageName = "json-parse-even-better-errors";
-      version = "2.3.0";
+      version = "2.3.1";
       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==";
+        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" = {
@@ -27144,13 +27162,13 @@ let
         sha1 = "259933d1327cbaf0fd3662f8fffde36809d84ced";
       };
     };
-    "locutus-2.0.11" = {
+    "locutus-2.0.12" = {
       name = "locutus";
       packageName = "locutus";
-      version = "2.0.11";
+      version = "2.0.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/locutus/-/locutus-2.0.11.tgz";
-        sha512 = "C0q1L38lK5q1t+wE0KY21/9szrBHxye6o2z5EJzU+5B79tubNOC+nLAEzTTn1vPUGoUuehKh8kYKqiVUTWRyaQ==";
+        url = "https://registry.npmjs.org/locutus/-/locutus-2.0.12.tgz";
+        sha512 = "wnzhY9xOdDb2djr17kQhTh9oZgEfp78zI27KRRiiV1GnPXWA2xfVODbpH3QgpIuUMLupM02+6X/rJXvktTpnoA==";
       };
     };
     "lodash-2.4.2" = {
@@ -29700,13 +29718,13 @@ let
         sha512 = "qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw==";
       };
     };
-    "mem-6.1.0" = {
+    "mem-6.1.1" = {
       name = "mem";
       packageName = "mem";
-      version = "6.1.0";
+      version = "6.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mem/-/mem-6.1.0.tgz";
-        sha512 = "RlbnLQgRHk5lwqTtpEkBTQ2ll/CG/iB+J4Hy2Wh97PjgZgXgWJWrFF+XXujh3UUVLvR4OOTgZzcWMMwnehlEUg==";
+        url = "https://registry.npmjs.org/mem/-/mem-6.1.1.tgz";
+        sha512 = "Ci6bIfq/UgcxPTYa8dQQ5FY3BzKkT894bwXWXxC/zqs0XgMO2cT20CGkOqda7gZNkmK5VP4x89IGZ6K7hfbn3Q==";
       };
     };
     "mem-fs-1.2.0" = {
@@ -29898,13 +29916,13 @@ let
         sha512 = "3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==";
       };
     };
-    "meow-7.1.0" = {
+    "meow-7.1.1" = {
       name = "meow";
       packageName = "meow";
-      version = "7.1.0";
+      version = "7.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/meow/-/meow-7.1.0.tgz";
-        sha512 = "kq5F0KVteskZ3JdfyQFivJEj2RaA8NFsS4+r9DaMKLcUHpk5OcHS3Q0XkCXONB1mZRPsu/Y/qImKri0nwSEZog==";
+        url = "https://registry.npmjs.org/meow/-/meow-7.1.1.tgz";
+        sha512 = "GWHvA5QOcS412WCo8vwKDlTelGLsCGBVevQB5Kva961rmNfun0PCbv5+xta2kUMFJyR8/oWnn7ddeKdosbAPbA==";
       };
     };
     "merge-1.2.1" = {
@@ -30645,13 +30663,13 @@ let
         sha1 = "161be5bdeb496771eb9b35745050b622b5aefc58";
       };
     };
-    "mocha-8.1.2" = {
+    "mocha-8.1.3" = {
       name = "mocha";
       packageName = "mocha";
-      version = "8.1.2";
+      version = "8.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mocha/-/mocha-8.1.2.tgz";
-        sha512 = "I8FRAcuACNMLQn3lS4qeWLxXqLvGf6r2CaLstDpZmMUUSmvW6Cnm1AuHxgbc7ctZVRcfwspCRbDHymPsi3dkJw==";
+        url = "https://registry.npmjs.org/mocha/-/mocha-8.1.3.tgz";
+        sha512 = "ZbaYib4hT4PpF4bdSO2DohooKXIn4lDeiYqB+vTmCdr6l2woW0b6H3pf5x4sM5nwQMru9RvjjHYWVGltR50ZBw==";
       };
     };
     "mock-require-3.0.3" = {
@@ -31203,13 +31221,13 @@ let
         sha512 = "nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==";
       };
     };
-    "mutexify-1.3.0" = {
+    "mutexify-1.3.1" = {
       name = "mutexify";
       packageName = "mutexify";
-      version = "1.3.0";
+      version = "1.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mutexify/-/mutexify-1.3.0.tgz";
-        sha512 = "WNPlgZ3AHETGSa4jeRP4aW6BPQ/a++MwoMFFIgrDg80+m70mbxuNOrevANfBDmur82zxTFAY3OwvMAvqrkV2sA==";
+        url = "https://registry.npmjs.org/mutexify/-/mutexify-1.3.1.tgz";
+        sha512 = "nU7mOEuaXiQIB/EgTIjYZJ7g8KqMm2D8l4qp+DqA4jxWOb/tnb1KEoqp+tlbdQIDIAiC1i7j7X/3yHDFXLxr9g==";
       };
     };
     "muxrpc-6.5.0" = {
@@ -31635,6 +31653,15 @@ let
         sha512 = "o/qITSDR0JCyCKEQ1/1bnUXMmznxabbwi/Y4WwJElf+evwJNFNwIDMCCt5IigFVxgeGBJESLohGtIS9gEzo1fA==";
       };
     };
+    "needle-2.5.2" = {
+      name = "needle";
+      packageName = "needle";
+      version = "2.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/needle/-/needle-2.5.2.tgz";
+        sha512 = "LbRIwS9BfkPvNwNHlsA41Q29kL2L/6VaOJ0qisM5lLWsTV3nP15abO5ITL6L81zqFhzjRKDAYjpcBcwM0AVvLQ==";
+      };
+    };
     "negotiator-0.3.0" = {
       name = "negotiator";
       packageName = "negotiator";
@@ -31690,13 +31717,13 @@ let
         sha512 = "AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==";
       };
     };
-    "netlify-4.3.12" = {
+    "netlify-4.3.13" = {
       name = "netlify";
       packageName = "netlify";
-      version = "4.3.12";
+      version = "4.3.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/netlify/-/netlify-4.3.12.tgz";
-        sha512 = "uHyKa0wPwhTJblqY4uoxhOkR34I72o3rItJCpBPL4g+7ELDt88qk//WoV3p9CT1TX+sgXvLZuN92HHAM5OPk/w==";
+        url = "https://registry.npmjs.org/netlify/-/netlify-4.3.13.tgz";
+        sha512 = "nXiqUm89HOEGOzYiLtxGOUCZ+iJB01zxCMeolaQXaIia6UnFCw/jHMARGXMLpntxkgjclaMgMVzKO3aetbHAvQ==";
       };
     };
     "netlify-redirect-parser-2.5.0" = {
@@ -32951,22 +32978,22 @@ let
         sha512 = "pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==";
       };
     };
-    "oas-linter-3.1.3" = {
+    "oas-linter-3.2.0" = {
       name = "oas-linter";
       packageName = "oas-linter";
-      version = "3.1.3";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/oas-linter/-/oas-linter-3.1.3.tgz";
-        sha512 = "jFWBHjSoqODGo7cKA/VWqqWSLbHNtnyCEpa2nMMS64SzCUbZDk63Oe7LqQZ2qJA0K2VRreYLt6cVkYy6MqNRDg==";
+        url = "https://registry.npmjs.org/oas-linter/-/oas-linter-3.2.0.tgz";
+        sha512 = "LP5F1dhjULEJV5oGRg6ROztH2FddzttrrUEwq5J2GB2Zy938mg0vwt1+Rthn/qqDHtj4Qgq21duNGHh+Ew1wUg==";
       };
     };
-    "oas-resolver-2.4.3" = {
+    "oas-resolver-2.4.4" = {
       name = "oas-resolver";
       packageName = "oas-resolver";
-      version = "2.4.3";
+      version = "2.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/oas-resolver/-/oas-resolver-2.4.3.tgz";
-        sha512 = "+66lGk5GewIXoIkqxfeWp89M/SgQT67oITiuG6qNIUuq1gczIIy68ZrMiE+gyDZY2IAdVxY9k73o9nHBnKwHPA==";
+        url = "https://registry.npmjs.org/oas-resolver/-/oas-resolver-2.4.4.tgz";
+        sha512 = "670+SM5CXYrjI547cgUeQTdB1wJb2gyrJ7bnGywQMrmciKXhXj/EFbE/8c8wed+j1WmGAh7xS+QdQxiuIlNqlw==";
       };
     };
     "oas-schema-walker-1.1.5" = {
@@ -33330,13 +33357,13 @@ let
         sha512 = "fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==";
       };
     };
-    "office-ui-fabric-react-7.132.0" = {
+    "office-ui-fabric-react-7.134.1" = {
       name = "office-ui-fabric-react";
       packageName = "office-ui-fabric-react";
-      version = "7.132.0";
+      version = "7.134.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/office-ui-fabric-react/-/office-ui-fabric-react-7.132.0.tgz";
-        sha512 = "tyJyra4Ovp4fwmttLs/SwPln2zQCEYwS+FwqgdojCaudPnp/J8nGtF78hCBiEdap4KEdnIJb6MCfyVLBW+zs9Q==";
+        url = "https://registry.npmjs.org/office-ui-fabric-react/-/office-ui-fabric-react-7.134.1.tgz";
+        sha512 = "yQhPdt5kQfzI/MQnqQMu9lf2mgdHSogEfVIYgfOjbvfMJoUzqA/hH3X2Z7RbncdJ/ca2H+GXVp5GvSgahCOs6g==";
       };
     };
     "omggif-1.0.10" = {
@@ -33573,6 +33600,15 @@ let
         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";
@@ -33699,13 +33735,13 @@ 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.7" = {
@@ -33906,6 +33942,15 @@ let
         sha512 = "77iGeVU1cIdRhgFzCK8aw1fbtT1B/iZAvWjS+l/o1x0RShMgxHUZaD2yDpWsNCPwXg9z1ZA78Kbdvr8kBmG/Ww==";
       };
     };
+    "ora-4.1.1" = {
+      name = "ora";
+      packageName = "ora";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ora/-/ora-4.1.1.tgz";
+        sha512 = "sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A==";
+      };
+    };
     "ora-5.0.0" = {
       name = "ora";
       packageName = "ora";
@@ -34383,15 +34428,6 @@ let
         sha512 = "R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==";
       };
     };
-    "p-wait-for-2.0.1" = {
-      name = "p-wait-for";
-      packageName = "p-wait-for";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/p-wait-for/-/p-wait-for-2.0.1.tgz";
-        sha512 = "edEuJC7eRokPf3AWycsS3lp8JimWLnVgCeGoWw67qFerUmsAHKyhRBj8rDvaBjPV2bTyzgTwmF+U8vNMMBEcyA==";
-      };
-    };
     "p-wait-for-3.1.0" = {
       name = "p-wait-for";
       packageName = "p-wait-for";
@@ -35859,13 +35895,13 @@ let
         sha512 = "40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==";
       };
     };
-    "polished-3.6.5" = {
+    "polished-3.6.6" = {
       name = "polished";
       packageName = "polished";
-      version = "3.6.5";
+      version = "3.6.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/polished/-/polished-3.6.5.tgz";
-        sha512 = "VwhC9MlhW7O5dg/z7k32dabcAFW1VI2+7fSe8cE/kXcfL7mVdoa5UxciYGW2sJU78ldDLT6+ROEKIZKFNTnUXQ==";
+        url = "https://registry.npmjs.org/polished/-/polished-3.6.6.tgz";
+        sha512 = "yiB2ims2DZPem0kCD6V0wnhcVGFEhNh0Iw0axNpKU+oSAgFt6yx6HxIT23Qg0WWvgS379cS35zT4AOyZZRzpQQ==";
       };
     };
     "portfinder-1.0.28" = {
@@ -35932,13 +35968,13 @@ let
         sha512 = "03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==";
       };
     };
-    "postcss-calc-7.0.3" = {
+    "postcss-calc-7.0.4" = {
       name = "postcss-calc";
       packageName = "postcss-calc";
-      version = "7.0.3";
+      version = "7.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.3.tgz";
-        sha512 = "IB/EAEmZhIMEIhG7Ov4x+l47UaXOS1n2f4FBUk/aKllQhtSCxWhTzn0nJgkqN7fo/jcWySvWTSB6Syk9L+31bA==";
+        url = "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.4.tgz";
+        sha512 = "0I79VRAd1UTkaHzY9w83P39YGO/M3bG7/tNLrHGEunBolfoGM0hSjrGvjoeaj0JE/zIw5GsI2KZ0UwDJqv5hjw==";
       };
     };
     "postcss-colormin-4.0.3" = {
@@ -36652,13 +36688,13 @@ let
         sha512 = "urhX7U/F+fu8sztEs/Z7CxNS8PdEytEwGKhQaH5fxxCdRmHGT45FoClyDlcZrMk9cK/8JpX/asFmTOHtSGJfLg==";
       };
     };
-    "pretty-bytes-5.3.0" = {
+    "pretty-bytes-5.4.1" = {
       name = "pretty-bytes";
       packageName = "pretty-bytes";
-      version = "5.3.0";
+      version = "5.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz";
-        sha512 = "hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==";
+        url = "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.4.1.tgz";
+        sha512 = "s1Iam6Gwz3JI5Hweaz4GoCD1WUNUIyzePFy5+Js2hjwGVt2Z79wNN+ZKOZ2vB6C+Xs6njyB84Z1IthQg8d9LxA==";
       };
     };
     "pretty-format-23.6.0" = {
@@ -38371,13 +38407,13 @@ let
         sha1 = "4f68a1dc0ae58bd3fb95848c30324db75d64360b";
       };
     };
-    "random-item-1.0.0" = {
+    "random-item-3.0.0" = {
       name = "random-item";
       packageName = "random-item";
-      version = "1.0.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/random-item/-/random-item-1.0.0.tgz";
-        sha1 = "16ee31626cb050c8a1686a5f0f42a6b99a2aaf11";
+        url = "https://registry.npmjs.org/random-item/-/random-item-3.0.0.tgz";
+        sha512 = "IpO3Jk9/Dt79R7iS/Fn2d2asGXahMNnXLNRsgSmjTTtiS0tZ972BWEEm9uUgm3YAon5YFUt8126FA9wJAjmeZw==";
       };
     };
     "random-iterate-1.0.1" = {
@@ -38767,15 +38803,6 @@ let
         sha512 = "XBQjqOBtTzyol2CpsQOw8LHV0XbDZVG7xMMjmXAJomlVY03WOBRmYgDJETlvcg0H63AJvPRwT7GFi5rvOzUOKg==";
       };
     };
-    "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";
@@ -38956,13 +38983,13 @@ let
         sha512 = "XNvYvkfdAN9QewbrxeTOjgINkdY/odTgTS56ZNEWL9Ml0weT4T3sFtvnTuF+Gxyu46ANcRm1ntrF6F5LAJPAaQ==";
       };
     };
-    "recast-0.19.1" = {
+    "recast-0.20.3" = {
       name = "recast";
       packageName = "recast";
-      version = "0.19.1";
+      version = "0.20.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/recast/-/recast-0.19.1.tgz";
-        sha512 = "8FCjrBxjeEU2O6I+2hyHyBFH1siJbMBLwIRvVr1T3FD2cL754sOaJDsJ/8h3xYltasbJ8jqWRIhMuDGBSiSbjw==";
+        url = "https://registry.npmjs.org/recast/-/recast-0.20.3.tgz";
+        sha512 = "jrEPzRV5B7wfRiN0UYMtjgIx1Hp8MRHdLcMYqMNd0DoOe1CB5JmPL/04I7WPuuApCs7LCSisYK/FfKnPEaJrzw==";
       };
     };
     "rechoir-0.6.2" = {
@@ -39073,13 +39100,13 @@ let
         sha512 = "pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==";
       };
     };
-    "reftools-1.1.5" = {
+    "reftools-1.1.6" = {
       name = "reftools";
       packageName = "reftools";
-      version = "1.1.5";
+      version = "1.1.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/reftools/-/reftools-1.1.5.tgz";
-        sha512 = "o7RX5wMzITYj+8P8oaccFH2xYu5nQ63TH0d73Ce5YgpiY9NyFytaQfeg1p1Z5T4yfjKSj0sYuUscBqZgkLsooQ==";
+        url = "https://registry.npmjs.org/reftools/-/reftools-1.1.6.tgz";
+        sha512 = "rQfJ025lvPjw9qyQuNPqE+cRs5qVs7BMrZwgRJnmuMcX/8r/eJE8f5/RCunJWViXKHmN5K2DFafYzglLOHE/tw==";
       };
     };
     "regenerate-1.4.1" = {
@@ -39505,6 +39532,15 @@ let
         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";
@@ -40297,13 +40333,13 @@ let
         sha512 = "/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==";
       };
     };
-    "rollup-2.26.5" = {
+    "rollup-2.26.9" = {
       name = "rollup";
       packageName = "rollup";
-      version = "2.26.5";
+      version = "2.26.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/rollup/-/rollup-2.26.5.tgz";
-        sha512 = "rCyFG3ZtQdnn9YwfuAVH0l/Om34BdO5lwCA0W6Hq+bNB21dVEBbCRxhaHOmu1G7OBFDWytbzAC104u7rxHwGjA==";
+        url = "https://registry.npmjs.org/rollup/-/rollup-2.26.9.tgz";
+        sha512 = "XIiWYLayLqV+oY4S2Lub/shJq4uk/QQLwWToYCL4LjZbYHbFK3czea4UDVRUJu+zNmKmxq5Zb/OG7c5HSvH2TQ==";
       };
     };
     "rollup-plugin-babel-4.4.0" = {
@@ -40837,6 +40873,15 @@ let
         sha512 = "0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==";
       };
     };
+    "schema-utils-2.7.1" = {
+      name = "schema-utils";
+      packageName = "schema-utils";
+      version = "2.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz";
+        sha512 = "SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==";
+      };
+    };
     "scoped-regex-1.0.0" = {
       name = "scoped-regex";
       packageName = "scoped-regex";
@@ -42124,13 +42169,13 @@ let
         sha512 = "3UlyogA67/9WOssJ7s4d7gqWQRWyO/LbgdBBNMhhmFDKa7eTUSW+A782CVHgyDSJZ2kNANcMWwMiOL+h3p6zQg==";
       };
     };
-    "snyk-cpp-plugin-1.4.0" = {
+    "snyk-cpp-plugin-1.4.1" = {
       name = "snyk-cpp-plugin";
       packageName = "snyk-cpp-plugin";
-      version = "1.4.0";
+      version = "1.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-cpp-plugin/-/snyk-cpp-plugin-1.4.0.tgz";
-        sha512 = "DaI2u42FRvASQpcu+p52nzDd3QPsrIHLN4JxnvcH32diPps9ynkx5CMNkarBgDo00GZfsWgz9RrDfDFCx3TSQQ==";
+        url = "https://registry.npmjs.org/snyk-cpp-plugin/-/snyk-cpp-plugin-1.4.1.tgz";
+        sha512 = "akhVFsuGBD5yyQtTNoItzG8M6k7dd6A16cHBSoTsP8TgnQdm0QIJMrE2zj0Ak1wgyTCiZeGkI6NE9TDwvvfKLw==";
       };
     };
     "snyk-docker-plugin-3.18.1" = {
@@ -42160,13 +42205,13 @@ let
         sha512 = "XNGHEFyP+pCzcqmXnj5T/1Oy6AZzm2WkTSuUpohWQ/09ecMRCCv2yrr/kwMQemrKN4+7CoJS/9xfm3GnNlzVHA==";
       };
     };
-    "snyk-gradle-plugin-3.5.1" = {
+    "snyk-gradle-plugin-3.6.2" = {
       name = "snyk-gradle-plugin";
       packageName = "snyk-gradle-plugin";
-      version = "3.5.1";
+      version = "3.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-gradle-plugin/-/snyk-gradle-plugin-3.5.1.tgz";
-        sha512 = "8tZwQCqRbjp1azvc+bBRXSbn2AjbUpFAM6qoSpM/IZpfGl1RaOtz4/JTkGFxj+iBhTFoAkGxEunT66eO0pHZZw==";
+        url = "https://registry.npmjs.org/snyk-gradle-plugin/-/snyk-gradle-plugin-3.6.2.tgz";
+        sha512 = "JJmVOoLCCN58Wjcxdg93KeMjecnypP6+TfnCPuD4NbCNnKSn93c22VKpx6h1/AS1u6EK9dDTelwlYQOopBFA+w==";
       };
     };
     "snyk-module-1.9.1" = {
@@ -42430,13 +42475,13 @@ let
         sha512 = "o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==";
       };
     };
-    "socks-2.4.1" = {
+    "socks-2.4.2" = {
       name = "socks";
       packageName = "socks";
-      version = "2.4.1";
+      version = "2.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socks/-/socks-2.4.1.tgz";
-        sha512 = "8mWHeYC1OA0500qzb+sqwm0Hzi8oBpeuI1JugoBVMEJtJvxSgco8xFSK+NRnZcHeeWjTbF82KUDo5sXH22TY5A==";
+        url = "https://registry.npmjs.org/socks/-/socks-2.4.2.tgz";
+        sha512 = "cE6P9R+/CET9XhIMvqhRgaNT1GXKIahioMjwwhgYOd+8UQWP50rrFm+faqG/4xkZsjTdVeBYr0Tb246BSC9/fg==";
       };
     };
     "socks-proxy-agent-4.0.2" = {
@@ -42790,13 +42835,13 @@ let
         sha1 = "ff4ae6e68656056ba4b3e792ab3334d38273ca11";
       };
     };
-    "spawn-please-0.3.0" = {
+    "spawn-please-0.4.1" = {
       name = "spawn-please";
       packageName = "spawn-please";
-      version = "0.3.0";
+      version = "0.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/spawn-please/-/spawn-please-0.3.0.tgz";
-        sha1 = "db338ec4cff63abc69f1d0e08cee9eb8bebd9d11";
+        url = "https://registry.npmjs.org/spawn-please/-/spawn-please-0.4.1.tgz";
+        sha512 = "YJwFL/shPyY5fddOU1XXkShCDNVkMDGKsGlpB91FKOkRGa+pVAe+A5/CUUwLrZ3e89prqbTXaGapCzTlmc3HaA==";
       };
     };
     "spawn-sync-1.0.15" = {
@@ -43186,13 +43231,13 @@ let
         sha512 = "ifPgPNmDE8EKuuoqtXibwgYNtDZNry7sJL1epSUb3XgQr62bUV31N9R5LHKDsI2kx96OgWRwWY2PfZ7vf/hU8Q==";
       };
     };
-    "ssb-friends-4.2.0" = {
+    "ssb-friends-4.2.1" = {
       name = "ssb-friends";
       packageName = "ssb-friends";
-      version = "4.2.0";
+      version = "4.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-friends/-/ssb-friends-4.2.0.tgz";
-        sha512 = "X8UewxMCZImUoYX9eNHdym6oFcfEA610iuyn2cGcHtYZre1J2WiKtCLBB2KIjwWZqlOs1mARE+mkVPYnduZy4Q==";
+        url = "https://registry.npmjs.org/ssb-friends/-/ssb-friends-4.2.1.tgz";
+        sha512 = "DgArf97p2MQxOKn9jWmyxA/6HUiyZkk5QFYohS/qo7CAFJzBJobgoJuvEGjzCgszJAZ/WmGwjYTrKTqFHwMEuQ==";
       };
     };
     "ssb-git-0.5.0" = {
@@ -43420,13 +43465,13 @@ let
         sha512 = "Z4jBj917W+dKAiDglwxCpWm8vINOMtkpHQIgk50NQTb5jHqHI5Rcyiy7EO0uRcWwRWqXi1ZwOTEFVyLyyuittA==";
       };
     };
-    "ssb-validate-4.1.1" = {
+    "ssb-validate-4.1.2" = {
       name = "ssb-validate";
       packageName = "ssb-validate";
-      version = "4.1.1";
+      version = "4.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-validate/-/ssb-validate-4.1.1.tgz";
-        sha512 = "3OsB6qTYlOMUqy4S1i0NuBtiqRW0s9z1Uf+Yqhjcqt7Zu8LTZk59HyhB1gfYmC3xzR/UnHeI7LkJZOt2+r//gA==";
+        url = "https://registry.npmjs.org/ssb-validate/-/ssb-validate-4.1.2.tgz";
+        sha512 = "dDINHOWMpKfMr/o0OlqCQouKKeqYsODHn9VDUPOpWa82vSW6bnEXmfSNXjFc7Sf7pzCDrUsYlJ81+UUr27CvsA==";
       };
     };
     "ssb-ws-6.2.3" = {
@@ -44878,6 +44923,15 @@ let
         sha512 = "oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==";
       };
     };
+    "supports-color-7.2.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "7.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz";
+        sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==";
+      };
+    };
     "supports-hyperlinks-1.0.1" = {
       name = "supports-hyperlinks";
       packageName = "supports-hyperlinks";
@@ -45004,13 +45058,13 @@ let
         sha1 = "e39fae3d581d713682491e1926cd87bf2c209bfb";
       };
     };
-    "swagger-ui-dist-3.32.4" = {
+    "swagger-ui-dist-3.32.5" = {
       name = "swagger-ui-dist";
       packageName = "swagger-ui-dist";
-      version = "3.32.4";
+      version = "3.32.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.32.4.tgz";
-        sha512 = "3qUqK131a5nqGdDJhLflTNzvrjZgjBlINYNx+Jm5lw/Va88Lcu5iyjUupY3Js/Kf326z1XtXkrr6TbvE6r925g==";
+        url = "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.32.5.tgz";
+        sha512 = "3SKHv8UVqsKKknivtACHbFDGcn297jkoZN2h6zAZ7b2yoaJNMaRadQpC3qFw3GobZTGzqHCgHph4ZH9NkaCjrQ==";
       };
     };
     "swagger2openapi-5.4.0" = {
@@ -47003,15 +47057,6 @@ let
         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";
@@ -47183,13 +47228,13 @@ let
         sha512 = "Esj5HG5WAyrLIdYU74Z3JdG2PxdIusvj6IWHMtlyESxc7kcDz7zYlYjpnSokn1UbpV0d/QX9fan7gkCNd/9BQA==";
       };
     };
-    "uglify-js-3.10.2" = {
+    "uglify-js-3.10.3" = {
       name = "uglify-js";
       packageName = "uglify-js";
-      version = "3.10.2";
+      version = "3.10.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.2.tgz";
-        sha512 = "GXCYNwqoo0MbLARghYjxVBxDCnU0tLqN7IPLdHHbibCb1NI5zBkU2EPcy/GaVxc0BtTjqyGXJCINe6JMR2Dpow==";
+        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.3.tgz";
+        sha512 = "Lh00i69Uf6G74mvYpHCI9KVVXLcHW/xu79YTvH7Mkc9zyKUeSPz0owW0dguj0Scavns3ZOh3wY63J0Zb97Za2g==";
       };
     };
     "uglify-js-3.4.10" = {
@@ -47363,6 +47408,15 @@ let
         sha512 = "N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==";
       };
     };
+    "underscore-1.11.0" = {
+      name = "underscore";
+      packageName = "underscore";
+      version = "1.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/underscore/-/underscore-1.11.0.tgz";
+        sha512 = "xY96SsN3NA461qIRKZ/+qox37YXPtSBswMGfiNptr+wrt6ds4HaMw23TP612fEyGekRE6LNRiLYr/aqbHXNedw==";
+      };
+    };
     "underscore-1.2.1" = {
       name = "underscore";
       packageName = "underscore";
@@ -47876,13 +47930,13 @@ let
         sha512 = "0g4wbluTF93npyPrp/ymd3tCDTMnP0yo2akFD2FIBAYXq/Sga3lwaU1D8OYKbtpioaI6CkDcQ6fsMnmtzt7htw==";
       };
     };
-    "universal-analytics-0.4.20" = {
+    "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" = {
@@ -48173,13 +48227,13 @@ let
         sha1 = "f90b858507f81dea4dcfbb3c4c3dbfa2b557faaa";
       };
     };
-    "uri-js-4.2.2" = {
+    "uri-js-4.4.0" = {
       name = "uri-js";
       packageName = "uri-js";
-      version = "4.2.2";
+      version = "4.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz";
-        sha512 = "KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==";
+        url = "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz";
+        sha512 = "B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==";
       };
     };
     "urijs-1.19.2" = {
@@ -48551,15 +48605,6 @@ let
         sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==";
       };
     };
-    "uuid-8.1.0" = {
-      name = "uuid";
-      packageName = "uuid";
-      version = "8.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/uuid/-/uuid-8.1.0.tgz";
-        sha512 = "CI18flHDznR0lq54xBycOVmphdCYnQLKn8abKn7PXUiKUGdEd+/l9LWNJmugXel4hXq7S+RMNl34ecyC9TntWg==";
-      };
-    };
     "uuid-8.3.0" = {
       name = "uuid";
       packageName = "uuid";
@@ -49100,13 +49145,13 @@ let
         sha1 = "c066afb582bb1cb4128d60ea92392e94d5e9dbec";
       };
     };
-    "vsce-1.79.3" = {
+    "vsce-1.79.5" = {
       name = "vsce";
       packageName = "vsce";
-      version = "1.79.3";
+      version = "1.79.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vsce/-/vsce-1.79.3.tgz";
-        sha512 = "TZb0XrLPDAm/Ns8McayGS2S8XCCMuQPwdUOluKC/0LopyEH7/NnTkM09hF4kOzfvIITuFWy4PT2R1apeLQw3kQ==";
+        url = "https://registry.npmjs.org/vsce/-/vsce-1.79.5.tgz";
+        sha512 = "KZFOthGwxWFwoGqwrkzfTfyCZGuniTofnJ1a/dCzQ2HP93u1UuCKrTQyGT+SuGHu8sNqdBYNe0hb9GC3qCN7fg==";
       };
     };
     "vscode-css-languageservice-3.0.13" = {
@@ -49145,13 +49190,22 @@ let
         sha512 = "mIb5VMXM5jI97HzCk2eadI1K//rCEZXte0wBqA7PGXsyJH4KTyJUaYk9MR+mbfpUl2vMi3HZw9GUOLGYLc6l5w==";
       };
     };
-    "vscode-json-languageservice-3.8.1" = {
+    "vscode-json-languageservice-3.8.3" = {
       name = "vscode-json-languageservice";
       packageName = "vscode-json-languageservice";
-      version = "3.8.1";
+      version = "3.8.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-3.8.1.tgz";
-        sha512 = "PYckar/Vgpa/YTthbSnqbxbawxwcGQ+xs/M48muw89uJWe4nZm5yto0oCKMMZHIFD8r3nN6BrmDzXQEaeQ1bBQ==";
+        url = "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-3.8.3.tgz";
+        sha512 = "8yPag/NQHCuTthahyaTtzK0DHT0FKM/xBU0mFBQ8nMo8C1i2P+FCyIVqICoNoHkRI2BTGlXKomPUpsqjSz0TnQ==";
+      };
+    };
+    "vscode-jsonrpc-3.5.0" = {
+      name = "vscode-jsonrpc";
+      packageName = "vscode-jsonrpc";
+      version = "3.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-3.5.0.tgz";
+        sha1 = "87239d9e166b2d7352245b8a813597804c1d63aa";
       };
     };
     "vscode-jsonrpc-3.6.0" = {
@@ -49208,6 +49262,15 @@ let
         sha512 = "JrjCUhLpQZxQ5VpWpilOHDMhVsn0fdN5jBh1uFNhSr5c2loJvRdr9Km2EuSQOFfOQsBKx0+xvY8PbsypNEcJ6w==";
       };
     };
+    "vscode-languageserver-3.5.1" = {
+      name = "vscode-languageserver";
+      packageName = "vscode-languageserver";
+      version = "3.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-3.5.1.tgz";
+        sha512 = "RYUKn0DgHTFcS8kS4VaNCjNMaQXYqiXdN9bKrFjXzu5RPKfjIYcoh47oVWwZj4L3R/DPB0Se7HPaDatvYY2XgQ==";
+      };
+    };
     "vscode-languageserver-4.0.0" = {
       name = "vscode-languageserver";
       packageName = "vscode-languageserver";
@@ -49280,6 +49343,15 @@ let
         sha512 = "atmkGT/W6tF0cx4SaWFYtFs2UeSeC28RPiap9myv2YZTaTCFvTBEPNWrU5QRKfkyM0tbgtGo6T3UCQ8tkDpjzA==";
       };
     };
+    "vscode-languageserver-protocol-3.5.1" = {
+      name = "vscode-languageserver-protocol";
+      packageName = "vscode-languageserver-protocol";
+      version = "3.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.5.1.tgz";
+        sha512 = "1fPDIwsAv1difCV+8daOrJEGunClNJWqnUHq/ncWrjhitKWXgGmRCjlwZ3gDUTt54yRcvXz1PXJDaRNvNH6pYA==";
+      };
+    };
     "vscode-languageserver-protocol-3.6.0" = {
       name = "vscode-languageserver-protocol";
       packageName = "vscode-languageserver-protocol";
@@ -49343,6 +49415,24 @@ let
         sha512 = "QjXB7CKIfFzKbiCJC4OWC8xUncLsxo19FzGVp/ADFvvi87PlmBSCAtZI5xwGjF5qE0xkLf0jjKUn3DzmpDP52Q==";
       };
     };
+    "vscode-languageserver-types-3.5.0" = {
+      name = "vscode-languageserver-types";
+      packageName = "vscode-languageserver-types";
+      version = "3.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.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" = {
       name = "vscode-nls";
       packageName = "vscode-nls";
@@ -49442,13 +49532,13 @@ let
         sha512 = "uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg==";
       };
     };
-    "vue-3.0.0-rc.9" = {
+    "vue-3.0.0-rc.10" = {
       name = "vue";
       packageName = "vue";
-      version = "3.0.0-rc.9";
+      version = "3.0.0-rc.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vue/-/vue-3.0.0-rc.9.tgz";
-        sha512 = "bimvpl5q/sKy1dAOE+KNX9T3p6Qq8kuNRmOYwaxtacI91ksjS7nVGse1FANhTL+XTQgl8+ySrd3f67xWi26nxw==";
+        url = "https://registry.npmjs.org/vue/-/vue-3.0.0-rc.10.tgz";
+        sha512 = "nRsyIQtOWLDMBb5dsPwg/WdIqznCMVWN6O6wJSzhseKC768wHlZKcJ7SPHhWPid9wi3Ykhtl9vtgvxTK/qICkw==";
       };
     };
     "vue-cli-plugin-apollo-0.21.3" = {
@@ -49757,13 +49847,13 @@ let
         sha512 = "lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==";
       };
     };
-    "websocket-1.0.31" = {
+    "websocket-1.0.32" = {
       name = "websocket";
       packageName = "websocket";
-      version = "1.0.31";
+      version = "1.0.32";
       src = fetchurl {
-        url = "https://registry.npmjs.org/websocket/-/websocket-1.0.31.tgz";
-        sha512 = "VAouplvGKPiKFDTeCCO65vYHsyay8DqoBSlzIO3fayrfOgU94lQN5a1uWVnFrMLceTJw/+fQXR5PGbUVRaHshQ==";
+        url = "https://registry.npmjs.org/websocket/-/websocket-1.0.32.tgz";
+        sha512 = "i4yhcllSP4wrpoPMU2N0TQ/q0O94LRG/eUQjEAamRltjQ1oT1PFFKOG4i877OlJgCG8rw6LrrowJp+TYCEWF7Q==";
       };
     };
     "websocket-driver-0.6.5" = {
@@ -51009,13 +51099,13 @@ let
         sha1 = "87cfa5a9613f48e26005420d6a8ee0da6fe8daec";
       };
     };
-    "yaml-language-server-0.10.0" = {
+    "yaml-language-server-0.10.1" = {
       name = "yaml-language-server";
       packageName = "yaml-language-server";
-      version = "0.10.0";
+      version = "0.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-0.10.0.tgz";
-        sha512 = "d2/7eGgonEIRcnW9kK+k+ERG4gTOk5BXHr9KjTVv8gEarXKa62Kk+nyFE4AXgMDZ0LXTu8nTuN/AdboJiGN+pQ==";
+        url = "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-0.10.1.tgz";
+        sha512 = "R9SEt/nWTuZ8weB040L7yyaIVARlZ0ian1Kv6ptu4+xyVlIMobTZXaBTtgyhlMWqcQ3BpsAZu4q/2plRVG3tLQ==";
       };
     };
     "yamljs-0.3.0" = {
@@ -51081,15 +51171,6 @@ let
         sha512 = "ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==";
       };
     };
-    "yargs-15.3.1" = {
-      name = "yargs";
-      packageName = "yargs";
-      version = "15.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz";
-        sha512 = "92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==";
-      };
-    };
     "yargs-15.4.1" = {
       name = "yargs";
       packageName = "yargs";
@@ -51252,6 +51333,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";
@@ -51306,13 +51396,13 @@ let
         sha512 = "pLIhhU9z/G+kjOXmJ2bPFm3nejfbH+f1fjYRSOteEXDBrv1EoJE/e+kuHixSXfCYfTkxjYsvRaDX+1QykLCnpQ==";
       };
     };
-    "yeoman-generator-4.11.0" = {
+    "yeoman-generator-4.12.0" = {
       name = "yeoman-generator";
       packageName = "yeoman-generator";
-      version = "4.11.0";
+      version = "4.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-4.11.0.tgz";
-        sha512 = "++t6t2Z6HjL5F1/UM7+uNvGknKmQdF8tstJx8WKzsUSEpB+19kLVtapSfQIh9uWqm0L59fLWDzUui//WXoynPw==";
+        url = "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-4.12.0.tgz";
+        sha512 = "lozwklVQHwUXMM1o8BgxEB8F5BB7vkHW4pjAo1Zt5sJ7FOlWhd6DJ4ZxJ2OK0w+gNYkY/ocPMkUV7DTz/uqEEg==";
       };
     };
     "yn-3.1.1" = {
@@ -51447,23 +51537,23 @@ in
   "@angular/cli" = nodeEnv.buildNodePackage {
     name = "_at_angular_slash_cli";
     packageName = "@angular/cli";
-    version = "10.0.8";
+    version = "10.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@angular/cli/-/cli-10.0.8.tgz";
-      sha512 = "unTteffLepsFw7qQulHOLLyLqCpQMOaZo0WO4x6cQGcW2mc0WgwnwBW2JDYMx1U2434t/Q13LqYMPNYWyCGsog==";
+      url = "https://registry.npmjs.org/@angular/cli/-/cli-10.1.0.tgz";
+      sha512 = "sWGEVeQQ5PXKuu517fRFEQQ5qopzoWeW+8qBUTrmJt8FztiL2ASyu412iJse56wyGxZvqwUmtzpti5kWHR9XIw==";
     };
     dependencies = [
-      sources."@angular-devkit/architect-0.1000.8"
-      sources."@angular-devkit/core-10.0.8"
-      sources."@angular-devkit/schematics-10.0.8"
-      sources."@schematics/angular-10.0.8"
-      sources."@schematics/update-0.1000.8"
+      sources."@angular-devkit/architect-0.1001.0"
+      sources."@angular-devkit/core-10.1.0"
+      sources."@angular-devkit/schematics-10.1.0"
+      sources."@schematics/angular-10.1.0"
+      sources."@schematics/update-0.1001.0"
       sources."@types/color-name-1.1.1"
       sources."@yarnpkg/lockfile-1.1.0"
       sources."JSONStream-1.3.5"
       sources."agent-base-4.3.0"
       sources."agentkeepalive-3.5.2"
-      sources."ajv-6.12.3"
+      sources."ajv-6.12.4"
       sources."ansi-colors-4.1.1"
       sources."ansi-escapes-4.3.1"
       sources."ansi-regex-5.0.0"
@@ -51489,12 +51579,12 @@ in
         ];
       })
       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.4.0"
-      sources."cli-width-2.2.1"
+      sources."cli-width-3.0.0"
       sources."clone-1.0.4"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
@@ -51578,7 +51668,7 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
-      sources."inquirer-7.1.0"
+      sources."inquirer-7.3.3"
       sources."ip-1.1.5"
       sources."is-callable-1.2.0"
       sources."is-date-object-1.0.2"
@@ -51594,23 +51684,15 @@ 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.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."jsonc-parser-2.3.0"
       sources."jsonparse-1.3.1"
       sources."jsprim-1.4.1"
       sources."lodash-4.17.20"
-      (sources."log-symbols-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."log-symbols-4.0.0"
       sources."lru-cache-6.0.0"
       sources."magic-string-0.25.7"
       (sources."make-fetch-happen-5.0.2" // {
@@ -51668,8 +51750,8 @@ in
       sources."object.getownpropertydescriptors-2.1.0"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
-      sources."open-7.0.4"
-      sources."ora-4.0.4"
+      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"
@@ -51720,7 +51802,7 @@ in
       sources."rimraf-3.0.2"
       sources."run-async-2.4.1"
       sources."run-queue-1.0.3"
-      sources."rxjs-6.5.5"
+      sources."rxjs-6.6.2"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."semver-7.3.2"
@@ -51756,7 +51838,7 @@ 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" // {
         dependencies = [
@@ -51774,16 +51856,15 @@ in
       sources."typedarray-0.0.6"
       sources."unique-filename-1.1.1"
       sources."unique-slug-2.0.2"
-      (sources."universal-analytics-0.4.20" // {
+      (sources."universal-analytics-0.4.23" // {
         dependencies = [
-          sources."debug-3.2.6"
           sources."uuid-3.4.0"
         ];
       })
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."util-deprecate-1.0.2"
       sources."util-promisify-2.1.0"
-      sources."uuid-8.1.0"
+      sources."uuid-8.3.0"
       sources."validate-npm-package-license-3.0.4"
       sources."validate-npm-package-name-3.0.0"
       sources."verror-1.10.0"
@@ -52117,7 +52198,7 @@ in
         ];
       })
       sources."to-utf8-0.0.1"
-      sources."uglify-js-3.10.2"
+      sources."uglify-js-3.10.3"
       sources."unc-path-regex-0.1.2"
       sources."unique-stream-2.3.1"
       sources."universalify-0.1.2"
@@ -52292,7 +52373,7 @@ in
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-check-0.3.2"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
       sources."w3c-hr-time-1.0.2"
@@ -52355,9 +52436,9 @@ in
       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.5"
+      sources."@types/json-schema-7.0.6"
       sources."@types/json5-0.0.29"
-      sources."@types/node-14.6.0"
+      sources."@types/node-14.6.3"
       sources."@types/parse-json-4.0.0"
       sources."@types/source-list-map-0.1.2"
       sources."@types/tapable-1.0.6"
@@ -52467,7 +52548,7 @@ in
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
       sources."chardet-0.7.0"
@@ -52563,7 +52644,11 @@ in
       sources."error-ex-1.3.2"
       sources."escape-string-regexp-1.0.5"
       sources."eslint-scope-4.0.3"
-      sources."esrecurse-4.2.1"
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
       sources."estraverse-4.3.0"
       sources."events-3.2.0"
       sources."evp_bytestokey-1.0.3"
@@ -52615,7 +52700,7 @@ in
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
       sources."fragment-cache-0.2.1"
@@ -52668,7 +52753,7 @@ in
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
           sources."rxjs-6.6.2"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
       sources."interpret-1.4.0"
@@ -52693,7 +52778,7 @@ in
       sources."isobject-3.0.1"
       sources."js-tokens-4.0.0"
       sources."json-parse-better-errors-1.0.2"
-      sources."json-parse-even-better-errors-2.3.0"
+      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"
@@ -52804,7 +52889,7 @@ in
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
           sources."log-symbols-4.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
       sources."os-browserify-0.3.0"
@@ -53008,7 +53093,7 @@ in
         ];
       })
       sources."upath-1.2.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       (sources."url-0.11.0" // {
         dependencies = [
@@ -53085,10 +53170,10 @@ in
     };
     dependencies = [
       sources."@akryum/winattr-3.0.0"
-      sources."@apollo/federation-0.19.0"
+      sources."@apollo/federation-0.20.0"
       (sources."@apollo/protobufjs-1.0.5" // {
         dependencies = [
-          sources."@types/node-10.17.28"
+          sources."@types/node-10.17.29"
         ];
       })
       sources."@apollographql/apollo-tools-0.4.8"
@@ -53103,16 +53188,17 @@ in
           sources."semver-5.7.1"
         ];
       })
-      (sources."@babel/core-7.11.4" // {
+      (sources."@babel/core-7.11.5" // {
         dependencies = [
-          sources."@babel/generator-7.11.4"
-          sources."@babel/types-7.11.0"
+          sources."@babel/generator-7.11.5"
+          sources."@babel/types-7.11.5"
           sources."semver-5.7.1"
+          sources."source-map-0.6.1"
         ];
       })
-      (sources."@babel/generator-7.11.0" // {
+      (sources."@babel/generator-7.11.4" // {
         dependencies = [
-          sources."@babel/types-7.11.0"
+          sources."@babel/types-7.11.5"
         ];
       })
       sources."@babel/helper-annotate-as-pure-7.10.4"
@@ -53126,7 +53212,7 @@ in
       sources."@babel/helper-create-regexp-features-plugin-7.10.4"
       (sources."@babel/helper-define-map-7.10.5" // {
         dependencies = [
-          sources."@babel/types-7.11.0"
+          sources."@babel/types-7.11.5"
         ];
       })
       sources."@babel/helper-explode-assignable-expression-7.11.4"
@@ -53135,13 +53221,13 @@ in
       sources."@babel/helper-hoist-variables-7.10.4"
       (sources."@babel/helper-member-expression-to-functions-7.11.0" // {
         dependencies = [
-          sources."@babel/types-7.11.0"
+          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.0"
+          sources."@babel/types-7.11.5"
         ];
       })
       sources."@babel/helper-optimise-call-expression-7.10.4"
@@ -53152,19 +53238,19 @@ in
       sources."@babel/helper-simple-access-7.10.4"
       (sources."@babel/helper-skip-transparent-expression-wrappers-7.11.0" // {
         dependencies = [
-          sources."@babel/types-7.11.0"
+          sources."@babel/types-7.11.5"
         ];
       })
       (sources."@babel/helper-split-export-declaration-7.11.0" // {
         dependencies = [
-          sources."@babel/types-7.11.0"
+          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.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"
@@ -53226,16 +53312,16 @@ in
       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-env-7.11.5" // {
         dependencies = [
-          sources."@babel/types-7.11.0"
+          sources."@babel/types-7.11.5"
           sources."semver-5.7.1"
         ];
       })
       sources."@babel/preset-flow-7.10.4"
-      sources."@babel/preset-modules-0.1.3"
+      sources."@babel/preset-modules-0.1.4"
       sources."@babel/preset-typescript-7.10.4"
-      (sources."@babel/register-7.10.5" // {
+      (sources."@babel/register-7.11.5" // {
         dependencies = [
           sources."make-dir-2.1.0"
           sources."pify-4.0.1"
@@ -53244,9 +53330,11 @@ in
       })
       sources."@babel/runtime-7.11.2"
       sources."@babel/template-7.10.4"
-      (sources."@babel/traverse-7.11.0" // {
+      (sources."@babel/traverse-7.11.5" // {
         dependencies = [
-          sources."@babel/types-7.11.0"
+          sources."@babel/generator-7.11.5"
+          sources."@babel/types-7.11.5"
+          sources."source-map-0.6.1"
         ];
       })
       sources."@babel/types-7.10.4"
@@ -53265,7 +53353,7 @@ in
           (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"
@@ -53274,16 +53362,17 @@ in
           sources."strip-ansi-5.2.0"
         ];
       })
-      (sources."@oclif/command-1.7.0" // {
+      (sources."@oclif/command-1.8.0" // {
         dependencies = [
           sources."@oclif/plugin-help-3.2.0"
-          sources."semver-5.7.1"
+          sources."semver-7.3.2"
         ];
       })
-      (sources."@oclif/config-1.16.0" // {
+      (sources."@oclif/config-1.17.0" // {
         dependencies = [
           sources."globby-11.0.1"
           sources."is-wsl-2.2.0"
+          sources."tslib-2.0.1"
         ];
       })
       (sources."@oclif/errors-1.3.3" // {
@@ -53358,7 +53447,7 @@ in
       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.9"
+      sources."@types/express-serve-static-core-4.17.12"
       sources."@types/fs-capacitor-2.0.0"
       sources."@types/glob-7.1.3"
       sources."@types/graphql-upload-8.0.3"
@@ -53378,7 +53467,7 @@ in
       sources."@types/long-4.0.1"
       sources."@types/mime-2.0.3"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.6.0"
+      sources."@types/node-14.6.3"
       (sources."@types/node-fetch-2.5.7" // {
         dependencies = [
           sources."form-data-3.0.0"
@@ -53399,22 +53488,22 @@ in
       })
       sources."@vue/cli-ui-addon-webpack-4.5.4"
       sources."@vue/cli-ui-addon-widgets-4.5.4"
-      (sources."@vue/compiler-core-3.0.0-rc.9" // {
+      (sources."@vue/compiler-core-3.0.0-rc.10" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
       })
-      sources."@vue/compiler-dom-3.0.0-rc.9"
-      (sources."@vue/compiler-sfc-3.0.0-rc.9" // {
+      sources."@vue/compiler-dom-3.0.0-rc.10"
+      (sources."@vue/compiler-sfc-3.0.0-rc.10" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
       })
-      sources."@vue/compiler-ssr-3.0.0-rc.9"
-      sources."@vue/reactivity-3.0.0-rc.9"
-      sources."@vue/runtime-core-3.0.0-rc.9"
-      sources."@vue/runtime-dom-3.0.0-rc.9"
-      sources."@vue/shared-3.0.0-rc.9"
+      sources."@vue/compiler-ssr-3.0.0-rc.10"
+      sources."@vue/reactivity-3.0.0-rc.10"
+      sources."@vue/runtime-core-3.0.0-rc.10"
+      sources."@vue/runtime-dom-3.0.0-rc.10"
+      sources."@vue/shared-3.0.0-rc.10"
       sources."@wry/context-0.4.4"
       sources."@wry/equality-0.1.11"
       sources."abbrev-1.1.1"
@@ -53458,9 +53547,10 @@ in
           sources."to-regex-range-2.1.1"
         ];
       })
-      (sources."apollo-2.30.2" // {
+      (sources."apollo-2.30.3" // {
         dependencies = [
-          sources."graphql-tag-2.10.4"
+          sources."apollo-graphql-0.6.0"
+          sources."mkdirp-1.0.4"
           sources."strip-ansi-5.2.0"
         ];
       })
@@ -53468,20 +53558,17 @@ in
       sources."apollo-cache-control-0.11.1"
       sources."apollo-cache-inmemory-1.6.6"
       sources."apollo-client-2.6.10"
-      (sources."apollo-codegen-core-0.37.8" // {
+      (sources."apollo-codegen-core-0.37.9" // {
         dependencies = [
-          (sources."recast-0.19.1" // {
-            dependencies = [
-              sources."ast-types-0.13.3"
-            ];
-          })
+          sources."recast-0.20.3"
           sources."source-map-0.6.1"
+          sources."tslib-2.0.1"
         ];
       })
-      sources."apollo-codegen-flow-0.35.8"
-      sources."apollo-codegen-scala-0.36.8"
-      sources."apollo-codegen-swift-0.37.8"
-      sources."apollo-codegen-typescript-0.37.8"
+      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 = [
@@ -53491,7 +53578,11 @@ in
       sources."apollo-engine-reporting-protobuf-0.5.2"
       sources."apollo-env-0.6.5"
       sources."apollo-graphql-0.5.0"
-      sources."apollo-language-server-1.23.3"
+      (sources."apollo-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"
@@ -53501,13 +53592,13 @@ in
       sources."apollo-link-state-0.4.2"
       sources."apollo-link-ws-1.0.20"
       sources."apollo-server-caching-0.5.2"
-      sources."apollo-server-core-2.16.1"
+      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.16.1"
+      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.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" // {
@@ -53528,7 +53619,7 @@ in
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
       sources."assign-symbols-1.0.0"
-      (sources."ast-types-0.13.4" // {
+      (sources."ast-types-0.14.1" // {
         dependencies = [
           sources."tslib-2.0.1"
         ];
@@ -53558,7 +53649,7 @@ in
       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 = [
@@ -53579,14 +53670,14 @@ in
           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-7.0.3"
           sources."has-flag-4.0.0"
           sources."is-fullwidth-code-point-2.0.0"
           sources."strip-ansi-5.2.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
           sources."term-size-2.2.0"
           sources."type-fest-0.8.1"
         ];
@@ -53620,7 +53711,7 @@ in
       sources."callsites-2.0.0"
       sources."camel-case-4.1.1"
       sources."camelcase-4.1.0"
-      sources."caniuse-lite-1.0.30001118"
+      sources."caniuse-lite-1.0.30001123"
       sources."capital-case-1.0.3"
       sources."capture-stack-trace-1.0.1"
       sources."cardinal-2.1.1"
@@ -53674,11 +53765,11 @@ in
           sources."strip-ansi-3.0.1"
         ];
       })
-      (sources."cli-ux-5.4.9" // {
+      (sources."cli-ux-5.4.10" // {
         dependencies = [
           sources."ansi-escapes-4.3.1"
           sources."ansi-styles-4.2.1"
-          sources."chalk-3.0.0"
+          sources."chalk-4.1.0"
           sources."clean-stack-3.0.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
@@ -53687,9 +53778,9 @@ in
           sources."fs-extra-9.0.1"
           sources."has-flag-4.0.0"
           sources."is-wsl-2.2.0"
-          sources."semver-5.7.1"
-          sources."strip-ansi-5.2.0"
-          sources."supports-color-7.1.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"
         ];
@@ -53828,7 +53919,7 @@ in
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
       sources."ejs-2.7.4"
-      sources."electron-to-chromium-1.3.549"
+      sources."electron-to-chromium-1.3.560"
       sources."elegant-spinner-1.0.1"
       sources."emoji-regex-8.0.0"
       sources."emojis-list-3.0.0"
@@ -53919,7 +54010,7 @@ in
       })
       sources."find-up-3.0.0"
       sources."fkill-6.2.0"
-      sources."flow-parser-0.132.0"
+      sources."flow-parser-0.133.0"
       sources."for-in-1.0.2"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
@@ -53959,7 +54050,7 @@ in
         ];
       })
       sources."git-up-4.0.2"
-      sources."git-url-parse-11.1.2"
+      sources."git-url-parse-11.1.3"
       sources."glob-7.1.5"
       sources."glob-parent-5.1.1"
       sources."glob-to-regexp-0.3.0"
@@ -54088,7 +54179,7 @@ in
           sources."mimic-fn-2.1.0"
           sources."onetime-5.1.2"
           sources."restore-cursor-3.1.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
           sources."type-fest-0.11.0"
         ];
       })
@@ -54169,7 +54260,7 @@ in
       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.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"
@@ -54791,7 +54882,7 @@ in
       })
       sources."upper-case-2.0.1"
       sources."upper-case-first-2.0.1"
-      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."url-to-options-1.0.1"
@@ -54832,7 +54923,7 @@ in
       (sources."vue-codemod-0.0.4" // {
         dependencies = [
           sources."globby-10.0.2"
-          sources."vue-3.0.0-rc.9"
+          sources."vue-3.0.0-rc.10"
         ];
       })
       sources."watch-1.0.2"
@@ -54876,7 +54967,7 @@ in
           sources."camelcase-5.3.1"
         ];
       })
-      sources."yarn-1.22.4"
+      sources."yarn-1.22.5"
       sources."yauzl-2.10.0"
       sources."yn-3.1.1"
       sources."zen-observable-0.8.15"
@@ -55017,12 +55108,12 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.10.4"
-      sources."@babel/generator-7.11.4"
+      sources."@babel/generator-7.11.5"
       sources."@babel/helper-validator-identifier-7.10.4"
       sources."@babel/highlight-7.10.4"
-      sources."@babel/parser-7.11.4"
+      sources."@babel/parser-7.11.5"
       sources."@babel/template-7.10.4"
-      sources."@babel/types-7.11.0"
+      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"
@@ -55048,7 +55139,7 @@ in
       sources."js-tokens-4.0.0"
       sources."jsesc-2.5.2"
       sources."lodash-4.17.20"
-      sources."source-map-0.5.7"
+      sources."source-map-0.6.1"
       sources."supports-color-5.5.0"
       sources."to-fast-properties-2.0.0"
     ];
@@ -55102,16 +55193,8 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.10.4"
-      (sources."@babel/core-7.11.4" // {
-        dependencies = [
-          sources."source-map-0.5.7"
-        ];
-      })
-      (sources."@babel/generator-7.11.4" // {
-        dependencies = [
-          sources."source-map-0.5.7"
-        ];
-      })
+      sources."@babel/core-7.11.5"
+      sources."@babel/generator-7.11.5"
       sources."@babel/helper-function-name-7.10.4"
       sources."@babel/helper-get-function-arity-7.10.4"
       sources."@babel/helper-member-expression-to-functions-7.11.0"
@@ -55124,10 +55207,10 @@ in
       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.4"
+      sources."@babel/parser-7.11.5"
       sources."@babel/template-7.10.4"
-      sources."@babel/traverse-7.11.0"
-      sources."@babel/types-7.11.0"
+      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"
@@ -55228,7 +55311,7 @@ in
     dependencies = [
       sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.6.0"
+      sources."@types/node-14.6.3"
       sources."balanced-match-1.0.0"
       sources."brace-expansion-1.1.11"
       sources."chromium-pickle-js-0.2.0"
@@ -55363,7 +55446,7 @@ in
       sources."turndown-4.0.2"
       sources."tweetnacl-0.14.5"
       sources."type-check-0.3.2"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urijs-1.19.2"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
@@ -55768,7 +55851,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.15"
+      sources."@types/node-13.13.16"
       sources."addr-to-ip-port-1.5.1"
       sources."airplay-js-0.2.16"
       sources."ajv-6.12.4"
@@ -55829,7 +55912,7 @@ in
       sources."co-3.1.0"
       sources."codepage-1.4.0"
       sources."combined-stream-1.0.8"
-      sources."commander-6.0.0"
+      sources."commander-6.1.0"
       sources."compact2string-1.4.1"
       sources."concat-map-0.0.1"
       (sources."concat-stream-2.0.0" // {
@@ -56128,7 +56211,7 @@ in
       sources."ultron-1.1.1"
       sources."underscore-1.6.0"
       sources."uniq-1.0.1"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."utfx-1.0.1"
       sources."util-deprecate-1.0.2"
       sources."utp-0.0.7"
@@ -56564,7 +56647,7 @@ in
       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."@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"
@@ -56632,7 +56715,7 @@ in
       sources."callsites-3.1.0"
       sources."camelcase-2.1.1"
       sources."camelcase-keys-2.1.0"
-      sources."caniuse-lite-1.0.30001118"
+      sources."caniuse-lite-1.0.30001123"
       sources."capture-stack-trace-1.0.1"
       sources."ccount-1.0.5"
       sources."chalk-2.4.2"
@@ -56729,7 +56812,7 @@ in
       sources."domutils-1.7.0"
       sources."dot-prop-5.2.0"
       sources."duplexer3-0.1.4"
-      sources."electron-to-chromium-1.3.549"
+      sources."electron-to-chromium-1.3.560"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."entities-1.1.2"
@@ -56751,7 +56834,11 @@ in
           sources."estraverse-5.2.0"
         ];
       })
-      sources."esrecurse-4.2.1"
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
       (sources."execa-0.7.0" // {
@@ -56915,7 +57002,7 @@ in
           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"
@@ -57441,7 +57528,7 @@ in
       })
       sources."unzip-response-2.0.1"
       sources."update-notifier-2.5.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       sources."url-parse-lax-1.0.0"
       sources."use-3.1.1"
@@ -57559,10 +57646,10 @@ in
   coc-rust-analyzer = nodeEnv.buildNodePackage {
     name = "coc-rust-analyzer";
     packageName = "coc-rust-analyzer";
-    version = "0.7.15";
+    version = "0.7.16";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-rust-analyzer/-/coc-rust-analyzer-0.7.15.tgz";
-      sha512 = "PYnLYoY2w0dsco/EmjjnVodQKsKOgbtDHdokjGphhK66J733ctg4Jww5I8WXAAuCkfUpQmALXdBvNg45PL7C9g==";
+      url = "https://registry.npmjs.org/coc-rust-analyzer/-/coc-rust-analyzer-0.7.16.tgz";
+      sha512 = "nYF/RznvKMwVXrW5z4k6Wrw13T6ogdF4TraAMp0P4upAHKhJkkA2aWwzCPiyq9wdadsp9/njWvmMTt5klfAI+g==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -57636,8 +57723,16 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.10.4"
-      sources."@babel/core-7.11.4"
-      sources."@babel/generator-7.11.4"
+      (sources."@babel/core-7.11.5" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      (sources."@babel/generator-7.11.5" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
       sources."@babel/helper-function-name-7.10.4"
       sources."@babel/helper-get-function-arity-7.10.4"
       sources."@babel/helper-member-expression-to-functions-7.11.0"
@@ -57650,15 +57745,15 @@ in
       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.4"
+      sources."@babel/parser-7.11.5"
       sources."@babel/template-7.10.4"
-      sources."@babel/traverse-7.11.0"
-      sources."@babel/types-7.11.0"
+      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.3"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.6.0"
+      sources."@types/node-14.6.3"
       sources."@types/unist-2.0.3"
       sources."@types/vfile-3.0.2"
       sources."@types/vfile-message-2.0.0"
@@ -57709,7 +57804,7 @@ in
       sources."callsites-2.0.0"
       sources."camelcase-4.1.0"
       sources."camelcase-keys-4.2.0"
-      sources."caniuse-lite-1.0.30001118"
+      sources."caniuse-lite-1.0.30001123"
       sources."ccount-1.0.5"
       sources."chalk-2.4.2"
       sources."character-entities-1.2.4"
@@ -57769,7 +57864,7 @@ in
       sources."domhandler-2.4.2"
       sources."domutils-1.7.0"
       sources."dot-prop-5.2.0"
-      sources."electron-to-chromium-1.3.549"
+      sources."electron-to-chromium-1.3.560"
       sources."emoji-regex-8.0.0"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
@@ -58164,7 +58259,7 @@ in
           sources."has-values-0.1.4"
         ];
       })
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       sources."use-3.1.1"
       sources."util-deprecate-1.0.2"
@@ -58345,6 +58440,13 @@ in
       sources."@babel/helper-validator-identifier-7.10.4"
       sources."@babel/highlight-7.10.4"
       sources."@emmetio/extract-abbreviation-0.1.6"
+      (sources."@eslint/eslintrc-0.1.3" // {
+        dependencies = [
+          sources."debug-4.2.0"
+          sources."ignore-4.0.6"
+          sources."strip-json-comments-3.1.1"
+        ];
+      })
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       (sources."@nodelib/fs.scandir-2.1.3" // {
         dependencies = [
@@ -58378,10 +58480,10 @@ in
       sources."@types/color-name-1.1.1"
       sources."@types/eslint-visitor-keys-1.0.0"
       sources."@types/glob-7.1.3"
-      sources."@types/json-schema-7.0.5"
+      sources."@types/json-schema-7.0.6"
       sources."@types/minimatch-3.0.3"
       sources."@types/minimist-1.2.0"
-      sources."@types/node-14.6.0"
+      sources."@types/node-14.6.3"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/unist-2.0.3"
       sources."@types/vfile-3.0.2"
@@ -58507,7 +58609,7 @@ 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-3.0.0"
       sources."cliui-4.1.0"
@@ -58606,7 +58708,7 @@ in
       sources."enquirer-2.3.6"
       sources."error-ex-1.3.2"
       sources."escape-string-regexp-1.0.5"
-      (sources."eslint-7.7.0" // {
+      (sources."eslint-7.8.1" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."ansi-styles-4.2.1"
@@ -58623,11 +58725,11 @@ in
           sources."shebang-regex-3.0.0"
           sources."strip-ansi-6.0.0"
           sources."strip-json-comments-3.1.1"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
           sources."which-2.0.2"
         ];
       })
-      (sources."eslint-plugin-vue-7.0.0-beta.2" // {
+      (sources."eslint-plugin-vue-7.0.0-beta.3" // {
         dependencies = [
           sources."semver-7.3.2"
         ];
@@ -58642,7 +58744,11 @@ in
           sources."estraverse-5.2.0"
         ];
       })
-      sources."esrecurse-4.2.1"
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
       sources."execa-0.7.0"
@@ -58785,7 +58891,7 @@ in
           sources."is-fullwidth-code-point-3.0.0"
           sources."string-width-4.2.0"
           sources."strip-ansi-6.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
       sources."invert-kv-2.0.0"
@@ -58838,7 +58944,7 @@ in
       sources."js-yaml-3.14.0"
       sources."json-buffer-3.0.0"
       sources."json-parse-better-errors-1.0.2"
-      sources."json-parse-even-better-errors-2.3.0"
+      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"
@@ -59294,7 +59400,7 @@ in
       })
       sources."untildify-2.1.0"
       sources."update-notifier-3.0.1"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       sources."url-parse-lax-3.0.0"
       sources."use-3.1.1"
@@ -59436,7 +59542,7 @@ in
       sources."prettier-2.0.5"
       sources."request-light-0.2.5"
       sources."sprintf-js-1.0.3"
-      sources."vscode-json-languageservice-3.8.1"
+      sources."vscode-json-languageservice-3.8.3"
       sources."vscode-jsonrpc-4.0.0"
       (sources."vscode-languageserver-5.2.1" // {
         dependencies = [
@@ -59453,7 +59559,7 @@ in
       sources."vscode-nls-4.1.2"
       sources."vscode-uri-2.1.2"
       sources."yaml-ast-parser-custom-tags-0.0.43"
-      sources."yaml-language-server-0.10.0"
+      sources."yaml-language-server-0.10.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -59569,7 +59675,7 @@ in
       sources."diagnostics-1.1.1"
       sources."enabled-1.0.2"
       sources."env-variable-0.0.6"
-      sources."eventemitter3-4.0.6"
+      sources."eventemitter3-4.0.7"
       sources."fast-safe-stringify-2.0.7"
       sources."fecha-4.2.0"
       sources."follow-redirects-1.13.0"
@@ -59688,7 +59794,7 @@ in
       sources."chalk-3.0.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-2.1.0"
       sources."cli-width-2.2.1"
       sources."clone-response-1.0.2"
@@ -59868,7 +59974,7 @@ in
       sources."isstream-0.1.2"
       sources."jsbn-0.1.1"
       sources."json-buffer-3.0.0"
-      sources."json-parse-even-better-errors-2.3.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"
@@ -59927,7 +60033,7 @@ in
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
-      sources."open-7.2.0"
+      sources."open-7.2.1"
       sources."os-homedir-1.0.2"
       sources."os-name-3.1.0"
       sources."os-tmpdir-1.0.2"
@@ -60042,7 +60148,7 @@ in
       sources."strip-eof-1.0.0"
       sources."strip-final-newline-2.0.0"
       sources."strip-json-comments-2.0.1"
-      sources."supports-color-7.1.0"
+      sources."supports-color-7.2.0"
       sources."systeminformation-4.27.3"
       sources."term-size-2.2.0"
       sources."through-2.3.8"
@@ -60057,12 +60163,12 @@ in
       sources."type-fest-0.8.1"
       sources."type-is-1.6.18"
       sources."typedarray-to-buffer-3.1.5"
-      sources."underscore-1.10.2"
+      sources."underscore-1.11.0"
       sources."unique-string-2.0.0"
       sources."universalify-1.0.0"
       sources."unpipe-1.0.0"
       sources."update-notifier-4.1.1"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."url-parse-lax-3.0.0"
       sources."utils-merge-1.0.1"
       sources."uuid-3.4.0"
@@ -60130,7 +60236,7 @@ in
       sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.3"
       sources."@types/minimist-1.2.0"
-      sources."@types/node-14.6.0"
+      sources."@types/node-14.6.3"
       sources."@types/normalize-package-data-2.4.0"
       sources."aggregate-error-3.1.0"
       sources."ansi-styles-3.2.1"
@@ -60185,7 +60291,7 @@ in
       sources."concat-map-0.0.1"
       sources."copy-descriptor-0.1.1"
       sources."cp-file-7.0.0"
-      sources."cpy-8.1.0"
+      sources."cpy-8.1.1"
       sources."debug-2.6.9"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.0" // {
@@ -60284,7 +60390,7 @@ in
       sources."isarray-1.0.0"
       sources."isobject-3.0.1"
       sources."js-tokens-4.0.0"
-      sources."json-parse-even-better-errors-2.3.0"
+      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"
@@ -60498,7 +60604,7 @@ in
       sources."@cycle/run-3.4.0"
       sources."@cycle/time-0.10.1"
       sources."@types/cookiejar-2.1.1"
-      sources."@types/node-14.6.0"
+      sources."@types/node-14.6.3"
       sources."@types/superagent-3.8.2"
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-2.1.1"
@@ -60735,7 +60841,7 @@ in
           sources."ansi-regex-4.1.0"
         ];
       })
-      sources."supports-color-7.1.0"
+      sources."supports-color-7.2.0"
       sources."tar-2.2.2"
       (sources."tar-pack-3.4.1" // {
         dependencies = [
@@ -61175,7 +61281,7 @@ in
       sources."multicast-dns-7.2.2"
       sources."multistream-2.1.1"
       sources."mute-stream-0.0.8"
-      sources."mutexify-1.3.0"
+      sources."mutexify-1.3.1"
       sources."nan-2.14.1"
       sources."nanoassert-1.1.0"
       sources."nanobus-4.4.0"
@@ -61423,7 +61529,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-1.0.0"
       sources."use-3.1.1"
@@ -61533,7 +61639,7 @@ in
       sources."assert-plus-1.0.0"
       sources."async-2.6.3"
       sources."asynckit-0.4.0"
-      sources."aws-sdk-2.740.0"
+      sources."aws-sdk-2.745.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.10.1"
       sources."base64-js-1.3.1"
@@ -61549,7 +61655,7 @@ in
       sources."delay-4.4.0"
       sources."delayed-stream-1.0.0"
       sources."ecc-jsbn-0.1.2"
-      sources."eventemitter3-4.0.6"
+      sources."eventemitter3-4.0.7"
       sources."events-1.1.1"
       sources."extend-3.0.2"
       sources."extsprintf-1.3.0"
@@ -61626,7 +61732,7 @@ in
       })
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      (sources."uri-js-4.2.2" // {
+      (sources."uri-js-4.4.0" // {
         dependencies = [
           sources."punycode-2.1.1"
         ];
@@ -61677,11 +61783,11 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.10.4"
-      sources."@babel/core-7.11.4"
-      sources."@babel/generator-7.11.4"
+      sources."@babel/core-7.11.5"
+      sources."@babel/generator-7.11.5"
       sources."@babel/helper-annotate-as-pure-7.10.4"
       sources."@babel/helper-builder-react-jsx-7.10.4"
-      sources."@babel/helper-builder-react-jsx-experimental-7.10.5"
+      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"
@@ -61695,7 +61801,7 @@ in
       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.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"
@@ -61703,8 +61809,8 @@ in
       sources."@babel/plugin-transform-parameters-7.10.5"
       sources."@babel/plugin-transform-react-jsx-7.10.4"
       sources."@babel/template-7.10.4"
-      sources."@babel/traverse-7.11.0"
-      sources."@babel/types-7.11.0"
+      sources."@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"
@@ -61712,7 +61818,7 @@ in
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/keyv-3.1.1"
       sources."@types/minimist-1.2.0"
-      sources."@types/node-14.6.0"
+      sources."@types/node-14.6.3"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/responselike-1.0.0"
       sources."@types/yoga-layout-1.9.2"
@@ -61748,7 +61854,7 @@ in
       })
       sources."chalk-2.4.2"
       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-truncate-2.1.0"
       sources."clipboardy-2.3.0"
@@ -61797,7 +61903,7 @@ in
       sources."get-stream-4.1.0"
       sources."glob-7.1.6"
       sources."globals-11.12.0"
-      sources."got-11.5.2"
+      sources."got-11.6.0"
       sources."hard-rejection-2.1.0"
       sources."has-flag-3.0.0"
       sources."hosted-git-info-2.8.8"
@@ -61807,14 +61913,14 @@ in
       sources."indent-string-4.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      (sources."ink-3.0.4" // {
+      (sources."ink-3.0.5" // {
         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.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
       (sources."ink-text-input-4.0.0" // {
@@ -61824,7 +61930,7 @@ in
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
           sources."type-fest-0.15.1"
         ];
       })
@@ -61840,7 +61946,7 @@ in
       sources."js-tokens-4.0.0"
       sources."jsesc-2.5.2"
       sources."json-buffer-3.0.1"
-      sources."json-parse-even-better-errors-2.3.0"
+      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"
@@ -61859,8 +61965,8 @@ in
       })
       sources."map-age-cleaner-0.1.3"
       sources."map-obj-4.1.0"
-      sources."mem-6.1.0"
-      (sources."meow-7.1.0" // {
+      sources."mem-6.1.1"
+      (sources."meow-7.1.1" // {
         dependencies = [
           sources."type-fest-0.13.1"
         ];
@@ -61948,7 +62054,7 @@ in
           sources."color-name-1.1.4"
         ];
       })
-      sources."source-map-0.5.7"
+      sources."source-map-0.6.1"
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
@@ -61974,7 +62080,7 @@ in
       sources."trim-newlines-3.0.0"
       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"
@@ -62038,10 +62144,10 @@ in
   eslint = nodeEnv.buildNodePackage {
     name = "eslint";
     packageName = "eslint";
-    version = "7.7.0";
+    version = "7.8.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/eslint/-/eslint-7.7.0.tgz";
-      sha512 = "1KUxLzos0ZVsyL81PnRN335nDtQ8/vZUD6uMtWbF+5zDtjKcsklIi78XoE0MVL93QvWTu+E5y44VyyCsOMBrIg==";
+      url = "https://registry.npmjs.org/eslint/-/eslint-7.8.1.tgz";
+      sha512 = "/2rX2pfhyUG0y+A123d0ccXtMm7DV7sH1m3lk9nk2DZ2LReq39FXHueR9xZwshE5MdfSf0xunSaMWRqyIA6M1w==";
     };
     dependencies = [
       sources."@babel/code-frame-7.10.4"
@@ -62051,6 +62157,7 @@ in
           sources."chalk-2.4.2"
         ];
       })
+      sources."@eslint/eslintrc-0.1.3"
       sources."@types/color-name-1.1.1"
       sources."acorn-7.4.0"
       sources."acorn-jsx-5.2.0"
@@ -62069,7 +62176,7 @@ in
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
       sources."color-convert-1.9.3"
@@ -62092,7 +62199,11 @@ in
           sources."estraverse-5.2.0"
         ];
       })
-      sources."esrecurse-4.2.1"
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
       sources."fast-deep-equal-3.1.3"
@@ -62156,7 +62267,7 @@ in
       sources."text-table-0.2.0"
       sources."type-check-0.4.0"
       sources."type-fest-0.8.1"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."v8-compile-cache-2.1.1"
       sources."which-2.0.2"
       sources."word-wrap-1.2.3"
@@ -62189,6 +62300,7 @@ in
           sources."chalk-2.4.2"
         ];
       })
+      sources."@eslint/eslintrc-0.1.3"
       sources."@types/color-name-1.1.1"
       sources."acorn-7.4.0"
       sources."acorn-jsx-5.2.0"
@@ -62207,7 +62319,7 @@ in
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
       sources."color-convert-1.9.3"
@@ -62221,7 +62333,7 @@ in
       sources."emoji-regex-7.0.3"
       sources."enquirer-2.3.6"
       sources."escape-string-regexp-1.0.5"
-      sources."eslint-7.7.0"
+      sources."eslint-7.8.1"
       sources."eslint-scope-5.1.0"
       sources."eslint-utils-2.1.0"
       sources."eslint-visitor-keys-1.3.0"
@@ -62232,7 +62344,11 @@ in
           sources."estraverse-5.2.0"
         ];
       })
-      sources."esrecurse-4.2.1"
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
       sources."fast-deep-equal-3.1.3"
@@ -62297,7 +62413,7 @@ in
       sources."text-table-0.2.0"
       sources."type-check-0.4.0"
       sources."type-fest-0.8.1"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."v8-compile-cache-2.1.1"
       sources."which-2.0.2"
       sources."word-wrap-1.2.3"
@@ -62477,7 +62593,7 @@ in
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."typedarray-0.0.6"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."validate-npm-package-license-3.0.4"
@@ -62580,7 +62696,7 @@ in
       sources."is-stream-2.0.0"
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
-      sources."json-parse-even-better-errors-2.3.0"
+      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"
@@ -62664,7 +62780,7 @@ in
       sources."strip-eof-1.0.0"
       sources."strip-final-newline-2.0.0"
       sources."strip-indent-3.0.0"
-      sources."supports-color-7.1.0"
+      sources."supports-color-7.2.0"
       (sources."taskkill-3.1.0" // {
         dependencies = [
           sources."execa-3.4.0"
@@ -63271,7 +63387,7 @@ in
       sources."separator-escape-0.0.0"
       sources."sha.js-2.4.5"
       sources."smart-buffer-4.1.0"
-      sources."socks-2.4.1"
+      sources."socks-2.4.2"
       sources."sodium-browserify-1.3.0"
       (sources."sodium-browserify-tweetnacl-0.2.6" // {
         dependencies = [
@@ -63406,7 +63522,7 @@ in
       sources."chalk-4.1.0"
       sources."chardet-0.7.0"
       sources."ci-info-2.0.0"
-      sources."cli-boxes-2.2.0"
+      sources."cli-boxes-2.2.1"
       sources."cli-cursor-3.1.0"
       sources."cli-spinners-2.4.0"
       sources."cli-width-3.0.0"
@@ -63480,7 +63596,7 @@ in
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
       sources."json-buffer-3.0.0"
-      sources."json-parse-even-better-errors-2.3.0"
+      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"
@@ -63501,7 +63617,7 @@ in
         ];
       })
       sources."map-obj-4.1.0"
-      (sources."meow-7.1.0" // {
+      (sources."meow-7.1.1" // {
         dependencies = [
           sources."type-fest-0.13.1"
         ];
@@ -63589,7 +63705,7 @@ in
       sources."strip-final-newline-2.0.0"
       sources."strip-indent-3.0.0"
       sources."strip-json-comments-2.0.1"
-      sources."supports-color-7.1.0"
+      sources."supports-color-7.2.0"
       sources."term-size-2.2.0"
       sources."through-2.3.8"
       sources."tmp-0.0.33"
@@ -63604,7 +63720,7 @@ in
           sources."chalk-3.0.0"
         ];
       })
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."url-parse-lax-3.0.0"
       sources."validate-npm-package-license-3.0.4"
       sources."wcwidth-1.0.1"
@@ -63648,34 +63764,35 @@ in
         ];
       })
       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-tools/delegate-6.1.0"
-      (sources."@graphql-tools/graphql-file-loader-6.1.0" // {
+      sources."@graphql-tools/delegate-6.2.0"
+      (sources."@graphql-tools/graphql-file-loader-6.2.0" // {
         dependencies = [
           sources."fs-extra-9.0.1"
         ];
       })
-      (sources."@graphql-tools/import-6.1.0" // {
+      (sources."@graphql-tools/import-6.2.0" // {
         dependencies = [
           sources."fs-extra-9.0.1"
         ];
       })
-      (sources."@graphql-tools/json-file-loader-6.1.0" // {
+      (sources."@graphql-tools/json-file-loader-6.2.0" // {
         dependencies = [
           sources."fs-extra-9.0.1"
         ];
       })
-      sources."@graphql-tools/load-6.1.0"
-      sources."@graphql-tools/merge-6.1.0"
-      sources."@graphql-tools/schema-6.1.0"
-      (sources."@graphql-tools/url-loader-6.1.0" // {
+      sources."@graphql-tools/load-6.2.0"
+      sources."@graphql-tools/merge-6.2.0"
+      sources."@graphql-tools/schema-6.2.0"
+      (sources."@graphql-tools/url-loader-6.2.0" // {
         dependencies = [
           sources."cross-fetch-3.0.5"
         ];
       })
-      sources."@graphql-tools/utils-6.1.0"
-      sources."@graphql-tools/wrap-6.1.0"
+      sources."@graphql-tools/utils-6.2.0"
+      sources."@graphql-tools/wrap-6.2.0"
       sources."@kwsites/exec-p-0.4.0"
       sources."@nodelib/fs.scandir-2.1.3"
       sources."@nodelib/fs.stat-2.0.3"
@@ -63683,7 +63800,7 @@ in
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@types/color-name-1.1.1"
-      sources."@types/node-14.6.0"
+      sources."@types/node-14.6.3"
       sources."@types/parse-json-4.0.0"
       sources."@types/websocket-1.0.1"
       sources."aggregate-error-3.1.0"
@@ -63721,6 +63838,7 @@ 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.2.0"
@@ -63766,6 +63884,7 @@ in
       sources."cross-spawn-6.0.5"
       sources."d-1.0.1"
       sources."dashdash-1.14.1"
+      sources."dataloader-2.0.0"
       sources."debug-4.2.0"
       sources."decamelize-1.2.0"
       sources."decompress-response-3.3.0"
@@ -63904,7 +64023,7 @@ 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.3.0"
+      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"
@@ -63948,7 +64067,6 @@ in
       sources."minimist-1.2.5"
       sources."ms-2.1.2"
       sources."mute-stream-0.0.8"
-      sources."nan-2.14.1"
       sources."next-tick-1.0.0"
       sources."nice-try-1.0.5"
       (sources."no-case-3.0.3" // {
@@ -63958,14 +64076,15 @@ 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.3"
-      sources."oas-resolver-2.4.3"
+      sources."oas-linter-3.2.0"
+      sources."oas-resolver-2.4.4"
       sources."oas-schema-walker-1.1.5"
       sources."oas-validator-3.4.0"
       sources."oauth-sign-0.9.0"
@@ -64027,7 +64146,7 @@ in
       sources."punycode-2.1.1"
       sources."qs-6.5.2"
       sources."rc-1.2.8"
-      sources."reftools-1.1.5"
+      sources."reftools-1.1.6"
       sources."regenerator-runtime-0.13.7"
       sources."regexp.prototype.flags-1.3.0"
       sources."registry-auth-token-4.2.0"
@@ -64078,7 +64197,7 @@ in
       sources."strip-eof-1.0.0"
       sources."strip-json-comments-2.0.1"
       sources."subscriptions-transport-ws-0.9.18"
-      sources."supports-color-7.1.0"
+      sources."supports-color-7.2.0"
       (sources."swagger2openapi-5.4.0" // {
         dependencies = [
           sources."ansi-regex-3.0.0"
@@ -64102,13 +64221,14 @@ in
       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.31" // {
+      (sources."websocket-1.0.32" // {
         dependencies = [
           sources."debug-2.6.9"
           sources."ms-2.0.0"
@@ -64476,7 +64596,7 @@ in
         dependencies = [
           sources."ansi-styles-4.2.1"
           sources."chalk-4.1.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
       sources."memory-streams-0.1.3"
@@ -64495,7 +64615,7 @@ 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.27.3"
@@ -65367,7 +65487,7 @@ in
       sources."param-case-2.1.1"
       sources."relateurl-0.2.7"
       sources."source-map-0.6.1"
-      sources."uglify-js-3.10.2"
+      sources."uglify-js-3.10.3"
       sources."upper-case-1.1.3"
     ];
     buildInputs = globalBuildInputs;
@@ -65455,11 +65575,11 @@ in
       sources."safer-buffer-2.1.2"
       sources."sshpk-1.16.1"
       sources."strip-json-comments-3.1.0"
-      sources."supports-color-7.1.0"
+      sources."supports-color-7.2.0"
       sources."tough-cookie-2.5.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
       sources."wrappy-1.0.2"
@@ -65490,7 +65610,7 @@ in
       sources."corser-2.0.1"
       sources."debug-3.2.6"
       sources."ecstatic-3.3.2"
-      sources."eventemitter3-4.0.6"
+      sources."eventemitter3-4.0.7"
       sources."follow-redirects-1.13.0"
       sources."he-1.2.0"
       sources."http-proxy-1.18.1"
@@ -65499,7 +65619,7 @@ in
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
       sources."ms-2.1.2"
-      sources."opener-1.5.1"
+      sources."opener-1.5.2"
       sources."portfinder-1.0.28"
       sources."qs-6.9.4"
       sources."requires-port-1.0.0"
@@ -65691,7 +65811,7 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."jquery-3.5.1"
-      sources."jquery.terminal-2.18.2"
+      sources."jquery.terminal-2.18.3"
       sources."jsonfile-2.4.0"
       sources."keyboardevent-key-polyfill-1.1.0"
       sources."line-reader-0.4.0"
@@ -65927,7 +66047,7 @@ in
       })
       sources."once-1.4.0"
       sources."onetime-2.0.1"
-      sources."open-7.2.0"
+      sources."open-7.2.1"
       sources."optionator-0.8.3"
       sources."os-name-3.1.0"
       sources."os-tmpdir-1.0.2"
@@ -66002,7 +66122,7 @@ in
           sources."debug-3.2.6"
         ];
       })
-      sources."supports-color-7.1.0"
+      sources."supports-color-7.2.0"
       sources."tar-4.4.13"
       sources."through-2.3.8"
       sources."through2-3.0.2"
@@ -66352,7 +66472,7 @@ in
       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"
@@ -66364,7 +66484,7 @@ in
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
           sources."tslib-2.0.1"
         ];
       })
@@ -66577,7 +66697,7 @@ in
       sources."async-mutex-0.1.4"
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
-      (sources."aws-sdk-2.740.0" // {
+      (sources."aws-sdk-2.745.0" // {
         dependencies = [
           sources."sax-1.2.1"
           sources."uuid-3.3.2"
@@ -66994,7 +67114,7 @@ in
       sources."napi-build-utils-1.0.2"
       sources."ndarray-1.0.19"
       sources."ndarray-pack-1.2.1"
-      (sources."needle-2.5.0" // {
+      (sources."needle-2.5.2" // {
         dependencies = [
           sources."debug-3.2.6"
           sources."ms-2.1.2"
@@ -67307,7 +67427,7 @@ 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"
         ];
@@ -67437,7 +67557,7 @@ in
       sha512 = "SbY+i9ONuxSK35cgVHaI8O9senTE4CDYAmGSDJ5l3+sfe62Ff4gy96osy6OW84t4K4A8iGnMrlRrsSItSNp3RQ==";
     };
     dependencies = [
-      sources."@babel/parser-7.11.4"
+      sources."@babel/parser-7.11.5"
       sources."argparse-1.0.10"
       sources."bluebird-3.7.2"
       sources."catharsis-0.8.11"
@@ -67527,10 +67647,10 @@ in
   json = nodeEnv.buildNodePackage {
     name = "json";
     packageName = "json";
-    version = "9.0.6";
+    version = "10.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/json/-/json-9.0.6.tgz";
-      sha1 = "7972c2a5a48a42678db2730c7c2c4ee6e4e24585";
+      url = "https://registry.npmjs.org/json/-/json-10.0.0.tgz";
+      sha512 = "iK7tAZtpoghibjdB1ncCWykeBMmke3JThUe+rnkD4qkZaglOIQ70Pw7r5UJ4lyUT+7gnw7ehmmLUHDuhqzQD+g==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -67609,7 +67729,7 @@ in
       sources."sprintf-js-1.0.3"
       sources."string_decoder-1.1.1"
       sources."superagent-3.8.3"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."util-deprecate-1.0.2"
     ];
     buildInputs = globalBuildInputs;
@@ -67664,7 +67784,7 @@ in
       sources."caseless-0.12.0"
       sources."chalk-3.0.0"
       sources."ci-info-2.0.0"
-      sources."cli-boxes-2.2.0"
+      sources."cli-boxes-2.2.1"
       (sources."cliui-6.0.0" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
@@ -67859,7 +67979,7 @@ in
       })
       sources."strip-ansi-5.2.0"
       sources."strip-json-comments-2.0.1"
-      sources."supports-color-7.1.0"
+      sources."supports-color-7.2.0"
       sources."term-size-2.2.0"
       sources."to-readable-stream-1.0.0"
       sources."toidentifier-1.0.0"
@@ -67872,7 +67992,7 @@ in
       sources."unique-string-2.0.0"
       sources."unpipe-1.0.0"
       sources."update-notifier-4.1.1"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."url-parse-lax-3.0.0"
       sources."utils-merge-1.0.1"
       sources."uuid-3.4.0"
@@ -67932,10 +68052,10 @@ in
   karma = nodeEnv.buildNodePackage {
     name = "karma";
     packageName = "karma";
-    version = "5.1.1";
+    version = "5.2.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/karma/-/karma-5.1.1.tgz";
-      sha512 = "xAlOr5PMqUbiKXSv5PCniHWV3aiwj6wIZ0gUVcwpTCPVQm/qH2WAMFWxtnpM6KJqhkRWrIpovR4Rb0rn8GtJzQ==";
+      url = "https://registry.npmjs.org/karma/-/karma-5.2.1.tgz";
+      sha512 = "+/AO2fWL7kC3aWTx/lHjtKXfOqh0O+KLtTy4BLQ/b/eciHR4VTHHdPhdrn9sDBQskgDieaBZ+sAKzlldc4GW/Q==";
     };
     dependencies = [
       sources."@types/color-name-1.1.1"
@@ -67998,7 +68118,7 @@ in
       sources."engine.io-parser-2.2.0"
       sources."ent-2.2.0"
       sources."escape-html-1.0.3"
-      sources."eventemitter3-4.0.6"
+      sources."eventemitter3-4.0.7"
       sources."extend-3.0.2"
       sources."fill-range-7.0.1"
       sources."finalhandler-1.1.2"
@@ -68094,7 +68214,7 @@ in
           sources."ms-2.1.2"
         ];
       })
-      sources."source-map-0.6.1"
+      sources."source-map-0.7.3"
       sources."statuses-1.5.0"
       (sources."streamroller-2.2.4" // {
         dependencies = [
@@ -68431,7 +68551,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."type-check-0.3.2"
       sources."underscore-1.9.1"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       (sources."utile-0.3.0" // {
         dependencies = [
           sources."async-0.9.2"
@@ -68628,7 +68748,7 @@ in
       sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.3"
       sources."@types/minimist-1.2.0"
-      sources."@types/node-14.6.0"
+      sources."@types/node-14.6.3"
       sources."@types/normalize-package-data-2.4.0"
       sources."@zkochan/cmd-shim-3.1.0"
       sources."JSONStream-1.3.5"
@@ -69067,7 +69187,7 @@ in
       sources."js-yaml-3.14.0"
       sources."jsbn-0.1.1"
       sources."json-parse-better-errors-1.0.2"
-      sources."json-parse-even-better-errors-2.3.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"
@@ -69100,7 +69220,7 @@ in
       sources."map-cache-0.2.2"
       sources."map-obj-4.1.0"
       sources."map-visit-1.0.0"
-      (sources."meow-7.1.0" // {
+      (sources."meow-7.1.1" // {
         dependencies = [
           sources."find-up-4.1.0"
           sources."locate-path-5.0.0"
@@ -69431,7 +69551,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."type-fest-0.3.1"
       sources."typedarray-0.0.6"
-      sources."uglify-js-3.10.2"
+      sources."uglify-js-3.10.3"
       sources."uid-number-0.0.6"
       sources."umask-1.1.0"
       sources."union-value-1.0.1"
@@ -69450,7 +69570,7 @@ in
         ];
       })
       sources."upath-1.2.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       sources."use-3.1.1"
       sources."util-deprecate-1.0.2"
@@ -70384,7 +70504,7 @@ in
           sources."isobject-3.0.1"
         ];
       })
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       sources."use-3.1.1"
       sources."util-deprecate-1.0.2"
@@ -70414,8 +70534,8 @@ in
     dependencies = [
       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/core-7.11.5"
+      sources."@babel/generator-7.11.5"
       sources."@babel/helper-annotate-as-pure-7.10.4"
       sources."@babel/helper-builder-binary-assignment-operator-visitor-7.10.4"
       sources."@babel/helper-compilation-targets-7.10.4"
@@ -70445,7 +70565,7 @@ in
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.11.4"
+      sources."@babel/parser-7.11.5"
       sources."@babel/plugin-external-helpers-7.8.3"
       sources."@babel/plugin-proposal-async-generator-functions-7.10.5"
       sources."@babel/plugin-proposal-class-properties-7.10.4"
@@ -70499,7 +70619,7 @@ in
       sources."@babel/plugin-transform-property-literals-7.10.4"
       sources."@babel/plugin-transform-regenerator-7.10.4"
       sources."@babel/plugin-transform-reserved-words-7.10.4"
-      sources."@babel/plugin-transform-runtime-7.11.0"
+      sources."@babel/plugin-transform-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"
@@ -70507,22 +70627,18 @@ in
       sources."@babel/plugin-transform-typeof-symbol-7.10.4"
       sources."@babel/plugin-transform-unicode-escapes-7.10.4"
       sources."@babel/plugin-transform-unicode-regex-7.10.4"
-      sources."@babel/preset-env-7.11.0"
-      sources."@babel/preset-modules-0.1.3"
+      sources."@babel/preset-env-7.11.5"
+      sources."@babel/preset-modules-0.1.4"
       sources."@babel/preset-stage-2-7.8.3"
       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."@babel/traverse-7.11.5"
+      sources."@babel/types-7.11.5"
       sources."@cnakazawa/watch-1.0.4"
       sources."@comandeer/babel-plugin-banner-5.0.0"
       sources."@istanbuljs/load-nyc-config-1.1.0"
       sources."@istanbuljs/schema-0.1.2"
-      (sources."@jest/transform-25.5.1" // {
-        dependencies = [
-          sources."source-map-0.6.1"
-        ];
-      })
+      sources."@jest/transform-25.5.1"
       sources."@jest/types-25.5.0"
       sources."@types/babel__core-7.1.9"
       sources."@types/babel__generator-7.6.1"
@@ -70534,8 +70650,8 @@ in
       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.6.0"
+      sources."@types/json-schema-7.0.6"
+      sources."@types/node-14.6.3"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/resolve-0.0.8"
       sources."@types/yargs-15.0.5"
@@ -70712,7 +70828,7 @@ in
       sources."cache-base-1.0.1"
       sources."cached-path-relative-1.0.2"
       sources."camelcase-5.3.1"
-      sources."caniuse-lite-1.0.30001118"
+      sources."caniuse-lite-1.0.30001123"
       sources."capture-exit-2.0.0"
       sources."caseless-0.12.0"
       (sources."chalk-3.0.0" // {
@@ -70721,7 +70837,7 @@ in
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
       (sources."chokidar-3.4.2" // {
@@ -70765,6 +70881,7 @@ in
       (sources."combine-source-map-0.8.0" // {
         dependencies = [
           sources."convert-source-map-1.1.3"
+          sources."source-map-0.5.7"
         ];
       })
       sources."combined-stream-1.0.8"
@@ -70834,7 +70951,7 @@ in
       sources."duplexer2-0.1.4"
       sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
-      sources."electron-to-chromium-1.3.549"
+      sources."electron-to-chromium-1.3.560"
       (sources."elliptic-6.5.3" // {
         dependencies = [
           sources."bn.js-4.11.9"
@@ -70855,7 +70972,11 @@ in
       sources."eslint-scope-4.0.3"
       sources."eslint-visitor-keys-1.3.0"
       sources."esprima-4.0.1"
-      sources."esrecurse-4.2.1"
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
       sources."estraverse-4.3.0"
       sources."estree-walker-0.6.1"
       sources."esutils-2.0.3"
@@ -70992,7 +71113,11 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
-      sources."inline-source-map-0.6.2"
+      (sources."inline-source-map-0.6.2" // {
+        dependencies = [
+          sources."source-map-0.5.7"
+        ];
+      })
       sources."insert-module-globals-7.2.0"
       sources."interpret-1.4.0"
       sources."invariant-2.2.4"
@@ -71038,7 +71163,7 @@ in
       (sources."jest-worker-25.5.0" // {
         dependencies = [
           sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
       sources."js-tokens-4.0.0"
@@ -71046,7 +71171,7 @@ in
       sources."jsbn-0.1.1"
       sources."jsesc-2.5.2"
       sources."json-parse-better-errors-1.0.2"
-      sources."json-parse-even-better-errors-2.3.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-stable-stringify-0.0.1"
@@ -71288,7 +71413,7 @@ 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-4.0.0"
       sources."set-blocking-2.0.0"
@@ -71325,6 +71450,7 @@ in
           sources."is-descriptor-0.1.6"
           sources."kind-of-5.1.0"
           sources."ms-2.0.0"
+          sources."source-map-0.5.7"
         ];
       })
       (sources."snapdragon-node-2.1.1" // {
@@ -71338,13 +71464,9 @@ in
         ];
       })
       sources."source-list-map-0.1.8"
-      sources."source-map-0.5.7"
+      sources."source-map-0.6.1"
       sources."source-map-resolve-0.5.3"
-      (sources."source-map-support-0.5.19" // {
-        dependencies = [
-          sources."source-map-0.6.1"
-        ];
-      })
+      sources."source-map-support-0.5.19"
       sources."source-map-url-0.4.0"
       sources."sourcemap-codec-1.4.8"
       sources."spdx-correct-3.1.1"
@@ -71399,15 +71521,10 @@ in
           sources."readable-stream-3.6.0"
         ];
       })
-      (sources."terser-4.8.0" // {
-        dependencies = [
-          sources."source-map-0.6.1"
-        ];
-      })
+      sources."terser-4.8.0"
       (sources."terser-webpack-plugin-1.4.5" // {
         dependencies = [
           sources."schema-utils-1.0.0"
-          sources."source-map-0.6.1"
         ];
       })
       sources."test-exclude-6.0.0"
@@ -71452,7 +71569,7 @@ in
         ];
       })
       sources."upath-1.2.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       (sources."url-0.11.0" // {
         dependencies = [
@@ -71514,7 +71631,6 @@ in
       (sources."webpack-sources-1.4.3" // {
         dependencies = [
           sources."source-list-map-2.0.1"
-          sources."source-map-0.6.1"
         ];
       })
       sources."which-2.0.2"
@@ -71650,11 +71766,11 @@ in
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."sshpk-1.16.1"
-      sources."supports-color-7.1.0"
+      sources."supports-color-7.2.0"
       sources."tough-cookie-2.5.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
     ];
@@ -71760,7 +71876,11 @@ in
           sources."estraverse-5.2.0"
         ];
       })
-      sources."esrecurse-4.2.1"
+      (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"
@@ -71932,7 +72052,7 @@ in
       sources."type-1.2.0"
       sources."type-check-0.3.2"
       sources."typedarray-0.0.6"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."user-home-2.0.0"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
@@ -72019,22 +72139,23 @@ in
       sha512 = "uCsn3t7bV3jmy8mcgl19wowBq69Xz/Z/WUkazOC9PXvzzb9j5wvfr+qrwB5GtHkLBFIaBVI59HIX+JJ637jVmA==";
     };
     dependencies = [
-      sources."@fluentui/date-time-utilities-7.6.0"
+      sources."@fluentui/date-time-utilities-7.7.0"
       sources."@fluentui/keyboard-key-0.2.11"
-      sources."@fluentui/react-7.132.0"
-      sources."@fluentui/react-focus-7.13.3"
-      sources."@fluentui/react-icons-0.2.2"
-      sources."@fluentui/theme-0.1.2"
-      sources."@microsoft/load-themed-styles-1.10.79"
+      sources."@fluentui/react-7.134.1"
+      sources."@fluentui/react-focus-7.15.0"
+      sources."@fluentui/react-icons-0.3.0"
+      sources."@fluentui/react-window-provider-0.3.0"
+      sources."@fluentui/theme-0.2.0"
+      sources."@microsoft/load-themed-styles-1.10.82"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@uifabric/foundation-7.8.3"
-      sources."@uifabric/icons-7.4.3"
-      sources."@uifabric/merge-styles-7.17.0"
-      sources."@uifabric/react-hooks-7.10.0"
+      sources."@uifabric/foundation-7.9.0"
+      sources."@uifabric/icons-7.5.0"
+      sources."@uifabric/merge-styles-7.18.0"
+      sources."@uifabric/react-hooks-7.11.0"
       sources."@uifabric/set-version-7.0.22"
-      sources."@uifabric/styling-7.15.3"
-      sources."@uifabric/utilities-7.30.0"
+      sources."@uifabric/styling-7.16.0"
+      sources."@uifabric/utilities-7.31.0"
       sources."accepts-1.3.7"
       sources."ajv-6.12.4"
       sources."ansi-escapes-1.4.0"
@@ -72098,7 +72219,7 @@ in
       sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
       sources."etag-1.8.1"
-      sources."eventemitter3-4.0.6"
+      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"
@@ -72160,7 +72281,7 @@ in
       sources."node-fetch-1.6.3"
       sources."normalize-url-4.5.0"
       sources."object-assign-4.1.1"
-      sources."office-ui-fabric-react-7.132.0"
+      sources."office-ui-fabric-react-7.134.1"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
@@ -72259,7 +72380,7 @@ in
       sources."strip-json-comments-2.0.1"
       sources."supports-color-2.0.0"
       sources."swagger-schema-official-2.0.0-bab6bed"
-      sources."swagger-ui-dist-3.32.4"
+      sources."swagger-ui-dist-3.32.5"
       sources."tail-2.0.4"
       sources."through-2.3.8"
       sources."tmp-0.0.33"
@@ -72269,7 +72390,7 @@ in
       sources."tslib-1.13.0"
       sources."type-is-1.6.18"
       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."util-deprecate-1.0.2"
       sources."utils-merge-1.0.1"
@@ -72290,10 +72411,10 @@ in
   mocha = nodeEnv.buildNodePackage {
     name = "mocha";
     packageName = "mocha";
-    version = "8.1.2";
+    version = "8.1.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/mocha/-/mocha-8.1.2.tgz";
-      sha512 = "I8FRAcuACNMLQn3lS4qeWLxXqLvGf6r2CaLstDpZmMUUSmvW6Cnm1AuHxgbc7ctZVRcfwspCRbDHymPsi3dkJw==";
+      url = "https://registry.npmjs.org/mocha/-/mocha-8.1.3.tgz";
+      sha512 = "ZbaYib4hT4PpF4bdSO2DohooKXIn4lDeiYqB+vTmCdr6l2woW0b6H3pf5x4sM5nwQMru9RvjjHYWVGltR50ZBw==";
     };
     dependencies = [
       sources."@types/color-name-1.1.1"
@@ -72501,7 +72622,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;
@@ -72580,10 +72701,10 @@ in
   netlify-cli = nodeEnv.buildNodePackage {
     name = "netlify-cli";
     packageName = "netlify-cli";
-    version = "2.59.1";
+    version = "2.61.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/netlify-cli/-/netlify-cli-2.59.1.tgz";
-      sha512 = "HoqWho35I89wkJToOjMkcyfs3vXaeRG8/IDaKCXlVWfxLa4X4tEcN+YA/Xt6fHmiRTL8dvZttTO+rwlru7JaBQ==";
+      url = "https://registry.npmjs.org/netlify-cli/-/netlify-cli-2.61.0.tgz";
+      sha512 = "IGB8m/Cb0LB84K9wXSv3KbGJ29RzPTRt8CfHdH6mBMW5hWk3TfCGIIXl1xjqVR7am4ZxbGlKUcDDiMGGwF+/JQ==";
     };
     dependencies = [
       sources."@analytics/cookie-utils-0.2.3"
@@ -72592,7 +72713,7 @@ in
       sources."@babel/code-frame-7.10.4"
       sources."@babel/helper-validator-identifier-7.10.4"
       sources."@babel/highlight-7.10.4"
-      sources."@babel/parser-7.11.4"
+      sources."@babel/parser-7.11.5"
       sources."@bugsnag/browser-7.3.3"
       sources."@bugsnag/core-7.3.3"
       sources."@bugsnag/cuid-3.0.0"
@@ -72602,31 +72723,22 @@ in
       sources."@dabh/diagnostics-2.0.2"
       sources."@jest/types-24.9.0"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
-      (sources."@netlify/build-3.3.2" // {
+      (sources."@netlify/build-3.3.5" // {
         dependencies = [
-          sources."ansi-styles-4.2.1"
           sources."chalk-3.0.0"
-          sources."execa-3.4.0"
-          sources."find-up-4.1.0"
-          sources."read-pkg-up-7.0.1"
           sources."resolve-2.0.0-next.1"
-          sources."uuid-8.3.0"
         ];
       })
-      sources."@netlify/cache-utils-1.0.1"
-      (sources."@netlify/config-2.1.2" // {
+      sources."@netlify/cache-utils-1.0.2"
+      (sources."@netlify/config-2.1.3" // {
         dependencies = [
-          sources."ansi-styles-4.2.1"
           sources."chalk-3.0.0"
-          sources."execa-3.4.0"
-          sources."find-up-4.1.0"
         ];
       })
       sources."@netlify/functions-utils-1.2.8"
       (sources."@netlify/git-utils-1.0.1" // {
         dependencies = [
           sources."braces-3.0.2"
-          sources."execa-3.4.0"
           sources."fill-range-7.0.1"
           sources."is-number-7.0.0"
           sources."micromatch-4.0.2"
@@ -72634,14 +72746,9 @@ in
         ];
       })
       sources."@netlify/open-api-0.16.0"
-      (sources."@netlify/run-utils-1.0.0" // {
+      sources."@netlify/run-utils-1.0.0"
+      (sources."@netlify/zip-it-and-ship-it-1.3.12" // {
         dependencies = [
-          sources."execa-3.4.0"
-        ];
-      })
-      (sources."@netlify/zip-it-and-ship-it-1.3.11" // {
-        dependencies = [
-          sources."find-up-4.1.0"
           sources."resolve-2.0.0-next.1"
         ];
       })
@@ -72654,22 +72761,25 @@ in
       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.1.0"
+              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."tslib-1.13.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"
@@ -72691,25 +72801,22 @@ in
           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."ansi-styles-4.2.1"
           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" // {
-        dependencies = [
-          sources."tslib-1.13.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"
@@ -72730,6 +72837,7 @@ in
       })
       (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"
@@ -72739,7 +72847,6 @@ in
           sources."semver-5.7.1"
           sources."strip-ansi-5.2.0"
           sources."supports-color-5.5.0"
-          sources."tslib-1.13.0"
           sources."universalify-0.1.2"
         ];
       })
@@ -72748,6 +72855,8 @@ in
           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"
         ];
       })
@@ -72803,7 +72912,7 @@ in
       sources."@types/istanbul-reports-1.1.2"
       sources."@types/minimatch-3.0.3"
       sources."@types/mkdirp-0.5.2"
-      sources."@types/node-14.6.0"
+      sources."@types/node-14.6.3"
       sources."@types/node-fetch-2.5.7"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/semver-5.5.0"
@@ -72824,10 +72933,10 @@ in
       })
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-4.1.0"
-      (sources."ansi-styles-3.2.1" // {
+      (sources."ansi-styles-4.2.1" // {
         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."ansicolors-0.3.2"
@@ -72862,7 +72971,7 @@ in
       sources."at-least-node-1.0.0"
       sources."atob-2.1.2"
       sources."atob-lite-2.0.0"
-      (sources."aws-sdk-2.740.0" // {
+      (sources."aws-sdk-2.745.0" // {
         dependencies = [
           sources."buffer-4.9.2"
           sources."uuid-3.3.2"
@@ -72887,7 +72996,6 @@ in
       })
       (sources."boxen-4.2.0" // {
         dependencies = [
-          sources."ansi-styles-4.2.1"
           sources."chalk-3.0.0"
         ];
       })
@@ -72919,6 +73027,7 @@ in
       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"
@@ -72954,19 +73063,19 @@ in
       })
       sources."clean-deep-3.4.0"
       sources."clean-stack-2.2.0"
-      sources."cli-boxes-2.2.0"
+      sources."cli-boxes-2.2.1"
       sources."cli-cursor-2.1.0"
       sources."cli-progress-3.8.2"
-      sources."cli-spinners-1.3.1"
-      (sources."cli-ux-5.4.10" // {
+      sources."cli-spinners-2.4.0"
+      (sources."cli-ux-5.5.0" // {
         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."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"
         ];
       })
@@ -72975,14 +73084,9 @@ in
       sources."clone-1.0.4"
       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."colors-1.4.0"
       sources."colorspace-1.1.2"
@@ -73023,10 +73127,19 @@ in
       })
       sources."core-util-is-1.0.2"
       sources."cp-file-7.0.0"
-      sources."cpy-8.1.0"
+      (sources."cpy-8.1.1" // {
+        dependencies = [
+          sources."globby-9.2.0"
+        ];
+      })
       sources."crc-3.8.0"
       sources."crc32-stream-3.0.1"
-      sources."cross-spawn-7.0.3"
+      (sources."cross-spawn-6.0.5" // {
+        dependencies = [
+          sources."semver-5.7.1"
+          sources."which-1.3.1"
+        ];
+      })
       sources."crypto-random-string-2.0.0"
       sources."cyclist-1.0.1"
       sources."date-time-2.1.0"
@@ -73050,9 +73163,8 @@ in
       sources."decompress-response-3.3.0"
       (sources."decompress-tar-4.1.1" // {
         dependencies = [
-          sources."bl-1.2.2"
+          sources."bl-1.2.3"
           sources."file-type-5.2.0"
-          sources."is-stream-1.1.0"
           sources."readable-stream-2.3.7"
           sources."safe-buffer-5.1.2"
           sources."tar-stream-1.6.2"
@@ -73061,13 +73173,11 @@ in
       (sources."decompress-tarbz2-4.1.1" // {
         dependencies = [
           sources."file-type-6.2.0"
-          sources."is-stream-1.1.0"
         ];
       })
       (sources."decompress-targz-4.1.1" // {
         dependencies = [
           sources."file-type-5.2.0"
-          sources."is-stream-1.1.0"
         ];
       })
       (sources."decompress-unzip-4.0.1" // {
@@ -73086,19 +73196,7 @@ in
       sources."define-property-2.0.2"
       (sources."del-5.1.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-10.0.2"
-          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."delayed-stream-1.0.0"
@@ -73137,7 +73235,6 @@ in
           sources."normalize-url-2.0.1"
           sources."p-cancelable-0.4.1"
           sources."p-event-2.3.1"
-          sources."p-finally-1.0.0"
           sources."p-timeout-2.0.1"
           sources."pify-3.0.0"
           sources."sort-keys-2.0.0"
@@ -73168,11 +73265,17 @@ in
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
       sources."etag-1.8.1"
-      sources."eventemitter3-4.0.6"
+      sources."eventemitter3-4.0.7"
       sources."events-1.1.1"
-      (sources."execa-2.1.0" // {
+      (sources."execa-3.4.0" // {
         dependencies = [
-          sources."npm-run-path-3.1.0"
+          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."expand-brackets-2.1.4" // {
@@ -73246,13 +73349,7 @@ in
           sources."debug-2.6.9"
         ];
       })
-      (sources."find-up-3.0.0" // {
-        dependencies = [
-          sources."locate-path-3.0.0"
-          sources."p-locate-3.0.0"
-          sources."path-exists-3.0.0"
-        ];
-      })
+      sources."find-up-4.1.0"
       sources."flatten-1.0.3"
       sources."flush-write-stream-2.0.0"
       sources."fn.name-1.1.0"
@@ -73303,7 +73400,22 @@ in
       sources."glob-to-regexp-0.3.0"
       sources."global-cache-dir-1.0.1"
       sources."global-dirs-2.0.1"
-      sources."globby-9.2.0"
+      (sources."globby-10.0.2" // {
+        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."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."gonzales-pe-4.3.0"
       (sources."got-9.6.0" // {
         dependencies = [
@@ -73334,11 +73446,16 @@ in
         ];
       })
       sources."has-yarn-2.1.0"
-      sources."hasha-5.2.0"
+      (sources."hasha-5.2.0" // {
+        dependencies = [
+          sources."is-stream-2.0.0"
+        ];
+      })
       sources."hosted-git-info-2.8.8"
       sources."http-cache-semantics-4.1.0"
       (sources."http-call-5.3.0" // {
         dependencies = [
+          sources."is-stream-2.0.0"
           sources."parse-json-4.0.0"
         ];
       })
@@ -73348,7 +73465,7 @@ in
         ];
       })
       sources."http-proxy-1.18.1"
-      (sources."http-proxy-middleware-0.21.0" // {
+      (sources."http-proxy-middleware-1.0.5" // {
         dependencies = [
           sources."braces-3.0.2"
           sources."fill-range-7.0.1"
@@ -73362,7 +73479,6 @@ in
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.1.13"
       sources."ignore-4.0.6"
-      sources."ignore-walk-3.0.3"
       sources."import-lazy-2.1.0"
       sources."imurmurhash-0.1.4"
       sources."indent-string-4.0.0"
@@ -73391,7 +73507,6 @@ in
       (sources."inquirer-autocomplete-prompt-1.1.0" // {
         dependencies = [
           sources."ansi-escapes-4.3.1"
-          sources."ansi-styles-4.2.1"
           sources."chalk-4.1.0"
           sources."type-fest-0.11.0"
         ];
@@ -73407,12 +73522,13 @@ in
       sources."is-data-descriptor-1.0.0"
       sources."is-date-object-1.0.2"
       sources."is-descriptor-1.0.2"
-      sources."is-docker-1.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-3.0.0"
       sources."is-glob-4.0.1"
       sources."is-installed-globally-0.3.2"
+      sources."is-interactive-1.0.0"
       sources."is-natural-number-4.0.1"
       sources."is-npm-4.0.0"
       (sources."is-number-3.0.0" // {
@@ -73428,16 +73544,12 @@ in
       sources."is-plain-object-2.0.4"
       sources."is-regex-1.1.1"
       sources."is-retry-allowed-1.2.0"
-      sources."is-stream-2.0.0"
+      sources."is-stream-1.1.0"
       sources."is-symbol-1.0.3"
       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.1.1"
-        ];
-      })
+      sources."is-wsl-2.2.0"
       sources."is-yarn-global-0.3.0"
       sources."isarray-1.0.0"
       sources."iserror-0.0.2"
@@ -73452,15 +73564,11 @@ 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.0"
+      sources."json-parse-even-better-errors-2.3.1"
       sources."jsonfile-6.0.1"
       sources."junk-3.1.0"
       sources."jwt-decode-2.2.0"
-      (sources."keep-func-props-3.0.1" // {
-        dependencies = [
-          sources."mimic-fn-3.1.0"
-        ];
-      })
+      sources."keep-func-props-3.0.1"
       sources."keyv-3.1.0"
       sources."kind-of-6.0.3"
       sources."kuler-2.0.0"
@@ -73514,11 +73622,10 @@ in
       sources."lodash.uniq-4.5.0"
       (sources."log-process-errors-5.1.2" // {
         dependencies = [
-          sources."ansi-styles-4.2.1"
           sources."chalk-3.0.0"
         ];
       })
-      sources."log-symbols-2.2.0"
+      sources."log-symbols-3.0.0"
       (sources."logform-2.2.0" // {
         dependencies = [
           sources."ms-2.1.2"
@@ -73554,7 +73661,7 @@ 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."mimic-fn-3.1.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -73589,19 +73696,15 @@ in
       sources."natural-orderby-2.0.3"
       sources."negotiator-0.6.2"
       sources."nested-error-stacks-2.1.0"
-      (sources."netlify-4.3.12" // {
+      (sources."netlify-4.3.13" // {
         dependencies = [
-          sources."p-wait-for-3.1.0"
           sources."qs-6.9.4"
         ];
       })
       (sources."netlify-redirect-parser-2.5.0" // {
         dependencies = [
           sources."@netlify/config-0.11.11"
-          sources."ansi-styles-4.2.1"
           sources."chalk-3.0.0"
-          sources."execa-3.4.0"
-          sources."find-up-4.1.0"
         ];
       })
       sources."netlify-redirector-0.2.0"
@@ -73616,15 +73719,12 @@ in
       })
       sources."normalize-path-3.0.0"
       sources."normalize-url-4.5.0"
-      sources."npm-bundled-1.1.1"
       (sources."npm-conf-1.1.3" // {
         dependencies = [
           sources."pify-3.0.0"
         ];
       })
-      sources."npm-normalize-package-bin-1.0.1"
-      sources."npm-packlist-1.4.8"
-      sources."npm-run-path-4.0.1"
+      sources."npm-run-path-2.0.2"
       sources."object-assign-4.1.1"
       (sources."object-copy-0.1.0" // {
         dependencies = [
@@ -73652,7 +73752,11 @@ in
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
       sources."one-time-1.0.0"
-      sources."onetime-5.1.2"
+      (sources."onetime-5.1.2" // {
+        dependencies = [
+          sources."mimic-fn-2.1.0"
+        ];
+      })
       (sources."open-6.4.0" // {
         dependencies = [
           sources."is-wsl-1.1.0"
@@ -73664,10 +73768,12 @@ in
         ];
       })
       sources."optionator-0.8.3"
-      (sources."ora-3.4.0" // {
+      (sources."ora-4.1.1" // {
         dependencies = [
-          sources."cli-spinners-2.4.0"
-          sources."strip-ansi-5.2.0"
+          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"
@@ -73684,24 +73790,15 @@ in
           sources."p-map-2.1.0"
         ];
       })
-      sources."p-finally-2.0.1"
+      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" // {
-        dependencies = [
-          sources."p-finally-1.0.0"
-        ];
-      })
+      sources."p-timeout-3.2.0"
       sources."p-try-2.2.0"
-      (sources."p-wait-for-2.0.1" // {
-        dependencies = [
-          sources."p-finally-1.0.0"
-          sources."p-timeout-2.0.1"
-        ];
-      })
+      sources."p-wait-for-3.1.0"
       (sources."package-json-6.5.0" // {
         dependencies = [
           sources."semver-6.3.0"
@@ -73719,20 +73816,11 @@ in
       sources."parse-ms-2.1.0"
       sources."parseurl-1.3.3"
       sources."pascalcase-0.1.1"
-      (sources."password-prompt-1.1.2" // {
-        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."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-3.1.1"
+      sources."path-key-2.0.1"
       sources."path-parse-1.0.6"
       sources."path-to-regexp-0.1.7"
       sources."path-type-4.0.0"
@@ -73741,11 +73829,7 @@ in
       sources."pify-4.0.1"
       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."pkg-dir-4.2.0"
       sources."posix-character-classes-0.1.1"
       (sources."postcss-7.0.32" // {
         dependencies = [
@@ -73759,7 +73843,11 @@ in
       sources."precond-0.2.3"
       sources."prelude-ls-1.1.2"
       sources."prepend-http-2.0.0"
-      sources."pretty-format-24.9.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"
@@ -73772,7 +73860,7 @@ in
       sources."query-string-5.1.1"
       sources."querystring-0.2.0"
       sources."random-bytes-1.0.0"
-      sources."random-item-1.0.0"
+      sources."random-item-3.0.0"
       sources."range-parser-1.2.1"
       (sources."raw-body-2.4.1" // {
         dependencies = [
@@ -73786,12 +73874,7 @@ in
           sources."type-fest-0.6.0"
         ];
       })
-      (sources."read-pkg-up-6.0.0" // {
-        dependencies = [
-          sources."find-up-4.1.0"
-          sources."type-fest-0.5.2"
-        ];
-      })
+      sources."read-pkg-up-7.0.1"
       sources."readable-stream-3.6.0"
       sources."readdirp-3.4.0"
       sources."redeyed-2.1.1"
@@ -73819,11 +73902,7 @@ in
       sources."rimraf-3.0.2"
       sources."run-async-2.4.1"
       sources."run-parallel-1.1.9"
-      (sources."rxjs-6.6.2" // {
-        dependencies = [
-          sources."tslib-1.13.0"
-        ];
-      })
+      sources."rxjs-6.6.2"
       sources."safe-buffer-5.2.1"
       sources."safe-join-0.1.3"
       sources."safe-json-stringify-1.2.0"
@@ -73855,8 +73934,8 @@ in
         ];
       })
       sources."setprototypeof-1.1.1"
-      sources."shebang-command-2.0.0"
-      sources."shebang-regex-3.0.0"
+      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 = [
@@ -73966,7 +74045,7 @@ in
           sources."escape-string-regexp-1.0.5"
         ];
       })
-      sources."supports-color-7.1.0"
+      sources."supports-color-7.2.0"
       (sources."supports-hyperlinks-1.0.1" // {
         dependencies = [
           sources."has-flag-2.0.0"
@@ -74019,12 +74098,8 @@ in
         ];
       })
       sources."triple-beam-1.3.0"
-      sources."tslib-2.0.1"
-      (sources."tsutils-3.17.1" // {
-        dependencies = [
-          sources."tslib-1.13.0"
-        ];
-      })
+      sources."tslib-1.13.0"
+      sources."tsutils-3.17.1"
       sources."tunnel-agent-0.6.0"
       sources."type-check-0.3.2"
       sources."type-fest-0.8.1"
@@ -74056,7 +74131,6 @@ in
       })
       (sources."update-notifier-4.1.1" // {
         dependencies = [
-          sources."ansi-styles-4.2.1"
           sources."chalk-3.0.0"
         ];
       })
@@ -74068,7 +74142,7 @@ in
       sources."util-deprecate-1.0.2"
       sources."util.promisify-1.0.1"
       sources."utils-merge-1.0.1"
-      sources."uuid-3.4.0"
+      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"
@@ -74084,20 +74158,15 @@ in
       sources."widest-line-3.1.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."p-finally-1.0.0"
-          sources."path-key-2.0.1"
-          sources."semver-5.7.1"
-          sources."shebang-command-1.2.0"
-          sources."shebang-regex-1.0.0"
-          sources."which-1.3.1"
         ];
       })
-      sources."winston-3.3.3"
+      (sources."winston-3.3.3" // {
+        dependencies = [
+          sources."is-stream-2.0.0"
+        ];
+      })
       (sources."winston-transport-4.4.0" // {
         dependencies = [
           sources."readable-stream-2.3.7"
@@ -74105,11 +74174,7 @@ in
         ];
       })
       sources."word-wrap-1.2.3"
-      (sources."wrap-ansi-6.2.0" // {
-        dependencies = [
-          sources."ansi-styles-4.2.1"
-        ];
-      })
+      sources."wrap-ansi-6.2.0"
       sources."wrappy-1.0.2"
       sources."write-file-atomic-3.0.3"
       sources."xdg-basedir-4.0.0"
@@ -74117,13 +74182,9 @@ in
       sources."xmlbuilder-9.0.7"
       sources."xtend-4.0.2"
       sources."y18n-4.0.0"
-      (sources."yargs-15.4.1" // {
-        dependencies = [
-          sources."find-up-4.1.0"
-        ];
-      })
+      sources."yargs-15.4.1"
       sources."yargs-parser-18.1.3"
-      sources."yarn-1.22.4"
+      sources."yarn-1.22.5"
       sources."yauzl-2.10.0"
       sources."zip-stream-3.0.1"
     ];
@@ -74258,7 +74319,7 @@ in
       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"
@@ -74632,7 +74693,7 @@ in
       sources."minizlib-1.3.3"
       sources."mkdirp-0.5.5"
       sources."ms-2.1.2"
-      sources."needle-2.5.0"
+      sources."needle-2.5.2"
       sources."nopt-4.0.3"
       sources."npm-bundled-1.1.1"
       sources."npm-normalize-package-bin-1.0.1"
@@ -74748,7 +74809,7 @@ in
       })
       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 = [
@@ -74996,7 +75057,7 @@ in
       sources."mustache-4.0.1"
       sources."mute-stream-0.0.8"
       sources."nan-2.14.0"
-      (sources."needle-2.5.0" // {
+      (sources."needle-2.5.2" // {
         dependencies = [
           sources."debug-3.2.6"
           sources."ms-2.1.2"
@@ -75135,7 +75196,7 @@ in
       sources."unique-stream-2.3.1"
       sources."universalify-0.1.2"
       sources."unpipe-1.0.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."util-deprecate-1.0.2"
       sources."utils-merge-1.0.1"
       sources."uuid-3.4.0"
@@ -75348,7 +75409,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."typedarray-0.0.6"
       sources."uid-number-0.0.5"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."validate-npm-package-license-3.0.4"
@@ -75405,12 +75466,12 @@ in
       (sources."chalk-3.0.0" // {
         dependencies = [
           sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
       sources."chokidar-3.4.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"
@@ -75554,14 +75615,14 @@ in
   npm-check-updates = nodeEnv.buildNodePackage {
     name = "npm-check-updates";
     packageName = "npm-check-updates";
-    version = "7.1.1";
+    version = "8.0.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-7.1.1.tgz";
-      sha512 = "mTth44/DK4EmTecdyqEzt6C76sSYdCnDrOo39lNcN1/JWOEkcb+uLQ2CRt0gqkCp6DohALs4RpVBVp+E2i+h8Q==";
+      url = "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-8.0.5.tgz";
+      sha512 = "EZ3DIFvKFNZzwV9OdEYITTAY6fmuD7evItEmf9XyntG4p29n8JpFaGrf9uCQIR0Hx3G5RFNsdCeURHzF6YXIAw==";
     };
     dependencies = [
       sources."@npmcli/ci-detect-1.3.0"
-      sources."@npmcli/git-2.0.3"
+      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"
@@ -75622,7 +75683,7 @@ in
       sources."ci-info-2.0.0"
       sources."cint-8.2.1"
       sources."clean-stack-2.2.0"
-      sources."cli-boxes-2.2.0"
+      sources."cli-boxes-2.2.1"
       sources."cli-table-0.3.1"
       sources."clone-response-1.0.2"
       sources."code-point-at-1.1.0"
@@ -75630,7 +75691,7 @@ in
       sources."color-name-1.1.4"
       sources."colors-1.0.3"
       sources."combined-stream-1.0.8"
-      sources."commander-6.0.0"
+      sources."commander-6.1.0"
       sources."concat-map-0.0.1"
       sources."configstore-5.0.1"
       sources."console-control-strings-1.1.0"
@@ -75661,7 +75722,7 @@ in
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."figgy-pudding-3.5.2"
-      sources."find-up-4.1.0"
+      sources."find-up-5.0.0"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
       sources."fs-minipass-2.1.0"
@@ -75711,7 +75772,7 @@ 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.3.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"
@@ -75727,11 +75788,12 @@ 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."locate-path-6.0.0"
       sources."lodash-4.17.20"
       sources."lowercase-keys-1.0.1"
       sources."lru-cache-6.0.0"
@@ -75800,8 +75862,8 @@ in
       sources."os-tmpdir-1.0.2"
       sources."osenv-0.1.5"
       sources."p-cancelable-1.1.0"
-      sources."p-limit-2.3.0"
-      sources."p-locate-4.1.0"
+      sources."p-limit-3.0.2"
+      sources."p-locate-5.0.0"
       sources."p-map-4.0.0"
       sources."p-try-2.2.0"
       (sources."package-json-6.5.0" // {
@@ -75810,6 +75872,7 @@ in
         ];
       })
       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."performance-now-2.1.0"
@@ -75831,6 +75894,7 @@ in
       sources."readdir-scoped-modules-1.1.0"
       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."responselike-1.0.2"
@@ -75849,9 +75913,9 @@ in
       sources."signal-exit-3.0.3"
       sources."sisteransi-1.0.5"
       sources."smart-buffer-4.1.0"
-      sources."socks-2.4.1"
+      sources."socks-2.4.2"
       sources."socks-proxy-agent-5.0.0"
-      sources."spawn-please-0.3.0"
+      sources."spawn-please-0.4.1"
       sources."sprintf-js-1.0.3"
       sources."sshpk-1.16.1"
       sources."ssri-8.0.0"
@@ -75859,7 +75923,7 @@ 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."supports-color-7.2.0"
       (sources."tar-6.0.5" // {
         dependencies = [
           sources."minizlib-2.1.2"
@@ -75880,7 +75944,7 @@ in
           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"
@@ -76068,7 +76132,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."underscore-1.4.4"
       sources."underscore.string-2.3.3"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
@@ -76138,21 +76202,16 @@ in
     dependencies = [
       sources."@babel/code-frame-7.10.4"
       sources."@babel/compat-data-7.11.0"
-      (sources."@babel/core-7.11.4" // {
+      (sources."@babel/core-7.11.5" // {
         dependencies = [
           sources."json5-2.1.3"
-          sources."source-map-0.5.7"
-        ];
-      })
-      (sources."@babel/generator-7.11.4" // {
-        dependencies = [
-          sources."source-map-0.5.7"
         ];
       })
+      sources."@babel/generator-7.11.5"
       sources."@babel/helper-annotate-as-pure-7.10.4"
       sources."@babel/helper-builder-binary-assignment-operator-visitor-7.10.4"
       sources."@babel/helper-builder-react-jsx-7.10.4"
-      sources."@babel/helper-builder-react-jsx-experimental-7.10.5"
+      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"
@@ -76176,7 +76235,7 @@ in
       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/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"
@@ -76238,12 +76297,12 @@ in
       sources."@babel/plugin-transform-typeof-symbol-7.10.4"
       sources."@babel/plugin-transform-unicode-escapes-7.10.4"
       sources."@babel/plugin-transform-unicode-regex-7.10.4"
-      sources."@babel/preset-env-7.11.0"
-      sources."@babel/preset-modules-0.1.3"
+      sources."@babel/preset-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.0"
-      sources."@babel/types-7.11.0"
+      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"
@@ -76361,7 +76420,7 @@ in
       sources."caller-path-2.0.0"
       sources."callsites-2.0.0"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001118"
+      sources."caniuse-lite-1.0.30001123"
       sources."caseless-0.12.0"
       sources."chalk-2.4.2"
       sources."chokidar-2.1.8"
@@ -76495,7 +76554,7 @@ in
       sources."duplexer2-0.1.4"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.549"
+      sources."electron-to-chromium-1.3.560"
       (sources."elliptic-6.5.3" // {
         dependencies = [
           sources."bn.js-4.11.9"
@@ -76795,7 +76854,7 @@ in
           sources."supports-color-6.1.0"
         ];
       })
-      (sources."postcss-calc-7.0.3" // {
+      (sources."postcss-calc-7.0.4" // {
         dependencies = [
           sources."postcss-value-parser-4.1.0"
         ];
@@ -77051,7 +77110,7 @@ in
         ];
       })
       sources."upath-1.2.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       (sources."url-0.11.0" // {
         dependencies = [
@@ -77127,7 +77186,7 @@ in
       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 = [
@@ -77340,10 +77399,10 @@ in
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-is-1.6.18"
-      sources."uglify-js-3.10.2"
+      sources."uglify-js-3.10.3"
       sources."unix-dgram-2.0.4"
       sources."unpipe-1.0.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."util-deprecate-1.0.2"
       sources."utils-merge-1.0.1"
       sources."uuid-3.4.0"
@@ -78045,7 +78104,7 @@ in
       sources."ultron-1.1.1"
       sources."uniq-1.0.1"
       sources."unpipe-1.0.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."util-deprecate-1.0.2"
       sources."utils-merge-1.0.1"
       sources."utp-0.0.7"
@@ -78073,10 +78132,10 @@ in
   pnpm = nodeEnv.buildNodePackage {
     name = "pnpm";
     packageName = "pnpm";
-    version = "5.5.3";
+    version = "5.5.10";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pnpm/-/pnpm-5.5.3.tgz";
-      sha512 = "1FfqqDOaQKIn10WzP2Vdjwo4KOpdu7s2dRbBMDJi9llHa5BhhHf+ASrW8HTWyqKd03n6wf2NrbFvZreHJKQnZw==";
+      url = "https://registry.npmjs.org/pnpm/-/pnpm-5.5.10.tgz";
+      sha512 = "lHaae4Xiiz2I6+1czn/3AvvM+O7sHDoiEiBW4UK0NPuWJdCBGuu6qcuneuo02cmo5Hur3KuqgGmUdkMKq7gMnw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -78091,10 +78150,10 @@ in
   postcss-cli = nodeEnv.buildNodePackage {
     name = "postcss-cli";
     packageName = "postcss-cli";
-    version = "7.1.1";
+    version = "7.1.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/postcss-cli/-/postcss-cli-7.1.1.tgz";
-      sha512 = "bYQy5ydAQJKCMSpvaMg0ThPBeGYqhQXumjbFOmWnL4u65CYXQ16RfS6afGQpit0dGv/fNzxbdDtx8dkqOhhIbg==";
+      url = "https://registry.npmjs.org/postcss-cli/-/postcss-cli-7.1.2.tgz";
+      sha512 = "3mlEmN1v2NVuosMWZM2tP8bgZn7rO5PYxRRrXtdSyL5KipcgBDjJ9ct8/LKxImMCJJi3x5nYhCGFJOkGyEqXBQ==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.3"
@@ -78133,7 +78192,7 @@ in
       sources."fs-extra-9.0.1"
       sources."fsevents-2.1.3"
       sources."get-caller-file-2.0.5"
-      sources."get-stdin-7.0.0"
+      sources."get-stdin-8.0.0"
       sources."glob-parent-5.1.1"
       sources."globby-11.0.1"
       sources."graceful-fs-4.2.4"
@@ -78214,7 +78273,7 @@ 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"
@@ -78623,10 +78682,10 @@ in
   pyright = nodeEnv.buildNodePackage {
     name = "pyright";
     packageName = "pyright";
-    version = "1.1.65";
+    version = "1.1.66";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pyright/-/pyright-1.1.65.tgz";
-      sha512 = "G8tI8Ws5CwXJGJTQ48e0L+56cA31990t9V65EukrefKnLupySPVVpHuUGeCY21LCYqZPg1yY2R8KMbXH1y1uMQ==";
+      url = "https://registry.npmjs.org/pyright/-/pyright-1.1.66.tgz";
+      sha512 = "DbtdoFKrg3JrGAEG9bUjN4dNQQeoj7a/vy61Ppi/6KeA1sEclA/sUFFH8Yyb56UDUEXYg2U1dw78zr6mRw+Cog==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -78805,11 +78864,7 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.10.4"
-      (sources."@babel/generator-7.11.4" // {
-        dependencies = [
-          sources."source-map-0.5.7"
-        ];
-      })
+      sources."@babel/generator-7.11.5"
       sources."@babel/helper-annotate-as-pure-7.10.4"
       sources."@babel/helper-function-name-7.10.4"
       sources."@babel/helper-get-function-arity-7.10.4"
@@ -78817,15 +78872,16 @@ in
       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.4"
+      sources."@babel/parser-7.11.5"
       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."@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"
@@ -79020,8 +79076,8 @@ in
       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.3"
-      sources."oas-resolver-2.4.3"
+      sources."oas-linter-3.2.0"
+      sources."oas-resolver-2.4.4"
       sources."oas-schema-walker-1.1.5"
       sources."oas-validator-3.4.0"
       sources."object-assign-4.1.1"
@@ -79044,7 +79100,7 @@ in
       sources."pbkdf2-3.1.1"
       sources."perfect-scrollbar-1.5.0"
       sources."picomatch-2.2.2"
-      sources."polished-3.6.5"
+      sources."polished-3.6.6"
       sources."postcss-value-parser-4.1.0"
       sources."prismjs-1.21.0"
       sources."process-0.11.10"
@@ -79086,7 +79142,7 @@ in
           sources."tslib-1.13.0"
         ];
       })
-      sources."reftools-1.1.5"
+      sources."reftools-1.1.6"
       sources."regenerator-runtime-0.13.7"
       sources."require-directory-2.1.1"
       sources."require-main-filename-1.0.1"
@@ -79137,7 +79193,7 @@ in
       sources."to-regex-range-5.0.1"
       sources."tslib-2.0.1"
       sources."tty-browserify-0.0.0"
-      sources."uglify-js-3.10.2"
+      sources."uglify-js-3.10.3"
       (sources."url-0.11.0" // {
         dependencies = [
           sources."punycode-1.3.2"
@@ -79217,10 +79273,10 @@ in
   rollup = nodeEnv.buildNodePackage {
     name = "rollup";
     packageName = "rollup";
-    version = "2.26.5";
+    version = "2.26.9";
     src = fetchurl {
-      url = "https://registry.npmjs.org/rollup/-/rollup-2.26.5.tgz";
-      sha512 = "rCyFG3ZtQdnn9YwfuAVH0l/Om34BdO5lwCA0W6Hq+bNB21dVEBbCRxhaHOmu1G7OBFDWytbzAC104u7rxHwGjA==";
+      url = "https://registry.npmjs.org/rollup/-/rollup-2.26.9.tgz";
+      sha512 = "XIiWYLayLqV+oY4S2Lub/shJq4uk/QQLwWToYCL4LjZbYHbFK3czea4UDVRUJu+zNmKmxq5Zb/OG7c5HSvH2TQ==";
     };
     dependencies = [
       sources."fsevents-2.1.3"
@@ -79248,6 +79304,7 @@ in
           sources."chalk-2.4.2"
         ];
       })
+      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"
@@ -79255,7 +79312,7 @@ in
       sources."@types/eslint-visitor-keys-1.0.0"
       sources."@types/estree-0.0.39"
       sources."@types/glob-7.1.3"
-      sources."@types/json-schema-7.0.5"
+      sources."@types/json-schema-7.0.6"
       sources."@types/minimatch-3.0.3"
       sources."@types/mocha-7.0.2"
       sources."@types/node-12.7.12"
@@ -79305,7 +79362,7 @@ in
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
       sources."cheerio-1.0.0-rc.3"
@@ -79355,7 +79412,7 @@ in
       sources."es6-promise-4.2.8"
       sources."es6-promisify-5.0.0"
       sources."escape-string-regexp-1.0.5"
-      (sources."eslint-7.7.0" // {
+      (sources."eslint-7.8.1" // {
         dependencies = [
           sources."semver-7.3.2"
         ];
@@ -79370,7 +79427,11 @@ in
           sources."estraverse-5.2.0"
         ];
       })
-      sources."esrecurse-4.2.1"
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
       sources."estraverse-4.3.0"
       sources."estree-walker-1.0.1"
       sources."esutils-2.0.3"
@@ -79460,7 +79521,7 @@ in
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
-      (sources."mocha-8.1.2" // {
+      (sources."mocha-8.1.3" // {
         dependencies = [
           sources."debug-4.1.1"
           sources."escape-string-regexp-4.0.0"
@@ -79515,7 +79576,7 @@ in
       sources."resolve-1.17.0"
       sources."resolve-from-4.0.0"
       sources."rimraf-2.6.3"
-      sources."rollup-2.26.5"
+      sources."rollup-2.26.9"
       sources."safe-buffer-5.2.1"
       sources."semver-6.3.0"
       sources."serialize-javascript-4.0.0"
@@ -79556,11 +79617,11 @@ in
       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.79.3" // {
+      (sources."vsce-1.79.5" // {
         dependencies = [
           sources."chalk-2.4.2"
           sources."semver-5.7.1"
@@ -79741,7 +79802,7 @@ in
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."uid2-0.0.3"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."util-0.4.9"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
@@ -79863,7 +79924,7 @@ in
       sources."supports-color-5.5.0"
       sources."term-size-1.2.0"
       sources."update-check-1.5.2"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."vary-1.1.2"
       sources."which-1.3.1"
       sources."widest-line-2.0.1"
@@ -79882,10 +79943,10 @@ in
   serverless = nodeEnv.buildNodePackage {
     name = "serverless";
     packageName = "serverless";
-    version = "1.80.0";
+    version = "1.81.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/serverless/-/serverless-1.80.0.tgz";
-      sha512 = "gIHWDwW5ZkKD+WKMhVUPAmhn95Tk8vFru7feYpbJ4WZgzz/M0HkHpph3rA7YxiWBJChghaLXO7HwvbnxJ1nvCw==";
+      url = "https://registry.npmjs.org/serverless/-/serverless-1.81.1.tgz";
+      sha512 = "CaNAEFDc1V7egtIcJcF5A7ba6ipD9FG0ZPbHr0M4m8IMsmfWAewdhhj1BdlcpaD16mNZH9bjXYT28z+mHKZ4/w==";
     };
     dependencies = [
       sources."2-thenable-1.0.0"
@@ -79905,7 +79966,7 @@ in
       sources."@protobufjs/utf8-1.1.0"
       sources."@serverless/cli-1.5.2"
       sources."@serverless/component-metrics-1.0.8"
-      (sources."@serverless/components-2.34.7" // {
+      (sources."@serverless/components-2.34.9" // {
         dependencies = [
           sources."globby-10.0.2"
           sources."semver-7.3.2"
@@ -79916,11 +79977,11 @@ in
           sources."fs-extra-7.0.1"
         ];
       })
-      sources."@serverless/enterprise-plugin-3.7.1"
+      sources."@serverless/enterprise-plugin-3.8.2"
       sources."@serverless/event-mocks-1.1.1"
       sources."@serverless/inquirer-1.1.2"
-      sources."@serverless/platform-client-1.1.7"
-      (sources."@serverless/platform-client-china-1.0.34" // {
+      sources."@serverless/platform-client-1.1.8"
+      (sources."@serverless/platform-client-china-1.0.37" // {
         dependencies = [
           sources."archiver-4.0.2"
           sources."async-3.2.0"
@@ -79945,10 +80006,10 @@ in
       sources."@types/chalk-2.2.0"
       sources."@types/color-name-1.1.1"
       sources."@types/glob-7.1.3"
-      sources."@types/lodash-4.14.160"
+      sources."@types/lodash-4.14.161"
       sources."@types/long-4.0.1"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.6.0"
+      sources."@types/node-14.6.3"
       sources."@types/object-assign-4.0.30"
       sources."@types/request-2.48.5"
       sources."@types/request-promise-native-1.0.17"
@@ -80013,7 +80074,7 @@ in
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
-      (sources."aws-sdk-2.740.0" // {
+      (sources."aws-sdk-2.745.0" // {
         dependencies = [
           sources."buffer-4.9.2"
           sources."isarray-1.0.0"
@@ -80100,7 +80161,7 @@ in
           sources."kind-of-5.1.0"
         ];
       })
-      sources."cli-boxes-2.2.0"
+      sources."cli-boxes-2.2.1"
       (sources."cli-color-2.0.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
@@ -80152,7 +80213,7 @@ in
         ];
       })
       sources."dashdash-1.14.1"
-      sources."dayjs-1.8.34"
+      sources."dayjs-1.8.35"
       sources."debug-3.1.0"
       sources."decamelize-1.2.0"
       sources."decode-uri-component-0.2.0"
@@ -80164,7 +80225,7 @@ in
       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"
@@ -80608,7 +80669,7 @@ in
       sources."once-1.4.0"
       sources."one-time-0.0.4"
       sources."onetime-2.0.1"
-      (sources."open-7.2.0" // {
+      (sources."open-7.2.1" // {
         dependencies = [
           sources."is-docker-2.1.1"
         ];
@@ -80651,7 +80712,7 @@ in
       sources."proto-list-1.2.4"
       (sources."protobufjs-6.10.1" // {
         dependencies = [
-          sources."@types/node-13.13.15"
+          sources."@types/node-13.13.16"
         ];
       })
       sources."pseudomap-1.0.2"
@@ -80809,7 +80870,7 @@ in
           sources."string_decoder-1.1.1"
         ];
       })
-      sources."supports-color-7.1.0"
+      sources."supports-color-7.2.0"
       (sources."tabtab-3.0.2" // {
         dependencies = [
           sources."debug-4.2.0"
@@ -80867,7 +80928,7 @@ in
           sources."cli-boxes-1.0.0"
         ];
       })
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       (sources."url-0.10.3" // {
         dependencies = [
@@ -81128,7 +81189,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."type-is-1.6.18"
       sources."unpipe-1.0.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."utf8-2.0.0"
       sources."utils-merge-1.0.1"
       sources."uuid-3.4.0"
@@ -81546,10 +81607,10 @@ in
   snyk = nodeEnv.buildNodePackage {
     name = "snyk";
     packageName = "snyk";
-    version = "1.385.0";
+    version = "1.388.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/snyk/-/snyk-1.385.0.tgz";
-      sha512 = "sh+/Lt7764pWzuiXke+ICuBG88QLX9ZrCYmCJXJ9ZU0D9P+Uo25bVqE+OyJIhR4et6VRt60ZQim0iferz6K0mA==";
+      url = "https://registry.npmjs.org/snyk/-/snyk-1.388.0.tgz";
+      sha512 = "Oe4aDzp3iyBNpZCYxAxNWaN7l5aAB7dAVd3MLuJ3jdbJXcucMwc3MAfoZ91dmVb4SMO2qsOpiq6+qO6W8nuASA==";
     };
     dependencies = [
       sources."@arcanis/slice-ansi-1.0.2"
@@ -81557,7 +81618,7 @@ in
       sources."@nodelib/fs.stat-2.0.3"
       sources."@nodelib/fs.walk-1.2.4"
       sources."@sindresorhus/is-2.1.1"
-      (sources."@snyk/cli-interface-2.8.1" // {
+      (sources."@snyk/cli-interface-2.9.0" // {
         dependencies = [
           (sources."@snyk/dep-graph-1.19.0" // {
             dependencies = [
@@ -81605,17 +81666,15 @@ in
       sources."@types/color-name-1.1.1"
       sources."@types/debug-4.1.5"
       sources."@types/emscripten-1.39.4"
-      sources."@types/glob-7.1.3"
       sources."@types/hosted-git-info-2.7.0"
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/js-yaml-3.12.5"
       sources."@types/keyv-3.1.1"
-      sources."@types/minimatch-3.0.3"
-      sources."@types/node-13.13.15"
+      sources."@types/node-13.13.16"
       sources."@types/responselike-1.0.0"
       sources."@types/semver-5.5.0"
       sources."@types/xml2js-0.4.5"
-      (sources."@yarnpkg/core-2.1.1" // {
+      (sources."@yarnpkg/core-2.2.2" // {
         dependencies = [
           sources."ansi-styles-4.2.1"
           sources."camelcase-5.3.1"
@@ -81629,17 +81688,17 @@ in
           sources."semver-7.3.2"
           sources."shebang-command-2.0.0"
           sources."shebang-regex-3.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
           sources."which-2.0.2"
         ];
       })
-      sources."@yarnpkg/fslib-2.1.0"
+      sources."@yarnpkg/fslib-2.2.1"
       sources."@yarnpkg/json-proxy-2.1.0"
-      sources."@yarnpkg/libzip-2.1.0"
+      sources."@yarnpkg/libzip-2.2.0"
       sources."@yarnpkg/lockfile-1.1.0"
-      sources."@yarnpkg/parsers-2.1.0"
-      sources."@yarnpkg/pnp-2.1.0"
-      (sources."@yarnpkg/shell-2.1.0" // {
+      sources."@yarnpkg/parsers-2.2.0"
+      sources."@yarnpkg/pnp-2.2.1"
+      (sources."@yarnpkg/shell-2.2.0" // {
         dependencies = [
           sources."cross-spawn-7.0.3"
           sources."path-key-3.1.1"
@@ -81694,7 +81753,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."brace-expansion-1.1.11"
@@ -81713,13 +81772,12 @@ in
       sources."chalk-2.4.2"
       sources."chardet-0.7.0"
       sources."child-process-1.0.2"
-      sources."chownr-1.1.4"
       sources."ci-info-2.0.0"
-      sources."cli-boxes-2.2.0"
+      sources."cli-boxes-2.2.1"
       sources."cli-cursor-2.1.0"
       sources."cli-spinner-0.2.10"
       sources."cli-width-2.2.1"
-      sources."clipanion-2.4.4"
+      sources."clipanion-2.5.0"
       (sources."cliui-3.2.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
@@ -81797,7 +81855,6 @@ in
       sources."file-uri-to-path-1.0.0"
       sources."fill-range-7.0.1"
       sources."fs-constants-1.0.0"
-      sources."fs-minipass-1.2.7"
       sources."fs.realpath-1.0.0"
       (sources."ftp-0.3.10" // {
         dependencies = [
@@ -81815,7 +81872,7 @@ in
       sources."glob-7.1.6"
       sources."glob-parent-5.1.1"
       sources."global-dirs-2.0.1"
-      sources."globby-10.0.2"
+      sources."globby-11.0.1"
       sources."got-11.4.0"
       sources."graceful-fs-4.2.4"
       sources."grapheme-splitter-1.0.4"
@@ -81888,6 +81945,7 @@ in
       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"
@@ -81926,8 +81984,6 @@ in
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      sources."minipass-2.9.0"
-      sources."minizlib-1.3.3"
       sources."mkdirp-1.0.4"
       sources."ms-2.1.2"
       sources."mute-stream-0.0.7"
@@ -81948,7 +82004,7 @@ in
       sources."object.assign-4.1.0"
       sources."once-1.4.0"
       sources."onetime-2.0.1"
-      sources."open-7.2.0"
+      sources."open-7.2.1"
       sources."optionator-0.8.3"
       sources."os-locale-1.4.0"
       sources."os-name-3.1.0"
@@ -81990,7 +82046,7 @@ in
       sources."pluralize-7.0.0"
       sources."prelude-ls-1.1.2"
       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."progress-2.0.3"
       sources."promise-7.3.1"
@@ -82039,7 +82095,7 @@ in
       sources."slash-3.0.0"
       sources."smart-buffer-4.1.0"
       sources."snyk-config-3.1.0"
-      (sources."snyk-cpp-plugin-1.4.0" // {
+      (sources."snyk-cpp-plugin-1.4.1" // {
         dependencies = [
           sources."tslib-2.0.1"
         ];
@@ -82064,25 +82120,15 @@ in
           sources."tmp-0.2.0"
         ];
       })
-      (sources."snyk-gradle-plugin-3.5.1" // {
+      (sources."snyk-gradle-plugin-3.6.2" // {
         dependencies = [
-          (sources."@snyk/cli-interface-2.8.0" // {
-            dependencies = [
-              (sources."@snyk/dep-graph-1.19.0" // {
-                dependencies = [
-                  sources."tslib-2.0.1"
-                ];
-              })
-              sources."tslib-1.13.0"
-            ];
-          })
           sources."ansi-styles-4.2.1"
           sources."chalk-3.0.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
           sources."rimraf-3.0.2"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
           sources."tmp-0.2.1"
           sources."tslib-2.0.1"
         ];
@@ -82090,6 +82136,12 @@ in
       sources."snyk-module-3.1.0"
       (sources."snyk-mvn-plugin-2.19.1" // {
         dependencies = [
+          sources."@snyk/cli-interface-2.8.1"
+          (sources."@snyk/dep-graph-1.19.0" // {
+            dependencies = [
+              sources."tslib-2.0.1"
+            ];
+          })
           sources."tmp-0.1.0"
           sources."tslib-1.11.1"
         ];
@@ -82110,7 +82162,7 @@ in
       })
       (sources."snyk-policy-1.14.1" // {
         dependencies = [
-          sources."@types/node-6.14.10"
+          sources."@types/node-6.14.11"
           sources."hosted-git-info-2.8.8"
           (sources."snyk-module-2.1.0" // {
             dependencies = [
@@ -82127,7 +82179,7 @@ in
       })
       (sources."snyk-resolve-deps-4.4.0" // {
         dependencies = [
-          sources."@types/node-6.14.10"
+          sources."@types/node-6.14.11"
           sources."debug-3.2.6"
           sources."hosted-git-info-2.8.8"
           sources."lru-cache-4.1.5"
@@ -82186,11 +82238,6 @@ in
       sources."strip-eof-1.0.0"
       sources."strip-json-comments-2.0.1"
       sources."supports-color-5.5.0"
-      (sources."tar-4.4.13" // {
-        dependencies = [
-          sources."mkdirp-0.5.5"
-        ];
-      })
       (sources."tar-stream-2.1.3" // {
         dependencies = [
           sources."readable-stream-3.6.0"
@@ -82221,7 +82268,7 @@ in
       sources."type-check-0.3.2"
       sources."type-fest-0.8.1"
       sources."typedarray-to-buffer-3.1.5"
-      sources."underscore-1.10.2"
+      sources."underscore-1.11.0"
       sources."unique-string-2.0.0"
       sources."unpipe-1.0.0"
       (sources."update-notifier-4.1.1" // {
@@ -82231,7 +82278,7 @@ in
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
       sources."url-parse-lax-3.0.0"
@@ -82901,7 +82948,7 @@ in
       sources."multiserver-3.6.0"
       sources."multiserver-address-1.0.1"
       sources."multiserver-scopes-1.0.0"
-      sources."mutexify-1.3.0"
+      sources."mutexify-1.3.1"
       sources."muxrpc-6.5.0"
       sources."muxrpc-usage-2.1.0"
       sources."muxrpc-validation-3.0.2"
@@ -83182,7 +83229,7 @@ in
         ];
       })
       sources."snapdragon-util-3.0.1"
-      sources."socks-2.4.1"
+      sources."socks-2.4.2"
       sources."sodium-browserify-1.3.0"
       (sources."sodium-browserify-tweetnacl-0.2.6" // {
         dependencies = [
@@ -83209,7 +83256,7 @@ in
         ];
       })
       sources."ssb-ebt-5.6.7"
-      sources."ssb-friends-4.2.0"
+      sources."ssb-friends-4.2.1"
       (sources."ssb-gossip-1.1.1" // {
         dependencies = [
           sources."atomic-file-1.1.5"
@@ -83242,7 +83289,7 @@ in
       sources."ssb-ref-2.14.0"
       sources."ssb-replicate-1.3.2"
       sources."ssb-unix-socket-1.0.0"
-      sources."ssb-validate-4.1.1"
+      sources."ssb-validate-4.1.2"
       sources."ssb-ws-6.2.3"
       sources."stack-0.1.0"
       (sources."static-extend-0.1.2" // {
@@ -83392,7 +83439,7 @@ in
           sources."ws-1.1.5"
         ];
       })
-      sources."@types/babel-types-7.0.8"
+      sources."@types/babel-types-7.0.9"
       sources."@types/babylon-6.16.5"
       sources."accepts-1.3.7"
       sources."acorn-3.3.0"
@@ -83442,7 +83489,7 @@ in
       sources."async-1.5.2"
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
-      (sources."aws-sdk-2.740.0" // {
+      (sources."aws-sdk-2.745.0" // {
         dependencies = [
           sources."uuid-3.3.2"
         ];
@@ -83677,7 +83724,7 @@ in
       })
       (sources."http-proxy-1.18.1" // {
         dependencies = [
-          sources."eventemitter3-4.0.6"
+          sources."eventemitter3-4.0.7"
         ];
       })
       sources."http-signature-1.1.1"
@@ -84096,7 +84143,7 @@ in
       sources."uid2-0.0.3"
       sources."ultron-1.0.2"
       sources."unpipe-1.0.0"
-      (sources."uri-js-4.2.2" // {
+      (sources."uri-js-4.4.0" // {
         dependencies = [
           sources."punycode-2.1.1"
         ];
@@ -84859,7 +84906,7 @@ in
       sources."truncate-utf8-bytes-1.0.2"
       sources."type-is-1.6.18"
       sources."typedarray-0.0.6"
-      sources."uglify-js-3.10.2"
+      sources."uglify-js-3.10.3"
       sources."undefsafe-2.0.3"
       (sources."union-value-1.0.1" // {
         dependencies = [
@@ -85020,7 +85067,7 @@ in
       sources."tough-cookie-2.5.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-1.0.3"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
       sources."which-module-2.0.0"
@@ -85420,7 +85467,7 @@ in
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
           sources."type-fest-0.8.1"
         ];
       })
@@ -85443,7 +85490,7 @@ in
       sources."character-entities-legacy-1.1.4"
       sources."character-reference-invalid-1.1.4"
       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."collapse-white-space-1.0.6"
       sources."color-convert-1.9.3"
@@ -85545,7 +85592,7 @@ in
       sources."js-tokens-4.0.0"
       sources."js-yaml-3.14.0"
       sources."json-buffer-3.0.0"
-      sources."json-parse-even-better-errors-2.3.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"
@@ -85581,7 +85628,7 @@ in
           sources."vfile-location-3.1.0"
         ];
       })
-      sources."meow-7.1.0"
+      sources."meow-7.1.1"
       sources."mimic-response-1.0.1"
       sources."min-indent-1.0.1"
       sources."minimatch-3.0.4"
@@ -85764,7 +85811,7 @@ in
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
       sources."url-parse-lax-3.0.0"
@@ -86168,7 +86215,7 @@ in
       sources."@types/debug-4.1.5"
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/keyv-3.1.1"
-      sources."@types/node-14.6.0"
+      sources."@types/node-14.6.3"
       sources."@types/responselike-1.0.0"
       sources."abbrev-1.1.1"
       sources."abstract-logging-2.0.0"
@@ -86293,7 +86340,7 @@ in
       sources."escape-html-1.0.3"
       sources."escape-string-regexp-1.0.5"
       sources."etag-1.8.1"
-      sources."eventemitter3-4.0.6"
+      sources."eventemitter3-4.0.7"
       (sources."express-4.17.1" // {
         dependencies = [
           sources."safe-buffer-5.1.2"
@@ -86398,7 +86445,7 @@ in
       sources."mkdirp-0.5.5"
       sources."ms-2.0.0"
       sources."mute-stream-0.0.8"
-      (sources."needle-2.5.0" // {
+      (sources."needle-2.5.2" // {
         dependencies = [
           sources."debug-3.2.6"
           sources."ms-2.1.2"
@@ -86550,7 +86597,7 @@ in
       sources."strip-json-comments-2.0.1"
       sources."strip-outer-1.0.1"
       sources."strtok3-6.0.4"
-      sources."supports-color-7.1.0"
+      sources."supports-color-7.2.0"
       sources."tar-4.4.13"
       sources."tlds-1.208.0"
       sources."to-array-0.1.4"
@@ -86566,7 +86613,7 @@ in
       sources."ua-parser-js-0.7.21"
       sources."uc.micro-1.0.6"
       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"
@@ -86599,10 +86646,10 @@ in
   three = nodeEnv.buildNodePackage {
     name = "three";
     packageName = "three";
-    version = "0.120.0";
+    version = "0.120.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/three/-/three-0.120.0.tgz";
-      sha512 = "Swffpi3EAHWkmqC1MagKEzR5XgwkDiyeWI3M7vkGbBc0xhq2LcQmJj5DqBruLkrgcZQ+fM/+fSQBU1tDvggO4A==";
+      url = "https://registry.npmjs.org/three/-/three-0.120.1.tgz";
+      sha512 = "ktaCRFUR7JUZcKec+cBRz+oBex5pOVaJhrtxvFF2T7on53o9UkEux+/Nh1g/4zeb4t/pbxIFcADbn/ACu3LC1g==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -86734,7 +86781,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."uglify-js-3.4.10"
       sources."universalify-0.1.2"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."uuid-3.3.3"
       sources."verror-1.10.0"
       (sources."winston-1.1.2" // {
@@ -86964,7 +87011,7 @@ in
       sha512 = "N8E1X543CWEjg0/A70ZnA/kfAfAY/uogILsIuWBhHGxzv9kaJaj7/JCSwDiBH86CPEy37chSgW86KxVeYKsswQ==";
     };
     dependencies = [
-      sources."@types/node-6.14.10"
+      sources."@types/node-6.14.11"
       sources."ansi-0.3.1"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-2.2.1"
@@ -87084,10 +87131,10 @@ in
   uglify-js = nodeEnv.buildNodePackage {
     name = "uglify-js";
     packageName = "uglify-js";
-    version = "3.10.2";
+    version = "3.10.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.2.tgz";
-      sha512 = "GXCYNwqoo0MbLARghYjxVBxDCnU0tLqN7IPLdHHbibCb1NI5zBkU2EPcy/GaVxc0BtTjqyGXJCINe6JMR2Dpow==";
+      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.3.tgz";
+      sha512 = "Lh00i69Uf6G74mvYpHCI9KVVXLcHW/xu79YTvH7Mkc9zyKUeSPz0owW0dguj0Scavns3ZOh3wY63J0Zb97Za2g==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -87102,18 +87149,18 @@ in
   ungit = nodeEnv.buildNodePackage {
     name = "ungit";
     packageName = "ungit";
-    version = "1.5.9";
+    version = "1.5.10";
     src = fetchurl {
-      url = "https://registry.npmjs.org/ungit/-/ungit-1.5.9.tgz";
-      sha512 = "H+CLr9LrO0xZ0UbDz8K3KK//oBc3XDuj4he86Xnw/zjIPJlknOuiHdmPRYTlgo7/0zGEmvVgxZ+m3aqUMIpIhQ==";
+      url = "https://registry.npmjs.org/ungit/-/ungit-1.5.10.tgz";
+      sha512 = "WLrNg3hngoQJc3Ka1NxbWQMYjFJx013Xd9hNiRvHU1NUFMy8H5/5dT83Wh64gr2CJz5zNQlrqTkrfaWbwS/jEQ==";
     };
     dependencies = [
       sources."@dabh/diagnostics-2.0.2"
-      sources."@primer/octicons-10.0.0"
+      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-14.6.0"
+      sources."@types/node-14.6.3"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.7"
       sources."after-0.8.2"
@@ -87134,8 +87181,9 @@ in
       sources."base64id-2.0.0"
       sources."better-assert-1.0.2"
       sources."blob-0.0.5"
-      sources."blueimp-md5-2.16.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" // {
@@ -87218,7 +87266,7 @@ in
       sources."fs.realpath-1.0.0"
       sources."get-caller-file-2.0.5"
       sources."get-stream-4.1.0"
-      sources."getmac-5.11.0"
+      sources."getmac-5.15.0"
       sources."glob-7.1.6"
       sources."got-9.6.0"
       sources."has-binary2-1.0.3"
@@ -87290,7 +87338,7 @@ in
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
       sources."one-time-1.0.0"
-      sources."open-7.0.4"
+      sources."open-7.2.1"
       sources."p-cancelable-1.1.0"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
@@ -87409,7 +87457,7 @@ in
       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"
     ];
@@ -87507,6 +87555,57 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  vscode-json-languageserver-bin = nodeEnv.buildNodePackage {
+    name = "vscode-json-languageserver-bin";
+    packageName = "vscode-json-languageserver-bin";
+    version = "1.0.1";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/vscode-json-languageserver-bin/-/vscode-json-languageserver-bin-1.0.1.tgz";
+      sha512 = "WU+Ks0OEo1c4pgFUA4gIockhzlRqWqSRL2NXHOCtYhJnuIqfrNgSyECZC+nCMyn/CnzpPuQQjzC74GWlIRXnZQ==";
+    };
+    dependencies = [
+      sources."agent-base-4.3.0"
+      sources."debug-3.1.0"
+      sources."es6-promise-4.2.8"
+      sources."es6-promisify-5.0.0"
+      sources."http-proxy-agent-2.1.0"
+      sources."https-proxy-agent-2.2.4"
+      sources."jsonc-parser-1.0.3"
+      sources."ms-2.0.0"
+      (sources."request-light-0.2.5" // {
+        dependencies = [
+          sources."vscode-nls-4.1.2"
+        ];
+      })
+      (sources."vscode-json-languageservice-3.8.3" // {
+        dependencies = [
+          sources."jsonc-parser-2.3.0"
+          sources."vscode-nls-4.1.2"
+          sources."vscode-uri-2.1.2"
+        ];
+      })
+      sources."vscode-jsonrpc-3.5.0"
+      sources."vscode-languageserver-3.5.1"
+      (sources."vscode-languageserver-protocol-3.5.1" // {
+        dependencies = [
+          sources."vscode-languageserver-types-3.5.0"
+        ];
+      })
+      sources."vscode-languageserver-textdocument-1.0.1"
+      sources."vscode-languageserver-types-3.15.1"
+      sources."vscode-nls-2.0.2"
+      sources."vscode-uri-1.0.8"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "JSON language server";
+      homepage = "https://github.com/vscode-langservers/vscode-json-languageserver-bin#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   vue-cli = nodeEnv.buildNodePackage {
     name = "vue-cli";
     packageName = "vue-cli";
@@ -87537,7 +87636,7 @@ in
       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"
@@ -87760,12 +87859,12 @@ in
       sources."tslib-1.13.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."uglify-js-3.10.2"
+      sources."uglify-js-3.10.3"
       sources."uid-0.0.2"
       sources."unbzip2-stream-1.4.3"
       sources."unyield-0.0.1"
       sources."unzip-response-2.0.1"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."url-parse-lax-1.0.0"
       sources."url-to-options-1.0.1"
       sources."user-home-2.0.0"
@@ -87819,7 +87918,7 @@ in
       sources."@starptech/rehype-webparser-0.10.0"
       sources."@starptech/webparser-0.10.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@types/node-14.6.0"
+      sources."@types/node-14.6.3"
       sources."@types/unist-2.0.3"
       sources."@types/vfile-3.0.2"
       sources."@types/vfile-message-2.0.0"
@@ -87942,7 +88041,7 @@ in
           sources."kind-of-5.1.0"
         ];
       })
-      sources."cli-boxes-2.2.0"
+      sources."cli-boxes-2.2.1"
       sources."cli-cursor-2.1.0"
       sources."cli-width-2.2.1"
       sources."cliui-4.1.0"
@@ -88032,7 +88131,11 @@ in
           sources."estraverse-5.2.0"
         ];
       })
-      sources."esrecurse-4.2.1"
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
       sources."execa-0.7.0"
@@ -88658,7 +88761,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"
@@ -88770,7 +88873,7 @@ in
       sources."@szmarczak/http-timer-1.1.2"
       sources."@types/color-name-1.1.1"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.6.0"
+      sources."@types/node-14.6.3"
       sources."JSONSelect-0.2.1"
       sources."acorn-7.4.0"
       sources."acorn-jsx-5.2.0"
@@ -88839,7 +88942,7 @@ in
       sources."bcrypt-pbkdf-1.0.2"
       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 = [
@@ -88916,7 +89019,7 @@ in
           sources."kind-of-5.1.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"
@@ -89030,7 +89133,11 @@ in
           sources."estraverse-5.2.0"
         ];
       })
-      sources."esrecurse-4.2.1"
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
       sources."event-to-promise-0.8.0"
@@ -89543,7 +89650,7 @@ in
       })
       sources."strip-final-newline-2.0.0"
       sources."strip-json-comments-3.1.1"
-      sources."supports-color-7.1.0"
+      sources."supports-color-7.2.0"
       sources."table-5.4.6"
       (sources."tar-stream-1.6.2" // {
         dependencies = [
@@ -89601,7 +89708,7 @@ in
           sources."chalk-3.0.0"
         ];
       })
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       sources."url-parse-lax-3.0.0"
       sources."use-3.1.1"
@@ -89881,7 +89988,11 @@ in
       })
       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.2.0"
       sources."evp_bytestokey-1.0.3"
@@ -90193,7 +90304,7 @@ in
         ];
       })
       sources."upath-1.2.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       (sources."url-0.11.0" // {
         dependencies = [
@@ -90564,7 +90675,7 @@ in
     dependencies = [
       sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.6.0"
+      sources."@types/node-14.6.3"
       sources."accepts-1.3.7"
       sources."ajv-6.12.4"
       sources."ajv-errors-1.0.1"
@@ -90696,7 +90807,7 @@ in
       sources."es-to-primitive-1.2.1"
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
-      sources."eventemitter3-4.0.6"
+      sources."eventemitter3-4.0.7"
       sources."eventsource-1.0.7"
       sources."execa-1.0.0"
       (sources."expand-brackets-2.1.4" // {
@@ -91094,7 +91205,7 @@ in
         ];
       })
       sources."upath-1.2.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       (sources."url-0.11.0" // {
         dependencies = [
@@ -91143,17 +91254,17 @@ in
   copy-webpack-plugin = nodeEnv.buildNodePackage {
     name = "copy-webpack-plugin";
     packageName = "copy-webpack-plugin";
-    version = "6.0.3";
+    version = "6.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.0.3.tgz";
-      sha512 = "q5m6Vz4elsuyVEIUXr7wJdIdePWTubsqVbEMvf1WQnHGv0Q+9yPRu7MtYFPt+GBOXRav9lvIINifTQ1vSCs+eA==";
+      url = "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.1.0.tgz";
+      sha512 = "aWjIuLt1OVQxaDVffnt3bnGmLA8zGgAJaFwPA+a+QYVPh1vhIKjVfh3SbOFLV0kRPvGBITbw17n5CsmiBS4LQQ==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.3"
       sources."@nodelib/fs.stat-2.0.3"
       sources."@nodelib/fs.walk-1.2.4"
       sources."@npmcli/move-file-1.0.1"
-      sources."@types/json-schema-7.0.5"
+      sources."@types/json-schema-7.0.6"
       sources."aggregate-error-3.1.0"
       sources."ajv-6.12.4"
       sources."ajv-keywords-3.5.2"
@@ -91228,7 +91339,7 @@ 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-4.0.0"
       sources."slash-3.0.0"
@@ -91239,7 +91350,7 @@ in
       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-4.0.0"
@@ -91274,7 +91385,7 @@ in
       sources."@protobufjs/pool-1.1.0"
       sources."@protobufjs/utf8-1.1.0"
       sources."@types/long-4.0.1"
-      sources."@types/node-13.13.15"
+      sources."@types/node-13.13.16"
       sources."addr-to-ip-port-1.5.1"
       sources."airplay-js-0.3.0"
       sources."balanced-match-1.0.0"
@@ -91427,7 +91538,7 @@ in
       sources."nodebmc-0.0.7"
       sources."on-finished-2.3.0"
       sources."once-1.4.0"
-      sources."open-7.2.0"
+      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" // {
@@ -91602,10 +91713,10 @@ in
   yaml-language-server = nodeEnv.buildNodePackage {
     name = "yaml-language-server";
     packageName = "yaml-language-server";
-    version = "0.10.0";
+    version = "0.10.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-0.10.0.tgz";
-      sha512 = "d2/7eGgonEIRcnW9kK+k+ERG4gTOk5BXHr9KjTVv8gEarXKa62Kk+nyFE4AXgMDZ0LXTu8nTuN/AdboJiGN+pQ==";
+      url = "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-0.10.1.tgz";
+      sha512 = "R9SEt/nWTuZ8weB040L7yyaIVARlZ0ian1Kv6ptu4+xyVlIMobTZXaBTtgyhlMWqcQ3BpsAZu4q/2plRVG3tLQ==";
     };
     dependencies = [
       sources."agent-base-4.3.0"
@@ -91622,7 +91733,7 @@ in
       sources."prettier-2.0.5"
       sources."request-light-0.2.5"
       sources."sprintf-js-1.0.3"
-      sources."vscode-json-languageservice-3.8.1"
+      sources."vscode-json-languageservice-3.8.3"
       sources."vscode-jsonrpc-4.0.0"
       (sources."vscode-languageserver-5.2.1" // {
         dependencies = [
@@ -91653,15 +91764,14 @@ in
   yarn = nodeEnv.buildNodePackage {
     name = "yarn";
     packageName = "yarn";
-    version = "1.22.4";
+    version = "1.22.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/yarn/-/yarn-1.22.4.tgz";
-      sha512 = "oYM7hi/lIWm9bCoDMEWgffW8aiNZXCWeZ1/tGy0DWrN6vmzjCXIKu2Y21o8DYVBUtiktwKcNoxyGl/2iKLUNGA==";
+      url = "https://registry.npmjs.org/yarn/-/yarn-1.22.5.tgz";
+      sha512 = "5uzKXwdMc++mYktXqkfpNYT9tY8ViWegU58Hgbo+KXzrzzhEyP1Ip+BTtXloLrXNcNlxFJbLiFKGaS9vK9ym6Q==";
     };
     buildInputs = globalBuildInputs;
     meta = {
       description = "📦🐈 Fast, reliable, and secure dependency management.";
-      homepage = "https://github.com/yarnpkg/yarn#readme";
       license = "BSD-2-Clause";
     };
     production = true;
@@ -91687,7 +91797,7 @@ in
       sources."@types/color-name-1.1.1"
       sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.6.0"
+      sources."@types/node-14.6.3"
       sources."@types/normalize-package-data-2.4.0"
       sources."JSONStream-1.3.5"
       sources."aggregate-error-3.1.0"
@@ -92045,7 +92155,7 @@ in
       sources."jsbn-0.1.1"
       sources."json-buffer-3.0.0"
       sources."json-parse-better-errors-1.0.2"
-      sources."json-parse-even-better-errors-2.3.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"
@@ -92070,7 +92180,7 @@ in
         ];
       })
       sources."locate-path-2.0.0"
-      sources."locutus-2.0.11"
+      sources."locutus-2.0.12"
       sources."lodash-4.17.20"
       sources."lodash.debounce-4.0.8"
       sources."lodash.pad-4.5.1"
@@ -92221,7 +92331,7 @@ in
       sources."pkg-up-2.0.0"
       sources."posix-character-classes-0.1.1"
       sources."prepend-http-2.0.0"
-      sources."pretty-bytes-5.3.0"
+      sources."pretty-bytes-5.4.1"
       sources."process-nextick-args-2.0.1"
       sources."proto-list-1.2.4"
       sources."pseudomap-1.0.2"
@@ -92476,7 +92586,7 @@ in
       sources."untildify-3.0.3"
       sources."unzip-response-2.0.1"
       sources."update-notifier-2.5.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       sources."url-parse-lax-3.0.0"
       sources."url-to-options-1.0.1"
@@ -92563,12 +92673,12 @@ in
               sources."ansi-regex-3.0.0"
             ];
           })
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
           sources."type-fest-0.11.0"
           sources."which-2.0.2"
         ];
       })
-      (sources."yeoman-generator-4.11.0" // {
+      (sources."yeoman-generator-4.12.0" // {
         dependencies = [
           sources."debug-4.2.0"
           sources."diff-4.0.2"
diff --git a/pkgs/development/ocaml-modules/csexp/default.nix b/pkgs/development/ocaml-modules/csexp/default.nix
new file mode 100644
index 0000000000000..5127489070039
--- /dev/null
+++ b/pkgs/development/ocaml-modules/csexp/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchurl, buildDunePackage }:
+
+buildDunePackage rec {
+  pname = "csexp";
+  version = "1.3.1";
+
+  useDune2 = true;
+
+  minimumOCamlVersion = "4.08";
+
+  src = fetchurl {
+    url = "https://github.com/ocaml-dune/csexp/releases/download/${version}/csexp-${version}.tbz";
+    sha256 = "0maihbqbqq9bwr0r1cv51r3m4hrkx9cf5wnxcz7rjgn13lcc9s49";
+  };
+
+  postPatch = ''
+    substituteInPlace src/csexp.ml --replace Result.result Result.t
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/ocaml-dune/csexp";
+    description = "Minimal support for Canonical S-expressions";
+    license = licenses.mit;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/dune-action-plugin/default.nix b/pkgs/development/ocaml-modules/dune-action-plugin/default.nix
index fcb93aac799d9..65c55da6e3b34 100644
--- a/pkgs/development/ocaml-modules/dune-action-plugin/default.nix
+++ b/pkgs/development/ocaml-modules/dune-action-plugin/default.nix
@@ -2,7 +2,7 @@
 
 buildDunePackage rec {
   pname = "dune-action-plugin";
-  inherit (dune_2) src version;
+  inherit (dune_2) src version patches;
 
   useDune2 = true;
 
diff --git a/pkgs/development/ocaml-modules/dune-build-info/default.nix b/pkgs/development/ocaml-modules/dune-build-info/default.nix
index 3c828ebdcdb94..5d9f105782b49 100644
--- a/pkgs/development/ocaml-modules/dune-build-info/default.nix
+++ b/pkgs/development/ocaml-modules/dune-build-info/default.nix
@@ -2,7 +2,7 @@
 
 buildDunePackage rec {
   pname = "dune-build-info";
-  inherit (dune_2) src version;
+  inherit (dune_2) src version patches;
 
   useDune2 = true;
 
diff --git a/pkgs/development/ocaml-modules/dune-configurator/default.nix b/pkgs/development/ocaml-modules/dune-configurator/default.nix
index aa12ebc8d7969..16e365dd4f38e 100644
--- a/pkgs/development/ocaml-modules/dune-configurator/default.nix
+++ b/pkgs/development/ocaml-modules/dune-configurator/default.nix
@@ -1,15 +1,15 @@
-{ lib, buildDunePackage, dune_2, dune-private-libs }:
+{ lib, buildDunePackage, dune_2, csexp, result }:
 
 buildDunePackage rec {
   pname = "dune-configurator";
 
   useDune2 = true;
 
-  inherit (dune_2) src version;
+  inherit (dune_2) src version patches;
 
   dontAddPrefix = true;
 
-  propagatedBuildInputs = [ dune-private-libs ];
+  propagatedBuildInputs = [ csexp result ];
 
   meta = with lib; {
     description = "Helper library for gathering system configuration";
diff --git a/pkgs/development/ocaml-modules/dune-glob/default.nix b/pkgs/development/ocaml-modules/dune-glob/default.nix
index 34b79068c1155..c7c6f9be4ee0d 100644
--- a/pkgs/development/ocaml-modules/dune-glob/default.nix
+++ b/pkgs/development/ocaml-modules/dune-glob/default.nix
@@ -2,7 +2,7 @@
 
 buildDunePackage rec {
   pname = "dune-glob";
-  inherit (dune_2) src version;
+  inherit (dune_2) src version patches;
 
   useDune2 = true;
 
diff --git a/pkgs/development/ocaml-modules/dune-private-libs/default.nix b/pkgs/development/ocaml-modules/dune-private-libs/default.nix
index 9eb253f02e5bd..8a635efa3a599 100644
--- a/pkgs/development/ocaml-modules/dune-private-libs/default.nix
+++ b/pkgs/development/ocaml-modules/dune-private-libs/default.nix
@@ -5,7 +5,7 @@ buildDunePackage rec {
 
   useDune2 = true;
 
-  inherit (dune_2) src version;
+  inherit (dune_2) src version patches;
 
   minimumOCamlVersion = "4.08";
 
diff --git a/pkgs/development/ocaml-modules/fdkaac/default.nix b/pkgs/development/ocaml-modules/fdkaac/default.nix
new file mode 100644
index 0000000000000..d3915b65935e3
--- /dev/null
+++ b/pkgs/development/ocaml-modules/fdkaac/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchFromGitHub, buildDunePackage, dune-configurator
+, fdk_aac
+}:
+
+buildDunePackage rec {
+  pname = "fdkaac";
+  version = "0.3.2";
+  src = fetchFromGitHub {
+    owner = "savonet";
+    repo = "ocaml-fdkaac";
+    rev = version;
+    sha256 = "10i6hsjkrpw7zgx99zvvka3sapd7zy53k7z4b6khj9rdrbrgznv8";
+  };
+
+  useDune2 = true;
+
+  buildInputs = [ dune-configurator ];
+  propagatedBuildInputs = [ fdk_aac ];
+
+  meta = {
+    description = "OCaml binding for the fdk-aac library";
+    inherit (src.meta) homepage;
+    license = lib.licenses.gpl2Only;
+    maintainers = [ lib.maintainers.vbgl ];
+  };
+
+}
diff --git a/pkgs/development/ocaml-modules/mirage-crypto/default.nix b/pkgs/development/ocaml-modules/mirage-crypto/default.nix
index 71c044a8cc120..e178e066a384b 100644
--- a/pkgs/development/ocaml-modules/mirage-crypto/default.nix
+++ b/pkgs/development/ocaml-modules/mirage-crypto/default.nix
@@ -4,11 +4,11 @@ buildDunePackage rec {
   minimumOCamlVersion = "4.08";
 
   pname = "mirage-crypto";
-  version = "0.8.4";
+  version = "0.8.5";
 
   src = fetchurl {
     url = "https://github.com/mirage/mirage-crypto/releases/download/v${version}/mirage-crypto-v${version}.tbz";
-    sha256 = "1w09wllls4rp1abq0awffxf69dn0xciy6hsqz413ing5r151wjxr";
+    sha256 = "0l6q0z5ghhy0djfscb2i2xg4dpmxs4xkwh16kc473cmb4hsxsmyk";
   };
 
   useDune2 = true;
diff --git a/pkgs/development/ocaml-modules/mirage-stack/default.nix b/pkgs/development/ocaml-modules/mirage-stack/default.nix
index 64168716399d8..528ea68d98517 100644
--- a/pkgs/development/ocaml-modules/mirage-stack/default.nix
+++ b/pkgs/development/ocaml-modules/mirage-stack/default.nix
@@ -2,11 +2,11 @@
 
 buildDunePackage rec {
   pname = "mirage-stack";
-  version = "2.0.1";
+  version = "2.1.0";
 
   src = fetchurl {
     url = "https://github.com/mirage/mirage-stack/releases/download/v${version}/mirage-stack-v${version}.tbz";
-    sha256 = "1xdy59bxnki1r0jwm3s8fwarhhbxr0lsqqiag5b1j41hciiqp9jq";
+    sha256 = "1y110i4kjr03b0ji3q5h0bi3n3q8mdkfflb3fyq5rvpi5l45vvdb";
   };
 
   propagatedBuildInputs = [ mirage-protocols ];
diff --git a/pkgs/development/ocaml-modules/piqi-ocaml/default.nix b/pkgs/development/ocaml-modules/piqi-ocaml/default.nix
index 731a5303ff513..39201d0570b34 100644
--- a/pkgs/development/ocaml-modules/piqi-ocaml/default.nix
+++ b/pkgs/development/ocaml-modules/piqi-ocaml/default.nix
@@ -1,20 +1,18 @@
-{ stdenv, fetchurl, fetchpatch, ocaml, findlib, piqi, camlp4 }:
+{ stdenv, fetchFromGitHub, fetchpatch, ocaml, findlib, piqi, stdlib-shims }:
 
 stdenv.mkDerivation rec {
-  version = "0.7.5";
+  version = "0.7.7";
   pname = "piqi-ocaml";
+  name = "ocaml${ocaml.version}-${pname}-${version}";
 
-  src = fetchurl {
-    url = "https://github.com/alavrik/piqi-ocaml/archive/v${version}.tar.gz";
-    sha256 = "0ngz6y8i98i5v2ma8nk6mc83pdsmf2z0ks7m3xi6clfg3zqbddrv";
+  src = fetchFromGitHub {
+    owner = "alavrik";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1913jpsb8mvqi8609j4g4sm5jhg50dq0xqxgy8nmvknfryyc89nm";
   };
 
-  patches = [ (fetchpatch {
-    url = "https://github.com/alavrik/piqi-ocaml/commit/336e8fdb84e77f4105e9bbb5ab545b8729101308.patch";
-    sha256 = "071s4xjyr6xx95v6az2lbl2igc87n7z5jqnnbhfq2pidrxakd0la";
-  })];
-
-  buildInputs = [ ocaml findlib piqi camlp4 ];
+  buildInputs = [ ocaml findlib piqi stdlib-shims ];
 
   createFindlibDestdir = true;
 
diff --git a/pkgs/development/ocaml-modules/re/default.nix b/pkgs/development/ocaml-modules/re/default.nix
index 2031c469b29ce..8881821490ab1 100644
--- a/pkgs/development/ocaml-modules/re/default.nix
+++ b/pkgs/development/ocaml-modules/re/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchzip, buildDunePackage, ounit, seq }:
+{ lib, fetchzip, buildDunePackage, ocaml, ounit, seq }:
 
 buildDunePackage rec {
   pname = "re";
@@ -11,14 +11,14 @@ buildDunePackage rec {
     sha256 = "07ycb103mr4mrkxfd63cwlsn023xvcjp0ra0k7n2gwrg0mwxmfss";
   };
 
-  buildInputs = [ ounit ];
+  buildInputs = lib.optional doCheck ounit;
   propagatedBuildInputs = [ seq ];
-  doCheck = true;
+  doCheck = lib.versionAtLeast ocaml.version "4.04";
 
   meta = {
     homepage = "https://github.com/ocaml/ocaml-re";
     description = "Pure OCaml regular expressions, with support for Perl and POSIX-style strings";
-    license = stdenv.lib.licenses.lgpl2;
-    maintainers = with stdenv.lib.maintainers; [ vbgl ];
+    license = lib.licenses.lgpl2;
+    maintainers = with lib.maintainers; [ vbgl ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/srt/default.nix b/pkgs/development/ocaml-modules/srt/default.nix
new file mode 100644
index 0000000000000..7f0897ae66264
--- /dev/null
+++ b/pkgs/development/ocaml-modules/srt/default.nix
@@ -0,0 +1,30 @@
+{ lib, buildDunePackage, fetchFromGitHub
+, dune-configurator
+, posix-socket
+, srt
+}:
+
+buildDunePackage rec {
+  pname = "srt";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "savonet";
+    repo = "ocaml-srt";
+    rev = "v${version}";
+    sha256 = "0xh89w4j7lljvpy2n08x6m9kw88f82snmzf23kp0gw637sjnrj6f";
+  };
+
+  useDune2 = true;
+
+  buildInputs = [ dune-configurator ];
+  propagatedBuildInputs = [ posix-socket srt ];
+
+  meta = {
+    description = "OCaml bindings for the libsrt library";
+    license = lib.licenses.gpl2Only;
+    inherit (src.meta) homepage;
+    maintainers = [ lib.maintainers.vbgl ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/apsw/default.nix b/pkgs/development/python-modules/apsw/default.nix
index 48aa68f30540f..1f314dc7408aa 100644
--- a/pkgs/development/python-modules/apsw/default.nix
+++ b/pkgs/development/python-modules/apsw/default.nix
@@ -3,7 +3,7 @@
 
 buildPythonPackage rec {
   pname = "apsw";
-  version = "3.32.2-r1";
+  version = "3.33.0-r1";
 
   disabled = isPyPy;
 
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     owner = "rogerbinns";
     repo = "apsw";
     rev = version;
-    sha256 = "0gwhcvklrgng8gg6in42h0aj2bsq522bhhs2pp3cqdrmypkjdm59";
+    sha256 = "05mxcw1382xx22285fnv92xblqby3adfrvvalaw4dc6rzsn6kcan";
   };
 
   buildInputs = [ sqlite ];
diff --git a/pkgs/development/python-modules/asgi-csrf/default.nix b/pkgs/development/python-modules/asgi-csrf/default.nix
new file mode 100644
index 0000000000000..12c94aee15737
--- /dev/null
+++ b/pkgs/development/python-modules/asgi-csrf/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, buildPythonPackage, isPy27, fetchFromGitHub, itsdangerous, python-multipart
+, pytest, starlette, httpx, pytest-asyncio }:
+
+buildPythonPackage rec {
+  version = "0.7";
+  pname = "asgi-csrf";
+  disabled = isPy27;
+
+  # PyPI tarball doesn't include tests directory
+  src = fetchFromGitHub {
+    owner = "simonw";
+    repo = pname;
+    rev = version;
+    sha256 = "1vf4lh007790836cp3hd6wf8wsgj045dcg0w1cm335p08zz6j4k7";
+  };
+
+  propagatedBuildInputs = [ itsdangerous python-multipart ];
+
+  checkInputs = [ pytest starlette httpx pytest-asyncio ];
+  checkPhase = ''
+    pytest test_asgi_csrf.py
+  '';
+  pythonImportsCheck = [ "asgi_csrf" ];
+
+  meta = with stdenv.lib; {
+    description = "ASGI middleware for protecting against CSRF attacks";
+    license = licenses.asl20;
+    homepage = "https://github.com/simonw/asgi-csrf";
+    maintainers = [ maintainers.ris ];
+  };
+}
diff --git a/pkgs/development/python-modules/azure-mgmt-appconfiguration/default.nix b/pkgs/development/python-modules/azure-mgmt-appconfiguration/default.nix
index e5879bd4e8c3d..3c019cdf31ea9 100644
--- a/pkgs/development/python-modules/azure-mgmt-appconfiguration/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-appconfiguration/default.nix
@@ -5,13 +5,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.5.0";
+  version = "0.6.0";
   pname = "azure-mgmt-appconfiguration";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "211527511d7616a383cc196956eaf2b7ee016f2367d367924b3715f2a41106da";
+    sha256 = "fe6e216ce7293219b7d8d1cbcca7cf2f4511f134c2bf0b3455078bf086436c5f";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix b/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
index 8e186da6d880a..603bd81ad1cbc 100644
--- a/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-containerservice";
-  version = "9.2.0";
+  version = "9.3.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "e7904b60c42a153b64b1604f3c698602686b38787bebdaed6e808cd43b6e5967";
+    sha256 = "04ca071d1d6af854b6a5947c5aed803924ccbd2ea0d240285b6fa68dc4ab75a9";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix b/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix
index fd6cd26c7c6c6..a4b1679b250a8 100644
--- a/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix
@@ -7,6 +7,7 @@
 , msrestazure
 , azure-common
 , azure-mgmt-nspkg
+, azure-mgmt-core
 }:
 
 buildPythonPackage rec {
@@ -23,6 +24,7 @@ buildPythonPackage rec {
     msrest
     msrestazure
     azure-common
+    azure-mgmt-core
     azure-mgmt-nspkg
   ];
 
diff --git a/pkgs/development/python-modules/azure-mgmt-reservations/default.nix b/pkgs/development/python-modules/azure-mgmt-reservations/default.nix
index 3873f08e3ce29..d5e4226b5cccf 100644
--- a/pkgs/development/python-modules/azure-mgmt-reservations/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-reservations/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-reservations";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "f65c1985a47e0ac55e7d5d9cc1bd5e95335a111566edc289d460aa2bc8f80991";
+    sha256 = "b12318392e6f5100246c60de88879e24b15db104d00f9704a4ff51e7344594f1";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-storage/default.nix b/pkgs/development/python-modules/azure-mgmt-storage/default.nix
index 8e101ef051ac0..b6cd9ca5c8ad9 100644
--- a/pkgs/development/python-modules/azure-mgmt-storage/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-storage/default.nix
@@ -7,13 +7,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "11.1.0";
+  version = "11.2.0";
   pname = "azure-mgmt-storage";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "ef23587c1b6dc0866ebf0e91e83ba05d7f7e4fea7951b704781b9cd9f5f27f1c";
+    sha256 = "fc8e3cbf3c58cab98d9b2218c774dae2cc90b693f5ab5a24a7a959febe6c0528";
   };
 
   propagatedBuildInputs = [ azure-mgmt-common ];
diff --git a/pkgs/development/python-modules/azure-mgmt-synapse/default.nix b/pkgs/development/python-modules/azure-mgmt-synapse/default.nix
new file mode 100644
index 0000000000000..ffdb6eb537886
--- /dev/null
+++ b/pkgs/development/python-modules/azure-mgmt-synapse/default.nix
@@ -0,0 +1,32 @@
+{ lib, buildPythonPackage, fetchPypi, pythonOlder
+, azure-common
+, msrest
+, msrestazure
+}:
+
+buildPythonPackage rec {
+  pname = "azure-mgmt-synapse";
+  version = "0.3.0";
+  disabled = pythonOlder "3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0sa12s5af9xl1wnblilswxc6ydr2anm9an000iz3ks54pydby2vy";
+    extension = "zip";
+  };
+
+  propagatedBuildInputs = [
+    azure-common
+    msrest
+    msrestazure
+  ];
+
+  pythonImportsCheck = [ "azure.mgmt.synapse" ];
+
+  meta = with lib; {
+    description = "Azure python SDK";
+    homepage = "https://github.com/Azure/azure-sdk-for-python/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/pkgs/development/python-modules/azure-multiapi-storage/default.nix b/pkgs/development/python-modules/azure-multiapi-storage/default.nix
index 2d1ff4c291647..18e4a12d3b365 100644
--- a/pkgs/development/python-modules/azure-multiapi-storage/default.nix
+++ b/pkgs/development/python-modules/azure-multiapi-storage/default.nix
@@ -8,13 +8,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.3.5";
+  version = "0.4.1";
   pname = "azure-multiapi-storage";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "71c238c785786a159b3ffd587a5e7fa1d9a517b66b592ae277fed73a9fbfa2b0";
+    sha256 = "0h7bzaqwyl3j9xqzjbnwxp59kmg6shxk76pml9kvvqbwsq9w6fx3";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-synapse-accesscontrol/default.nix b/pkgs/development/python-modules/azure-synapse-accesscontrol/default.nix
new file mode 100644
index 0000000000000..d9d0941abde08
--- /dev/null
+++ b/pkgs/development/python-modules/azure-synapse-accesscontrol/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildPythonPackage, fetchPypi
+, azure-common
+, azure-core
+, msrest
+}:
+
+buildPythonPackage rec {
+  pname = "azure-synapse-accesscontrol";
+  version = "0.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1rsdqrhrgy09kbw6c7krb4hlaxs1ldb6lilwrbxgp3zqybxxnh5b";
+    extension = "zip";
+  };
+
+  propagatedBuildInputs = [
+    azure-common
+    azure-core
+    msrest
+  ];
+
+  pythonImportsCheck = [ "azure.synapse.accesscontrol" ];
+
+  meta = with lib; {
+    description = "Azure python SDK";
+    homepage = "https://github.com/Azure/azure-sdk-for-python/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/pkgs/development/python-modules/azure-synapse-spark/default.nix b/pkgs/development/python-modules/azure-synapse-spark/default.nix
new file mode 100644
index 0000000000000..bf75e987bdcbd
--- /dev/null
+++ b/pkgs/development/python-modules/azure-synapse-spark/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildPythonPackage, fetchPypi
+, azure-common
+, azure-core
+, msrest
+}:
+
+buildPythonPackage rec {
+  pname = "azure-synapse-spark";
+  version = "0.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1qijqp6llshqas422lnqvpv45iv99n7f13v86znql40y3jp5n3ir";
+    extension = "zip";
+  };
+
+  propagatedBuildInputs = [
+    azure-common
+    azure-core
+    msrest
+  ];
+
+  pythonImportsCheck = [ "azure.synapse.spark" ];
+
+  meta = with lib; {
+    description = "Azure python SDK";
+    homepage = "https://github.com/Azure/azure-sdk-for-python/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/pkgs/development/python-modules/black-macchiato/default.nix b/pkgs/development/python-modules/black-macchiato/default.nix
new file mode 100644
index 0000000000000..130d07d61ff46
--- /dev/null
+++ b/pkgs/development/python-modules/black-macchiato/default.nix
@@ -0,0 +1,35 @@
+{ stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  black
+}:
+
+buildPythonPackage rec {
+  pname = "black-macchiato";
+  version = "1.3.0";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner  = "wbolster";
+    repo   = pname;
+    rev    = version;
+    sha256 = "0lc9w50nlbmlzj44krk7kxcia202fhybbnwfh77xixlc7vb4rayl";
+  };
+
+  propagatedBuildInputs = [ black ];
+
+  checkInputs = [ pytestCheckHook black ];
+
+  pythonImportsCheck = [ "black" ];
+
+  meta = with stdenv.lib; {
+    description = "This is a small utility built on top of the black Python code formatter to enable formatting of partial files";
+    homepage    = "https://github.com/wbolster/black-macchiato";
+    license     = licenses.bsd3;
+    maintainers = with maintainers; [ jperras ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/catalogue/default.nix b/pkgs/development/python-modules/catalogue/default.nix
index eb1aec37c634c..608d9dc426987 100644
--- a/pkgs/development/python-modules/catalogue/default.nix
+++ b/pkgs/development/python-modules/catalogue/default.nix
@@ -2,26 +2,30 @@
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
+, pytestCheckHook
 , importlib-metadata
 }:
 
 buildPythonPackage rec {
   pname = "catalogue";
-  version = "2.0.0";
+  version = "2.0.1";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "34f8416ec5e7ed08e55c10414416e67c3f4d66edf83bc67320c3290775293816";
+    sha256 = "0d01077dbfca7aa53f3ef4adecccce636bce4f82e5b52237703ab2f56478e56e";
   };
 
   propagatedBuildInputs = [ importlib-metadata ];
 
+  checkInputs = [ pytestCheckHook ];
+
   meta = with stdenv.lib; {
     description = "Tiny library for adding function or object registries";
     homepage = "https://github.com/explosion/catalogue";
+    changelog = "https://github.com/explosion/catalogue/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ danieldk ];
-    };
+  };
 }
diff --git a/pkgs/development/python-modules/certbot/default.nix b/pkgs/development/python-modules/certbot/default.nix
index 79e5c3288b7fd..07ceea731b9b4 100644
--- a/pkgs/development/python-modules/certbot/default.nix
+++ b/pkgs/development/python-modules/certbot/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "certbot";
-  version = "1.6.0";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "1y0m5qm853i6pcpb2mrf8kjkr9wr80mdrx1qmck38ayvr2v2p5lc";
+    sha256 = "1fx29gsa3glwh0ik5k2gynwdz6i3ckq9aakf6ip92n3qyh6l08a8";
   };
 
   sourceRoot = "source/${pname}";
diff --git a/pkgs/development/python-modules/cirq/default.nix b/pkgs/development/python-modules/cirq/default.nix
index 83fc0d371c1d1..21f9c5446c392 100644
--- a/pkgs/development/python-modules/cirq/default.nix
+++ b/pkgs/development/python-modules/cirq/default.nix
@@ -48,6 +48,15 @@ buildPythonPackage rec {
     })
   ];
 
+  postPatch = ''
+    substituteInPlace requirements.txt \
+      --replace "freezegun~=0.3.15" "freezegun" \
+      --replace "matplotlib~=3.0" "matplotlib" \
+      --replace "networkx~=2.4" "networkx" \
+      --replace "numpy~=1.16, < 1.19" "numpy" \
+      --replace "protobuf~=3.12.0" "protobuf"
+  '';
+
   propagatedBuildInputs = [
     freezegun
     google_api_core
@@ -64,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
@@ -78,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"
@@ -97,6 +100,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "A framework for creating, editing, and invoking Noisy Intermediate Scale Quantum (NISQ) circuits.";
     homepage = "https://github.com/quantumlib/cirq";
+    changelog = "https://github.com/quantumlib/Cirq/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ drewrisinger ];
   };
diff --git a/pkgs/development/python-modules/credstash/default.nix b/pkgs/development/python-modules/credstash/default.nix
index 07547b280f5b2..1abd3f4ed2037 100644
--- a/pkgs/development/python-modules/credstash/default.nix
+++ b/pkgs/development/python-modules/credstash/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, buildPythonPackage, fetchPypi, cryptography, boto3, pyyaml, docutils, nose }:
+{ stdenv, buildPythonPackage, fetchPypi, cryptography, boto3, pyyaml, docutils, nose
+, fetchpatch
+}:
 
 buildPythonPackage rec {
   pname = "credstash";
@@ -9,6 +11,12 @@ buildPythonPackage rec {
     sha256 = "6c04e8734ef556ab459018da142dd0b244093ef176b3be5583e582e9a797a120";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/fugue/credstash/commit/9c02ee43ed6e37596cafbca2fe80c532ec19d2d8.patch";
+      sha256 = "dlybrpfLK+PqwWWhH9iXgXHYysZGmcZAFGWNOwsG0xA=";
+    })
+  ];
   # The install phase puts an executable and a copy of the library it imports in
   # bin/credstash and bin/credstash.py, despite the fact that the library is also
   # installed to lib/python<version>/site-packages/credstash.py.
diff --git a/pkgs/development/python-modules/databricks-connect/default.nix b/pkgs/development/python-modules/databricks-connect/default.nix
new file mode 100644
index 0000000000000..59ebd4ef1142f
--- /dev/null
+++ b/pkgs/development/python-modules/databricks-connect/default.nix
@@ -0,0 +1,32 @@
+{ lib, jdk, buildPythonPackage, fetchPypi, six, py4j }:
+
+buildPythonPackage rec {
+  pname = "databricks-connect";
+  version = "7.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "996a9d0f271f6c7edbd2d85b2efb6ff4e58d15222e80f87ca17fdbf224e17056";
+  };
+
+  sourceRoot = ".";
+
+  propagatedBuildInputs = [ py4j six jdk ];
+
+  # requires network access
+  doCheck = false;
+
+  preFixup = ''
+      substituteInPlace "$out/bin/find-spark-home" \
+      --replace find_spark_home.py .find_spark_home.py-wrapped
+  '';
+
+  pythonImportsCheck = [ "pyspark" "six" "py4j" ];
+
+  meta = with lib; {
+    description = "Client for connecting to remote Databricks clusters";
+    homepage = "https://pypi.org/project/databricks-connect";
+    license = licenses.databricks;
+    maintainers = with maintainers; [ kfollesdal ];
+  };
+}
diff --git a/pkgs/development/python-modules/datasette/default.nix b/pkgs/development/python-modules/datasette/default.nix
index b5d9c3dfad6a8..5fa42c861ed91 100644
--- a/pkgs/development/python-modules/datasette/default.nix
+++ b/pkgs/development/python-modules/datasette/default.nix
@@ -2,19 +2,22 @@
 , buildPythonPackage
 , fetchFromGitHub
 , aiofiles
+, asgi-csrf
 , click
 , click-default-group
 , janus
 , jinja2
 , hupper
+, mergedeep
 , pint
 , pluggy
+, python-baseconv
+, pyyaml
 , uvicorn
 # Check Inputs
 , pytestCheckHook
 , pytestrunner
 , pytest-asyncio
-, black
 , aiohttp
 , beautifulsoup4
 , asgiref
@@ -23,26 +26,30 @@
 
 buildPythonPackage rec {
   pname = "datasette";
-  version = "0.39";
+  version = "0.46";
 
   src = fetchFromGitHub {
     owner = "simonw";
     repo = "datasette";
     rev = version;
-    sha256 = "07d46512bc9sdan9lv39sf1bwlf7vf1bfhcsm825vk7sv7g9kczd";
+    sha256 = "0g4dfq5ykifa9628cb4i7gvx98p8hvb99gzfxk3bkvq1v9p4kcqq";
   };
 
   nativeBuildInputs = [ pytestrunner ];
 
   propagatedBuildInputs = [
     aiofiles
+    asgi-csrf
     click
     click-default-group
     janus
     jinja2
     hupper
+    mergedeep
     pint
     pluggy
+    python-baseconv
+    pyyaml
     uvicorn
     setuptools
   ];
@@ -52,7 +59,6 @@ buildPythonPackage rec {
     pytest-asyncio
     aiohttp
     beautifulsoup4
-    black
     asgiref
   ];
 
@@ -60,22 +66,17 @@ buildPythonPackage rec {
     substituteInPlace setup.py \
       --replace "click~=7.1.1" "click" \
       --replace "click-default-group~=1.2.2" "click-default-group" \
-      --replace "Jinja2~=2.10.3" "Jinja2" \
       --replace "hupper~=1.9" "hupper" \
       --replace "pint~=0.9" "pint" \
-      --replace "pluggy~=0.13.0" "pint" \
+      --replace "pluggy~=0.13.0" "pluggy" \
       --replace "uvicorn~=0.11" "uvicorn" \
-      --replace "aiofiles~=0.4.0" "aiofiles" \
-      --replace "janus~=0.4.0" "janus" \
       --replace "PyYAML~=5.3" "PyYAML"
   '';
 
-  # many tests require network access
+  # test_html is very slow
   # test_black fails on darwin
   dontUseSetuptoolsCheck = true;
   pytestFlagsArray = [
-    "--ignore=tests/test_api.py"
-    "--ignore=tests/test_csv.py"
     "--ignore=tests/test_html.py"
     "--ignore=tests/test_docs.py"
     "--ignore=tests/test_black.py"
@@ -84,6 +85,7 @@ buildPythonPackage rec {
     "facet"
     "_invalid_database" # checks error message when connecting to invalid database
   ];
+  pythonImportsCheck = [ "datasette" ];
 
   meta = with lib; {
     description = "An instant JSON API for your SQLite databases";
diff --git a/pkgs/development/python-modules/django-maintenance-mode/default.nix b/pkgs/development/python-modules/django-maintenance-mode/default.nix
new file mode 100644
index 0000000000000..2e433aa5d4590
--- /dev/null
+++ b/pkgs/development/python-modules/django-maintenance-mode/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, buildPythonPackage, pytest, django }:
+
+buildPythonPackage rec {
+  pname = "django-maintenance-mode";
+  version = "0.14.0";
+
+  src = fetchFromGitHub {
+    owner = "fabiocaccamo";
+    repo = pname;
+    rev = version;
+    sha256 = "1k06fhqd8wyrkp795x5j2r328l2phqgg1m1qm7fh4l2qrha43aw6";
+  };
+
+  checkInputs = [ pytest ];
+
+  propagatedBuildInputs = [ django ];
+
+  meta = with stdenv.lib; {
+    description = "Shows a 503 error page when maintenance-mode is on";
+    homepage = "https://github.com/fabiocaccamo/django-maintenance-mode";
+    maintainers = with maintainers; [ mrmebelman ];
+    license = licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/python-modules/dlib/default.nix b/pkgs/development/python-modules/dlib/default.nix
index a57d830755138..027500ff2abfa 100644
--- a/pkgs/development/python-modules/dlib/default.nix
+++ b/pkgs/development/python-modules/dlib/default.nix
@@ -1,4 +1,6 @@
-{ buildPythonPackage, dlib, python, pytest, more-itertools, avxSupport ? true, lib }:
+{ buildPythonPackage, stdenv, lib, dlib, python, pytest, more-itertools
+, avxSupport ? stdenv.hostPlatform.avxSupport
+}:
 
 buildPythonPackage {
   inherit (dlib) name src nativeBuildInputs buildInputs meta;
diff --git a/pkgs/development/python-modules/dnspython/1.nix b/pkgs/development/python-modules/dnspython/1.nix
new file mode 100644
index 0000000000000..d4ebaf82b3d2c
--- /dev/null
+++ b/pkgs/development/python-modules/dnspython/1.nix
@@ -0,0 +1,22 @@
+{ buildPythonPackage, fetchPypi, lib, pythonOlder }:
+
+buildPythonPackage rec {
+  pname = "dnspython";
+  version = "1.16.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "36c5e8e38d4369a08b6780b7f27d790a292b2b08eea01607865bf0936c558e01";
+  };
+
+  # needs networking for some tests
+  doCheck = false;
+
+  meta = {
+    description = "A DNS toolkit for Python 3.x";
+    homepage = "http://www.dnspython.org";
+    # BSD-like, check http://www.dnspython.org/LICENSE for details
+    license = lib.licenses.free;
+  };
+}
diff --git a/pkgs/development/python-modules/dominate/default.nix b/pkgs/development/python-modules/dominate/default.nix
index 3881bf2dd864d..7418eb4f95220 100644
--- a/pkgs/development/python-modules/dominate/default.nix
+++ b/pkgs/development/python-modules/dominate/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "dominate";
-  version = "2.5.1";
+  version = "2.5.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0y4xzch6kwzddwz6pmk8cd09r3dpkxm1bh4q1byhm37a0lb4h1cv";
+    sha256 = "456facce7a7ccfd9363948109cf1e978d48c58e46a46b01c71b4c0adc73b1928";
   };
 
   doCheck = !isPy3k;
diff --git a/pkgs/development/python-modules/elasticsearch/default.nix b/pkgs/development/python-modules/elasticsearch/default.nix
index e060b819a55ed..38522b233d4c0 100644
--- a/pkgs/development/python-modules/elasticsearch/default.nix
+++ b/pkgs/development/python-modules/elasticsearch/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage (rec {
   pname = "elasticsearch";
-  version = "7.8.1";
+  version = "7.9.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "92b534931865a186906873f75ae0b91808ff5036b0f2b9269eb5f6dc09644b55";
+    sha256 = "5e08776fbb30c6e92408c7fa8c37d939210d291475ae2f364f0497975918b6fe";
   };
 
   # Check is disabled because running them destroy the content of the local cluster!
diff --git a/pkgs/development/python-modules/ftputil/default.nix b/pkgs/development/python-modules/ftputil/default.nix
index 7ca97cba8831e..fb1bf7549fccd 100644
--- a/pkgs/development/python-modules/ftputil/default.nix
+++ b/pkgs/development/python-modules/ftputil/default.nix
@@ -1,15 +1,16 @@
-{ lib, buildPythonPackage, fetchPypi, pytest }:
+{ lib, buildPythonPackage, fetchPypi, pythonOlder, pytest, freezegun }:
 
 buildPythonPackage rec {
   version = "4.0.0";
   pname = "ftputil";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "d494c47f24fd3f8fbe92d40d90e0902c0e04288f200688af2b16d6b46fe441e1";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest freezegun ];
 
   checkPhase = ''
     touch Makefile
diff --git a/pkgs/development/python-modules/howdoi/default.nix b/pkgs/development/python-modules/howdoi/default.nix
index 93db5f48e40b7..83f340fc8d814 100644
--- a/pkgs/development/python-modules/howdoi/default.nix
+++ b/pkgs/development/python-modules/howdoi/default.nix
@@ -2,27 +2,37 @@
 , buildPythonPackage
 , fetchPypi
 , six
-, requests-cache
 , pygments
 , pyquery
 , cachelib
 , appdirs
+, keep
 }:
 
 buildPythonPackage rec {
   pname = "howdoi";
-  version = "2.0.3";
+  version = "2.0.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ed8acb75779f598a831224f33fa991c51764872574a128e9b2f11b83fcace010";
+    sha256 = "0hq5biy0mpycbji2mikfbflw4r39prylr47iqhlz234kvwdy0jsg";
   };
 
-  propagatedBuildInputs = [ six requests-cache pygments pyquery cachelib appdirs ];
+  postPatch = ''
+    substituteInPlace setup.py --replace 'cachelib==0.1' 'cachelib'
+  '';
+
+  propagatedBuildInputs = [ six pygments pyquery cachelib appdirs keep ];
 
+  # author hasn't included page_cache directory (which allows tests to run without
+  # external requests) in pypi tarball. github repo doesn't have release revisions
+  # clearly tagged. re-enable tests when either is sorted.
+  doCheck = false;
   preCheck = ''
+    mv howdoi _howdoi
     export HOME=$(mktemp -d)
   '';
+  pythonImportsCheck = [ "howdoi" ];
 
   meta = with lib; {
     description = "Instant coding answers via the command line";
diff --git a/pkgs/development/python-modules/httpcore/default.nix b/pkgs/development/python-modules/httpcore/default.nix
new file mode 100644
index 0000000000000..9ac9b76d2e362
--- /dev/null
+++ b/pkgs/development/python-modules/httpcore/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, isPy27
+, h11
+, sniffio
+}:
+
+buildPythonPackage rec {
+  pname = "httpcore";
+  version = "0.10.2";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "encode";
+    repo = pname;
+    rev = version;
+    sha256 = "00gn8nfv814rg6fj7xv97mrra3fvx6fzjcgx9y051ihm6hxljdsi";
+  };
+
+  propagatedBuildInputs = [ h11 sniffio ];
+
+  # tests require pythonic access to mitmproxy, which isn't (yet?) packaged as
+  # a pythonPackage.
+  doCheck = false;
+  pythonImportsCheck = [ "httpcore" ];
+
+  meta = with stdenv.lib; {
+    description = "A minimal HTTP client";
+    homepage = "https://github.com/encode/httpcore";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.ris ];
+  };
+}
diff --git a/pkgs/development/python-modules/httpx/default.nix b/pkgs/development/python-modules/httpx/default.nix
index 0b29c80fc39e7..58152ca270eef 100644
--- a/pkgs/development/python-modules/httpx/default.nix
+++ b/pkgs/development/python-modules/httpx/default.nix
@@ -2,64 +2,60 @@
 , buildPythonPackage
 , fetchFromGitHub
 , certifi
-, hstspreload
 , chardet
 , h11
 , h2
+, httpcore
 , idna
 , rfc3986
 , sniffio
 , isPy27
 , pytest
+, pytest-asyncio
+, pytest-trio
 , pytestcov
 , trustme
 , uvicorn
-, trio
 , brotli
-, urllib3
 }:
 
 buildPythonPackage rec {
   pname = "httpx";
-  version = "0.12.1";
+  version = "0.14.2";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "1nrp4h1ppb5vll81fzxmks82p0hxcil9f3mja3dgya511kc703h6";
+    sha256 = "08b6k5g8car3bic90aw4ysb2zvsa5nm8qk3hk4dgamllnnxzl5br";
   };
 
   propagatedBuildInputs = [
     certifi
-    hstspreload
     chardet
     h11
     h2
+    httpcore
     idna
     rfc3986
     sniffio
-    urllib3
   ];
 
   checkInputs = [
     pytest
+    pytest-asyncio
+    pytest-trio
     pytestcov
     trustme
     uvicorn
-    trio
     brotli
   ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-          --replace "h11==0.8.*" "h11"
-  '';
-
   checkPhase = ''
-    PYTHONPATH=.:$PYTHONPATH pytest
+    PYTHONPATH=.:$PYTHONPATH pytest -k 'not (test_connect_timeout or test_elapsed_timer)'
   '';
+  pythonImportsCheck = [ "httpx" ];
 
   meta = with lib; {
     description = "The next generation HTTP client";
diff --git a/pkgs/development/python-modules/josepy/default.nix b/pkgs/development/python-modules/josepy/default.nix
index d34fc8cb5704f..73bdb31da9d84 100644
--- a/pkgs/development/python-modules/josepy/default.nix
+++ b/pkgs/development/python-modules/josepy/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "josepy";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "068nkdbag049cjs9q3rrs5j5f1239202y0g9xblii6rr0fjgyhf3";
+    sha256 = "c37ff4b93606e6a452b72cdb992da5e0544be12912fac01b31ddbdd61f6d5bd0";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/jupyterhub-ldapauthenticator/default.nix b/pkgs/development/python-modules/jupyterhub-ldapauthenticator/default.nix
index 38fac27ad43ee..cfb89e7f34fdb 100644
--- a/pkgs/development/python-modules/jupyterhub-ldapauthenticator/default.nix
+++ b/pkgs/development/python-modules/jupyterhub-ldapauthenticator/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "jupyterhub-ldapauthenticator";
-  version = "1.3.1";
+  version = "1.3.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "913cc67a1e8c50e7e301a16f25a4125ffd020a7c5dd22ccfb3f7707af2ee9157";
+    sha256 = "12xby5j7wmi6qsbb2fjd5qbckkcg5fmdij8qpc9n7ci8vfxq303m";
   };
 
   # No tests implemented
diff --git a/pkgs/development/python-modules/keep/default.nix b/pkgs/development/python-modules/keep/default.nix
new file mode 100644
index 0000000000000..6108ea5068929
--- /dev/null
+++ b/pkgs/development/python-modules/keep/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, PyGithub
+, terminaltables
+, click
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "keep";
+  version = "2.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0902kcvhbmy5q5n0ai1df29ybf87qaljz306c5ssl8j9xdjipcq2";
+  };
+
+  propagatedBuildInputs = [
+    click
+    requests
+    terminaltables
+    PyGithub
+  ];
+
+  # no tests
+  pythonImportsCheck = [ "keep" ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/orkohunter/keep";
+    description = "A Meta CLI toolkit: Personal shell command keeper and snippets manager";
+    platforms = platforms.all;
+    license = licenses.mit;
+    maintainers = with maintainers; [ ris ];
+  };
+}
diff --git a/pkgs/development/python-modules/maildir-deduplicate/default.nix b/pkgs/development/python-modules/maildir-deduplicate/default.nix
deleted file mode 100644
index 33728ef4113c5..0000000000000
--- a/pkgs/development/python-modules/maildir-deduplicate/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, isPy27
-, click
-}:
-
-buildPythonPackage rec {
-  pname = "maildir-deduplicate";
-  version = "2.1.0";
-  disabled = !isPy27;
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "263c7f2c85dafe06eaa15e8d7ab83817204f70a5f08cc25a607f3f01ed130b42";
-  };
-
-  propagatedBuildInputs = [ click ];
-
-  meta = with stdenv.lib; {
-    description = "Command-line tool to deduplicate mails from a set of maildir folders";
-    homepage = "https://github.com/kdeldycke/maildir-deduplicate";
-    license = licenses.gpl2;
-    broken = true;
-  };
-
-}
diff --git a/pkgs/development/python-modules/matrix-nio/default.nix b/pkgs/development/python-modules/matrix-nio/default.nix
index 890518658a2be..59c3f47d2ca7a 100644
--- a/pkgs/development/python-modules/matrix-nio/default.nix
+++ b/pkgs/development/python-modules/matrix-nio/default.nix
@@ -20,13 +20,13 @@
 
 buildPythonPackage rec {
   pname = "matrix-nio";
-  version = "0.14.1";
+  version = "0.15.1";
 
   src = fetchFromGitHub {
     owner = "poljar";
     repo = "matrix-nio";
     rev = version;
-    sha256 = "0mgb9m3298jvw3wa051zn7vp1m8qriys3ps0qn3sq54fndljgg5k";
+    sha256 = "127n4sqdcip1ld42w9wz49pxkpvi765qzvivvwl26720n11zq5cd";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/mergedeep/default.nix b/pkgs/development/python-modules/mergedeep/default.nix
new file mode 100644
index 0000000000000..3b5536ed6fbcf
--- /dev/null
+++ b/pkgs/development/python-modules/mergedeep/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildPythonPackage, isPy27, fetchFromGitHub, pytest }:
+
+buildPythonPackage rec {
+  pname = "mergedeep";
+  version = "1.3.0";
+  disabled = isPy27;
+
+  # PyPI tarball doesn't include tests directory
+  src = fetchFromGitHub {
+    owner = "clarketm";
+    repo = "mergedeep";
+    rev = "v${version}";
+    sha256 = "1a0y26a04limiggjwqyyqpryxiylbqya74nq1bij75zhz42sa02b";
+  };
+
+  checkInputs = [ pytest ];
+  checkPhase = "pytest";
+  pythonImportsCheck = [ "mergedeep" ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/clarketm/mergedeep";
+    description = "A deep merge function for python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ris ];
+  };
+}
diff --git a/pkgs/development/python-modules/pdfminer_six/default.nix b/pkgs/development/python-modules/pdfminer_six/default.nix
index 41459a8f4a14e..08f482e6221fd 100644
--- a/pkgs/development/python-modules/pdfminer_six/default.nix
+++ b/pkgs/development/python-modules/pdfminer_six/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "pdfminer_six";
-  version = "20200720";
+  version = "20200726";
 
   disabled = !isPy3k;
 
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     owner = "pdfminer";
     repo = "pdfminer.six";
     rev = version;
-    sha256 = "19cnl1b6mrk9i18a1k4vdl5k85ww8yhfq89w3fxh6rb0fla5d71i";
+    sha256 = "1hlaz7ax1czb028x3nhk3l2jy07f26q5hbhmdirljaaga24vd96z";
   };
 
   propagatedBuildInputs = [ chardet cryptography sortedcontainers ];
diff --git a/pkgs/development/python-modules/phonopy/default.nix b/pkgs/development/python-modules/phonopy/default.nix
index 3bc510f678a46..b476543c06a94 100644
--- a/pkgs/development/python-modules/phonopy/default.nix
+++ b/pkgs/development/python-modules/phonopy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, python, fetchPypi, numpy, pyyaml, matplotlib, h5py }:
+{ stdenv, buildPythonPackage, python, fetchPypi, numpy, pyyaml, matplotlib, h5py, spglib, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "phonopy";
@@ -9,15 +9,15 @@ buildPythonPackage rec {
     sha256 = "482c6ff29c058d091ac885e561e28ba3e516ea9e91c44a951cad11f3ae19856c";
   };
 
-  propagatedBuildInputs = [ numpy pyyaml matplotlib h5py ];
+  propagatedBuildInputs = [ numpy pyyaml matplotlib h5py spglib ];
 
-  checkPhase = ''
-    cd test
-    # dynamic structure factor test ocassionally fails do to roundoff
-    # see issue https://github.com/atztogo/phonopy/issues/79
-    rm spectrum/test_dynamic_structure_factor.py
-    ${python.interpreter} -m unittest discover -b
-    cd ../..
+  checkInputs = [ pytestCheckHook ];
+  # flakey due to floating point inaccuracy
+  disabledTests = [ "test_NaCl" ];
+
+  # prevent pytest from importing local directory
+  preCheck = ''
+    rm -r phonopy
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/pip2nix/default.nix b/pkgs/development/python-modules/pip2nix/default.nix
deleted file mode 100644
index f6474883b83ae..0000000000000
--- a/pkgs/development/python-modules/pip2nix/default.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, click
-, configobj
-, contexter
-, jinja2
-, pytest
-, pip
-}:
-
-buildPythonPackage rec {
-  pname = "pip2nix";
-  version = "0.7.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "ec9a71e09ac7f43cc7b6c9d386384eb7b5c331bf6ea0e72ca559d87979397a95";
-  };
-
-  propagatedBuildInputs = [ click configobj contexter pip jinja2 pytest ];
-
-  postPatch = ''
-    sed -i "s/'pip>=8,<10'/'pip'/" setup.py
-    sed -i "s/pip<10,>=8/pip/" ${pname}.egg-info/requires.txt
-  '';
-
-  # tests not included with pypi release
-  doCheck = false;
-
-  # Requires an old pip version
-  broken = true;
-
-  meta = with stdenv.lib; {
-    description = "Generate Nix expressions for Python packages";
-    homepage = "https://github.com/johbo/pip2nix";
-    license = licenses.gpl3;
-  };
-
-}
diff --git a/pkgs/development/python-modules/pre-commit/default.nix b/pkgs/development/python-modules/pre-commit/default.nix
index c0f536480da7a..88fb6e3abf91d 100644
--- a/pkgs/development/python-modules/pre-commit/default.nix
+++ b/pkgs/development/python-modules/pre-commit/default.nix
@@ -16,13 +16,13 @@
 
 buildPythonPackage rec {
   pname = "pre-commit";
-  version = "2.6.0";
+  version = "2.7.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit version;
     pname = "pre_commit";
-    sha256 = "05d9635v0yzrj2848m2hn9axbvds0dymv49rlyj238v3vlzncmqn";
+    sha256 = "0w2a104yhbw1z92rcwpq0gdjsxvr2bwx5ry5xhlf2psnfkjx6ky5";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/pysqueezebox/default.nix b/pkgs/development/python-modules/pysqueezebox/default.nix
new file mode 100644
index 0000000000000..33149e99e92f5
--- /dev/null
+++ b/pkgs/development/python-modules/pysqueezebox/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchPypi, buildPythonPackage, pythonOlder, aiohttp }:
+
+buildPythonPackage rec {
+  pname = "pysqueezebox";
+  version = "0.4.0";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "02d73e98314a63a38c314d40942a0b098fb59d2f08ac39b2627cfa73f785cf0d";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  # No tests in the Pypi distribution
+  doCheck = false;
+  pythonImportsCheck = [ "pysqueezebox" ];
+
+  meta = with stdenv.lib; {
+    description = "Asynchronous library to control Logitech Media Server";
+    homepage = "https://github.com/rajlaud/pysqueezebox";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ nyanloutre ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-libarchive/default.nix b/pkgs/development/python-modules/python-libarchive/default.nix
deleted file mode 100644
index 02fe234792444..0000000000000
--- a/pkgs/development/python-modules/python-libarchive/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchurl
-, isPy3k
-, pkgs
-}:
-
-buildPythonPackage rec {
-  version = "3.1.2-1";
-  pname = "libarchive";
-  disabled = isPy3k;
-
-  src = fetchurl {
-    url = "http://python-libarchive.googlecode.com/files/python-libarchive-${version}.tar.gz";
-    sha256 = "0j4ibc4mvq64ljya9max8832jafi04jciff9ia9qy0xhhlwkcx8x";
-  };
-
-  propagatedBuildInputs = [ pkgs.libarchive.lib ];
-
-  meta = with stdenv.lib; {
-    description = "Multi-format archive and compression library";
-    homepage = "https://libarchive.org/";
-    license = licenses.bsd0;
-    broken = true;
-  };
-
-}
diff --git a/pkgs/development/python-modules/qutip/default.nix b/pkgs/development/python-modules/qutip/default.nix
deleted file mode 100644
index 6066e1e3b8441..0000000000000
--- a/pkgs/development/python-modules/qutip/default.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchurl
-, numpy
-, scipy
-, matplotlib
-, pyqt4
-, cython
-, pkgs
-, nose
-}:
-
-buildPythonPackage rec {
-  pname = "qutip";
-  version = "2.2.0";
-
-  src = fetchurl {
-    url = "https://qutip.googlecode.com/files/QuTiP-${version}.tar.gz";
-    sha256 = "a26a639d74b2754b3a1e329d91300e587e8c399d8a81d8f18a4a74c6d6f02ba3";
-  };
-
-  propagatedBuildInputs = [ numpy scipy matplotlib pyqt4 cython ];
-
-  buildInputs = [ pkgs.gcc pkgs.qt4 pkgs.blas nose ];
-
-  meta = with stdenv.lib; {
-    description = "QuTiP - Quantum Toolbox in Python";
-    longDescription = ''
-      QuTiP is open-source software for simulating the dynamics of
-      open quantum systems. The QuTiP library depends on the
-      excellent Numpy and Scipy numerical packages. In addition,
-      graphical output is provided by Matplotlib. QuTiP aims to
-      provide user-friendly and efficient numerical simulations of a
-      wide variety of Hamiltonians, including those with arbitrary
-      time-dependence, commonly found in a wide range of physics
-      applications such as quantum optics, trapped ions,
-      superconducting circuits, and quantum nanomechanical
-      resonators.
-    '';
-    homepage = "http://qutip.org/";
-    license = licenses.bsd0;
-    broken = true;
-  };
-
-}
diff --git a/pkgs/development/python-modules/solo-python/default.nix b/pkgs/development/python-modules/solo-python/default.nix
index 1b1896187f9dc..0ce6e338e61fc 100644
--- a/pkgs/development/python-modules/solo-python/default.nix
+++ b/pkgs/development/python-modules/solo-python/default.nix
@@ -3,7 +3,7 @@
 
  buildPythonPackage rec {
   pname = "solo-python";
-  version = "0.0.23";
+  version = "0.0.26";
   format = "flit";
   disabled = pythonOlder "3.6"; # only python>=3.6 is supported
 
@@ -11,7 +11,7 @@
     owner = "solokeys";
     repo = pname;
     rev = version;
-    sha256 = "0r9cq0sd8pqnavgwa5cqgdxzbgly2baq8fpclnnz6anb2974kg3f";
+    sha256 = "05rwqrhr1as6zqhg63d6wga7l42jm2azbav5w6ih8mx5zbxf61yz";
   };
 
   # replaced pinned fido, with unrestricted fido version
diff --git a/pkgs/development/python-modules/sqlalchemy-citext/default.nix b/pkgs/development/python-modules/sqlalchemy-citext/default.nix
index 5011ef7efb93f..bf8a9d3bbdbd8 100644
--- a/pkgs/development/python-modules/sqlalchemy-citext/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy-citext/default.nix
@@ -18,9 +18,10 @@ buildPythonPackage rec {
     sqlalchemy
   ];
 
-  checkPhase = ''
-    ${python.interpreter} tests/test_citext.py
-  '';
+  # tests are not packaged in pypi tarball
+  doCheck = false;
+
+  pythonImportsCheck = [ "citext" ];
 
   meta = with lib; {
     description = "A sqlalchemy plugin that allows postgres use of CITEXT";
diff --git a/pkgs/development/python-modules/starlette/default.nix b/pkgs/development/python-modules/starlette/default.nix
index 130a098a23f8f..ff8a93d335ea9 100644
--- a/pkgs/development/python-modules/starlette/default.nix
+++ b/pkgs/development/python-modules/starlette/default.nix
@@ -21,19 +21,14 @@
 buildPythonPackage rec {
   pname = "starlette";
 
-  # This is not the latest version of Starlette, however, later
-  # versions of Starlette break FastAPI due to
-  # https://github.com/tiangolo/fastapi/issues/683. Please update when
-  # possible. FastAPI is currently Starlette's only dependent.
-
-  version = "0.13.6";
+  version = "0.13.8";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "08d1d4qdwhi1xxag4am5ijingdyn0mbyqajs9ql5shxnybyjv321";
+    sha256 = "11i0yd8cqwscixajl734g11vf8pghki11c81chzfh8ifmj6mf9jk";
   };
 
   propagatedBuildInputs = [
@@ -57,6 +52,7 @@ buildPythonPackage rec {
   checkPhase = ''
     pytest --ignore=tests/test_graphql.py
   '';
+  pythonImportsCheck = [ "starlette" ];
 
   meta = with lib; {
     homepage = "https://www.starlette.io/";
diff --git a/pkgs/development/python-modules/tensorflow/1/default.nix b/pkgs/development/python-modules/tensorflow/1/default.nix
index 4dc5c57070d18..5f65004b3d686 100644
--- a/pkgs/development/python-modules/tensorflow/1/default.nix
+++ b/pkgs/development/python-modules/tensorflow/1/default.nix
@@ -23,9 +23,9 @@
 , xlaSupport ? cudaSupport
 # Default from ./configure script
 , cudaCapabilities ? [ "3.5" "5.2" ]
-, sse42Support ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") ["westmere" "sandybridge" "ivybridge" "haswell" "broadwell" "skylake" "skylake-avx512"]
-, avx2Support  ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [                                     "haswell" "broadwell" "skylake" "skylake-avx512"]
-, fmaSupport   ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [                                     "haswell" "broadwell" "skylake" "skylake-avx512"]
+, sse42Support ? stdenv.hostPlatform.sse4_2Support
+, avx2Support  ? stdenv.hostPlatform.avx2Support
+, fmaSupport   ? stdenv.hostPlatform.fmaSupport
 # Darwin deps
 , Foundation, Security
 }:
diff --git a/pkgs/development/python-modules/tensorflow/2/default.nix b/pkgs/development/python-modules/tensorflow/2/default.nix
index 4dd378d1410bd..eedd6e6d0dfb9 100644
--- a/pkgs/development/python-modules/tensorflow/2/default.nix
+++ b/pkgs/development/python-modules/tensorflow/2/default.nix
@@ -23,9 +23,9 @@
 , xlaSupport ? cudaSupport
 # Default from ./configure script
 , cudaCapabilities ? [ "3.5" "5.2" ]
-, sse42Support ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") ["westmere" "sandybridge" "ivybridge" "haswell" "broadwell" "skylake" "skylake-avx512"]
-, avx2Support  ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [                                     "haswell" "broadwell" "skylake" "skylake-avx512"]
-, fmaSupport   ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [                                     "haswell" "broadwell" "skylake" "skylake-avx512"]
+, sse42Support ? stdenv.hostPlatform.sse4_2Support
+, avx2Support  ? stdenv.hostPlatform.avx2Support
+, fmaSupport   ? stdenv.hostPlatform.fmaSupport
 # Darwin deps
 , Foundation, Security
 }:
diff --git a/pkgs/development/python-modules/tiledb/default.nix b/pkgs/development/python-modules/tiledb/default.nix
index 808a6c54825c6..d5379b849adee 100644
--- a/pkgs/development/python-modules/tiledb/default.nix
+++ b/pkgs/development/python-modules/tiledb/default.nix
@@ -3,28 +3,31 @@
 , buildPythonPackage
 , fetchFromGitHub
 , cython
+, pybind11
 , tiledb
 , numpy
 , wheel
 , isPy3k
 , setuptools_scm
 , psutil
+, pandas
 }:
 
 buildPythonPackage rec {
   pname = "tiledb";
-  version = "0.5.6";
+  version = "0.6.6";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "TileDB-Inc";
     repo = "TileDB-Py";
     rev = version;
-    sha256 = "0cgm4dhyqay26xmrzlv21ha8qh55m4q3yr338lrv81ngz77zxsvw";
+    sha256 = "0b2kn1xyf7d994kz29dpqiaf8yzvx0axw4yqi854c54pl22ddgzl";
   };
 
   nativeBuildInputs = [
     cython
+    pybind11
     setuptools_scm
   ];
 
@@ -39,6 +42,8 @@ buildPythonPackage rec {
 
   checkInputs = [
     psutil
+    # optional
+    pandas
   ];
 
   TILEDB_PATH = tiledb;
@@ -57,16 +62,19 @@ buildPythonPackage rec {
       "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"
+      "test_varlen_write_int_subarray" "dont_test_varlen_write_int_subarray" \
+      --replace "test_memory_cleanup" "dont_test_memory_cleanup" \
+      --replace "test_ctx_thread_cleanup" "dont_test_ctx_thread_cleanup"
     substituteInPlace tiledb/tests/test_metadata.py --replace \
       "test_metadata_consecutive" "dont_test_metadata_consecutive"
   '';
 
   checkPhase = ''
-    pushd "$out"
+    pushd "$TMPDIR"
     ${python.interpreter} -m unittest tiledb.tests.all.suite_test
     popd
   '';
+  pythonImportsCheck = [ "tiledb" ];
 
   meta = with lib; {
     description = "Python interface to the TileDB storage manager";
diff --git a/pkgs/development/python-modules/transformers/default.nix b/pkgs/development/python-modules/transformers/default.nix
index eb7c1c2aa4838..aa6db6a735338 100644
--- a/pkgs/development/python-modules/transformers/default.nix
+++ b/pkgs/development/python-modules/transformers/default.nix
@@ -16,13 +16,13 @@
 
 buildPythonPackage rec {
   pname = "transformers";
-  version = "3.0.2";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "huggingface";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0rdlikh2qilwd0s9f3zif51p1q7sp3amxaccqic8p5qm6dqpfpz6";
+    sha256 = "0wg36qrcljmpsyhjaxpqw3s1r6276yg8cq0bjrf52l4zlc5k4xzk";
   };
 
   propagatedBuildInputs = [
@@ -44,16 +44,23 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "tokenizers == 0.8.1.rc1" "tokenizers>=0.8"
+      --replace "tokenizers == 0.8.1.rc2" "tokenizers>=0.8"
   '';
 
   preCheck = ''
     export HOME="$TMPDIR"
     cd tests
+
+    # This test requires the nlp module, which we haven't
+    # packaged yet. However, nlp is optional for transformers
+    # itself
+    rm test_trainer.py
   '';
 
   # Disable tests that require network access.
   disabledTests = [
+    "PegasusTokenizationTest"
+    "T5TokenizationTest"
     "test_all_tokenizers"
     "test_batch_encoding_is_fast"
     "test_batch_encoding_pickle"
@@ -63,6 +70,7 @@ buildPythonPackage rec {
     "test_hf_api"
     "test_outputs_can_be_shorter"
     "test_outputs_not_longer_than_maxlen"
+    "test_padding_accepts_tensors"
     "test_pretokenized_tokenizers"
     "test_tokenizer_equivalence_en_de"
     "test_tokenizer_from_model_type"
@@ -74,6 +82,7 @@ buildPythonPackage rec {
   meta = with stdenv.lib; {
     homepage = "https://github.com/huggingface/transformers";
     description = "State-of-the-art Natural Language Processing for TensorFlow 2.0 and PyTorch";
+    changelog = "https://github.com/huggingface/transformers/releases/tag/v${version}";
     license = licenses.asl20;
     platforms = platforms.unix;
     maintainers = with maintainers; [ danieldk pashashocky ];
diff --git a/pkgs/development/python-modules/ufonormalizer/default.nix b/pkgs/development/python-modules/ufonormalizer/default.nix
index 70c9061d36664..1fbed4ad1aa52 100644
--- a/pkgs/development/python-modules/ufonormalizer/default.nix
+++ b/pkgs/development/python-modules/ufonormalizer/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "ufonormalizer";
-  version = "0.4.1";
+  version = "0.4.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0nv80x7l7sya5wzyfk9ss93r6bjzjljpkw4k8gibxp1rqrzkdms4";
+    sha256 = "1rn64a0i151qk6h5f9pijcmja195i2d6f8jbi5h4xkgkinm9wwzj";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/unicodedata2/default.nix b/pkgs/development/python-modules/unicodedata2/default.nix
index e36f0f7b03cb8..09b75e0c77769 100644
--- a/pkgs/development/python-modules/unicodedata2/default.nix
+++ b/pkgs/development/python-modules/unicodedata2/default.nix
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   checkPhase = "pytest tests";
 
   meta = with lib; {
-    description = "";
+    description = "Backport and updates for the unicodedata module";
     homepage = "http://github.com/mikekap/unicodedata2";
     license = licenses.asl20;
     maintainers = [ maintainers.sternenseemann ];
diff --git a/pkgs/development/python-modules/yeelight/default.nix b/pkgs/development/python-modules/yeelight/default.nix
new file mode 100644
index 0000000000000..4cc7056da19a7
--- /dev/null
+++ b/pkgs/development/python-modules/yeelight/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchPypi, buildPythonPackage, future, enum-compat }:
+
+buildPythonPackage rec {
+  pname = "yeelight";
+  version = "0.5.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "8d49846f0cede1e312cbcd1d0e44c42073910bbcadb31b87ce2a7d24dea3af38";
+  };
+
+  propagatedBuildInputs = [ future enum-compat ];
+
+  meta = with stdenv.lib; {
+    description = "A Python library for controlling YeeLight RGB bulbs";
+    homepage = "https://gitlab.com/stavros/python-yeelight/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ nyanloutre ];
+  };
+}
diff --git a/pkgs/development/python-modules/zope_i18n/default.nix b/pkgs/development/python-modules/zope_i18n/default.nix
deleted file mode 100644
index 662188db153e6..0000000000000
--- a/pkgs/development/python-modules/zope_i18n/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, pytz
-, zope_component
-}:
-
-buildPythonPackage rec {
-  pname = "zope.i18n";
-  version = "4.7.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "9fcc1adb4e5f6188769ab36f6f40a59b567bb5eef91f714584e0dfd0891be5d0";
-  };
-
-  propagatedBuildInputs = [ pytz zope_component ];
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/zopefoundation/zope.i18n";
-    description = "Zope Internationalization Support";
-    license = licenses.zpl20;
-    maintainers = with maintainers; [ goibhniu ];
-    broken = true;
-  };
-
-}
diff --git a/pkgs/development/tools/ameba/default.nix b/pkgs/development/tools/ameba/default.nix
index 0ac36c4c20021..9b7cf3f1de8d8 100644
--- a/pkgs/development/tools/ameba/default.nix
+++ b/pkgs/development/tools/ameba/default.nix
@@ -2,13 +2,13 @@
 
 crystal.buildCrystalPackage rec {
   pname = "ameba";
-  version = "0.13.1";
+  version = "0.13.2";
 
   src = fetchFromGitHub {
     owner = "crystal-ameba";
     repo = "ameba";
     rev = "v${version}";
-    sha256 = "0myy11g62pa1yh9szj03v2lhc5s9xwzr76v4x6hznidpq1b67jn8";
+    sha256 = "0wyfx9nwda0s3arpdalz5zgh83v6wfz1a3l2k5v0jglpczq3m04m";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix b/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix
index b8797c3dfe24d..48805d1680894 100644
--- a/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix
+++ b/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-tarpaulin";
-  version = "0.14.2";
+  version = "0.14.3";
 
   src = fetchFromGitHub {
     owner = "xd009642";
     repo = "tarpaulin";
     rev = "${version}";
-    sha256 = "1skiaiz3xyi6cf62fkg7i7ahncm7vcg3aq4s4a5lrls30gr0n288";
+    sha256 = "03d8h5b174699yivaamlvaqzck9zs119jk29yf70dvxw7cs0nngv";
   };
 
   nativeBuildInputs = [
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   ];
   buildInputs = [ openssl ];
 
-  cargoSha256 = "1klmdwpqk995pdyms40x7gk4l2mf4ncj7cgknl91kmyvpn4j1y4g";
+  cargoSha256 = "0zzp2wyq48j6n64fm37qfl65cg4yzf9ysichhkmkc6viq8x0f66d";
   #checkFlags = [ "--test-threads" "1" ];
   doCheck = false;
 
diff --git a/pkgs/development/tools/analysis/codeql/default.nix b/pkgs/development/tools/analysis/codeql/default.nix
index cc73e14690927..e450bbefe242f 100644
--- a/pkgs/development/tools/analysis/codeql/default.nix
+++ b/pkgs/development/tools/analysis/codeql/default.nix
@@ -12,7 +12,7 @@
 
 stdenv.mkDerivation rec {
   pname = "codeql";
-  version = "2.2.4";
+  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 = "0vrl9q7rm8bjxbb5076qx2cbva1wp1gp6z0pjwpg70z90gp49n2p";
+    sha256 = "1x9crby4idkvfy6i5l0r00ixnx3ij68zjh1l5n92hyzlf0snv28d";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/tools/analysis/flow/default.nix b/pkgs/development/tools/analysis/flow/default.nix
index a9ea826e2f633..cc3ef8ed0f7f3 100644
--- a/pkgs/development/tools/analysis/flow/default.nix
+++ b/pkgs/development/tools/analysis/flow/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "flow";
-  version = "0.132.0";
+  version = "0.133.0";
 
   src = fetchFromGitHub {
     owner  = "facebook";
     repo   = "flow";
     rev    = "refs/tags/v${version}";
-    sha256 = "1080kf2zxhbgz1zhm54w3hqbbvwpfllapcq4pgwahfyvf6zb86d7";
+    sha256 = "1r4s4gw50pvp4r4mq2w45s9i7fbkf7zycgp8rrj1dqzmkl9v6kii";
   };
 
   installPhase = ''
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/facebook/flow/releases/tag/v${version}";
     license = licenses.mit;
     platforms = ocamlPackages.ocaml.meta.platforms;
+    broken = stdenv.isAarch64; # https://github.com/facebook/flow/issues/7556
     maintainers = with maintainers; [ marsam puffnfresh ];
   };
 }
diff --git a/pkgs/development/tools/analysis/hotspot/default.nix b/pkgs/development/tools/analysis/hotspot/default.nix
index 23ca35b3717e9..f04d060290f16 100644
--- a/pkgs/development/tools/analysis/hotspot/default.nix
+++ b/pkgs/development/tools/analysis/hotspot/default.nix
@@ -17,13 +17,13 @@
 
 mkDerivation rec {
   pname = "hotspot";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "KDAB";
     repo = "hotspot";
     rev = "v${version}";
-    sha256 = "05rkzrvak93z8mzcpm4mcjxb933l8pjsxr9a595wfn1gn2ihmada";
+    sha256 = "1f68bssh3p387hkavfjkqcf7qf7w5caznmjfjldicxphap4riqr5";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/tools/analysis/radare2/default.nix b/pkgs/development/tools/analysis/radare2/default.nix
index 7d42b772234d0..e86ef2532498c 100644
--- a/pkgs/development/tools/analysis/radare2/default.nix
+++ b/pkgs/development/tools/analysis/radare2/default.nix
@@ -110,22 +110,22 @@ in {
   #<generated>
   # DO NOT EDIT! Automatically generated by ./update.py
   radare2 = generic {
-    version_commit = "25005";
-    gittap = "4.5.0";
-    gittip = "9d7eda5ec7367d1682e489e92d1be8e37e459296";
-    rev = "4.5.0";
-    version = "4.5.0";
-    sha256 = "1vnvfgg48bccm41pdyjsql6fy1pymmfnip4w2w56b45d7rqcc3v8";
+    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 = "25024";
-    gittap = "4.5.0";
-    gittip = "9d7eda5ec7367d1682e489e92d1be8e37e459296";
-    rev = "9d7eda5ec7367d1682e489e92d1be8e37e459296";
-    version = "2020-07-17";
-    sha256 = "1vnvfgg48bccm41pdyjsql6fy1pymmfnip4w2w56b45d7rqcc3v8";
+    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";
   };
diff --git a/pkgs/development/tools/analysis/radare2/update.py b/pkgs/development/tools/analysis/radare2/update.py
index b9e72e6236601..ebd6e073fe53c 100755
--- a/pkgs/development/tools/analysis/radare2/update.py
+++ b/pkgs/development/tools/analysis/radare2/update.py
@@ -5,6 +5,8 @@
 # and is formatted with black.
 import fileinput
 import json
+import xml.etree.ElementTree as ET
+from urllib.parse import urlparse
 import re
 import subprocess
 import tempfile
@@ -30,10 +32,20 @@ def prefetch_github(owner: str, repo: str, ref: str) -> str:
 
 
 def get_radare2_rev() -> str:
-    url = "https://api.github.com/repos/radare/radare2/releases/latest"
-    with urllib.request.urlopen(url) as response:
-        release = json.load(response)  # type: ignore
-    return release["tag_name"]
+    feed_url = "http://github.com/radareorg/radare2/releases.atom"
+    with urllib.request.urlopen(feed_url) as resp:
+        tree = ET.fromstring(resp.read())
+    releases = tree.findall(".//{http://www.w3.org/2005/Atom}entry")
+    for release in releases:
+        link = release.find("{http://www.w3.org/2005/Atom}link")
+        assert link is not None
+        url = urlparse(link.attrib["href"])
+        tag = url.path.split("/")[-1]
+        if re.match(r"[0-9.]+", tag):
+            return tag
+        else:
+            print(f"ignore {tag}")
+    raise RuntimeError(f"No release found at {feed_url}")
 
 
 def get_cutter_version() -> str:
diff --git a/pkgs/development/tools/analysis/svlint/default.nix b/pkgs/development/tools/analysis/svlint/default.nix
new file mode 100644
index 0000000000000..adf17dabecee0
--- /dev/null
+++ b/pkgs/development/tools/analysis/svlint/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "svlint";
+  version = "0.4.7";
+
+  src = fetchFromGitHub {
+    owner = "dalance";
+    repo = "svlint";
+    rev = "v${version}";
+    sha256 = "0gn68achvhyxljvhw5rwraxjcgdwrl1bwbsn596ka15nrk4lwb34";
+  };
+
+  cargoSha256 = "0v94zsh4jhzjnqbkgwn8rjbs72i5cw2nmkwn7xhdbbwxh17a88x4";
+
+  meta = with lib; {
+    description = "SystemVerilog linter";
+    homepage = "https://github.com/dalance/svlint";
+    license = licenses.mit;
+    maintainers = with maintainers; [ trepetti ];
+  };
+}
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_0_26/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_0_26/default.nix
index 6d4ba50a9fbb0..c507169cf37a3 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_0_26/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_0_26/default.nix
@@ -236,6 +236,8 @@ stdenv.mkDerivation rec {
       fetch --experimental_distdir=${distDir}
       build --copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt="/g')"
       build --host_copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt="/g')"
+      build --linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt="/g')"
+      build --host_linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt="/g')"
       build --linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt="-Wl,/g')"
       build --host_linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt="-Wl,/g')"
       build --host_javabase='@local_jdk//:jdk'
@@ -245,6 +247,8 @@ stdenv.mkDerivation rec {
       # add the same environment vars to compile.sh
       sed -e "/\$command \\\\$/a --copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt=\"/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt=\"/g')\" \\\\" \
+          -e "/\$command \\\\$/a --linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt=\"/g')\" \\\\" \
+          -e "/\$command \\\\$/a --host_linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt=\"/g')\" \\\\" \
           -e "/\$command \\\\$/a --linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt=\"-Wl,/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt=\"-Wl,/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_javabase='@local_jdk//:jdk' \\\\" \
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix
index 19d33235a340f..ad6e9ee44566a 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix
@@ -417,6 +417,8 @@ stdenv.mkDerivation rec {
       fetch --distdir=${distDir}
       build --copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt="/g')"
       build --host_copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt="/g')"
+      build --linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt="/g')"
+      build --host_linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt="/g')"
       build --linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt="-Wl,/g')"
       build --host_linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt="-Wl,/g')"
       build --host_javabase='@local_jdk//:jdk'
@@ -426,6 +428,8 @@ stdenv.mkDerivation rec {
       # add the same environment vars to compile.sh
       sed -e "/\$command \\\\$/a --copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt=\"/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt=\"/g')\" \\\\" \
+          -e "/\$command \\\\$/a --linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt=\"/g')\" \\\\" \
+          -e "/\$command \\\\$/a --host_linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt=\"/g')\" \\\\" \
           -e "/\$command \\\\$/a --linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt=\"-Wl,/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt=\"-Wl,/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_javabase='@local_jdk//:jdk' \\\\" \
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix
index eff8aede6c165..8dcdc71415fa8 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix
@@ -417,6 +417,8 @@ stdenv.mkDerivation rec {
       fetch --distdir=${distDir}
       build --copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt="/g')"
       build --host_copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt="/g')"
+      build --linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt="/g')"
+      build --host_linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt="/g')"
       build --linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt="-Wl,/g')"
       build --host_linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt="-Wl,/g')"
       build --host_javabase='@local_jdk//:jdk'
@@ -426,6 +428,8 @@ stdenv.mkDerivation rec {
       # add the same environment vars to compile.sh
       sed -e "/\$command \\\\$/a --copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt=\"/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt=\"/g')\" \\\\" \
+          -e "/\$command \\\\$/a --linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt=\"/g')\" \\\\" \
+          -e "/\$command \\\\$/a --host_linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt=\"/g')\" \\\\" \
           -e "/\$command \\\\$/a --linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt=\"-Wl,/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt=\"-Wl,/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_javabase='@local_jdk//:jdk' \\\\" \
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix
index 845469e1c7dd4..0bfc9071d7e6d 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix
@@ -429,6 +429,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'
@@ -438,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' \\\\" \
diff --git a/pkgs/development/tools/build-managers/bloop/default.nix b/pkgs/development/tools/build-managers/bloop/default.nix
index dd1342a37de0e..c3049edee64ec 100644
--- a/pkgs/development/tools/build-managers/bloop/default.nix
+++ b/pkgs/development/tools/build-managers/bloop/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bloop";
-  version = "1.4.3";
+  version = "1.4.4";
 
   bloop-coursier-channel = fetchurl {
     url = "https://github.com/scalacenter/bloop/releases/download/v${version}/bloop-coursier.json";
-    sha256 = "0abl91l2sb08pwr98mw910zibzwk6lss9r62h2s3g7qnnxp3z59r";
+    sha256 = "1pyf559bpnsmvca4kw36nb9lwkwa9q0ghrpa117s96dhvrp3i2bv";
   };
 
   bloop-bash = fetchurl {
@@ -54,8 +54,8 @@ stdenv.mkDerivation rec {
 
     outputHashMode = "recursive";
     outputHashAlgo = "sha256";
-    outputHash     = if stdenv.isLinux && stdenv.isx86_64 then "1ncl34f39mvk0zb5jl1l77cwjdg3xfnhjxbzz11pdfqw0d7wqywj"
-                     else if stdenv.isDarwin && stdenv.isx86_64 then "06c885w088yvh8l1r1jbrz0549gx2xvc8xr6rlxy6y27jk5655p2"
+    outputHash     = if stdenv.isLinux && stdenv.isx86_64 then "0hf0priy93zqba78a9nvbgl3mzwlc4jz43gz7cv2cdkj6x0lp0y1"
+                     else if stdenv.isDarwin && stdenv.isx86_64 then "0g2rnmlfnqymji4f4rn0kaz7hipgv3bakdpn08600gg1f3s8gabw"
                      else throw "unsupported platform";
   };
 
diff --git a/pkgs/development/tools/buildah/default.nix b/pkgs/development/tools/buildah/default.nix
index 95e38e3a0f5e0..ec47fdadd1b9b 100644
--- a/pkgs/development/tools/buildah/default.nix
+++ b/pkgs/development/tools/buildah/default.nix
@@ -13,13 +13,13 @@
 
 buildGoModule rec {
   pname = "buildah";
-  version = "1.15.1";
+  version = "1.15.2";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "buildah";
     rev = "v${version}";
-    sha256 = "15pnyi6gay287vkcrgsirsyyps3ya2lsih1ljkcsqdxzr596mcv3";
+    sha256 = "13kqcdrdzkbg6h5za6hhkzdx4nbrg5yl97ydj2hfcakl00q4y0dp";
   };
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/development/tools/continuous-integration/fly/default.nix b/pkgs/development/tools/continuous-integration/fly/default.nix
index 34d30e08c5009..c85f5473de88d 100644
--- a/pkgs/development/tools/continuous-integration/fly/default.nix
+++ b/pkgs/development/tools/continuous-integration/fly/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "fly";
-  version = "6.5.0";
+  version = "6.5.1";
 
   src = fetchFromGitHub {
     owner = "concourse";
     repo = "concourse";
     rev = "v${version}";
-    sha256 = "0x8q1l56h24mmq01j3hib2qg0g44z82mxhmmljy8yv5s2iir0sfh";
+    sha256 = "0ldw40xn9nb5picly32nq558x0klvkyrr9af0jfngbvm4l5209bc";
   };
 
   vendorSha256 = "1fxbxkg7disndlmb065abnfn7sn79qclkcbizmrq49f064w1ijr4";
diff --git a/pkgs/development/tools/dapper/default.nix b/pkgs/development/tools/dapper/default.nix
index c2dadeb6a9330..664dd61246d6a 100644
--- a/pkgs/development/tools/dapper/default.nix
+++ b/pkgs/development/tools/dapper/default.nix
@@ -5,7 +5,7 @@
 
 buildGoPackage rec {
   pname = "dapper";
-  version = "0.5.1";
+  version = "0.5.3";
 
   goPackagePath = "github.com/rancher/dapper";
 
@@ -13,7 +13,7 @@ buildGoPackage rec {
     owner = "rancher";
     repo = "dapper";
     rev = "v${version}";
-    sha256 = "0sf56ii4sn2wdq5kiyl02sgvq0lvynzgiq8v5wrkkabj5107fiqw";
+    sha256 = "1h62jahrxpmqx6r3mlakzap8gisrymgkp5syyarpab05qm1inngd";
   };
    patchPhase = ''
      substituteInPlace main.go --replace 0.0.0 ${version}
diff --git a/pkgs/development/tools/dep2nix/deps.nix b/pkgs/development/tools/dep2nix/deps.nix
index fc9280e9df5bc..ceedc50fc8874 100644
--- a/pkgs/development/tools/dep2nix/deps.nix
+++ b/pkgs/development/tools/dep2nix/deps.nix
@@ -1,145 +1,129 @@
-
-  # file automatically generated from Gopkg.lock with https://github.com/nixcloud/dep2nix (golang dep)
-  [
-  
-    {
-      goPackagePath  = "github.com/Masterminds/semver";
-      fetch = {
-        type = "git";
-        url = "https://github.com/Masterminds/semver";
-        rev =  "a93e51b5a57ef416dac8bb02d11407b6f55d8929";
-        sha256 = "1rd3p135r7iw0lvaa6vk7afxna87chq61a7a0wqnxd3xgpnpa9ik";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/Masterminds/vcs";
-      fetch = {
-        type = "git";
-        url = "https://github.com/Masterminds/vcs";
-        rev =  "6f1c6d150500e452704e9863f68c2559f58616bf";
-        sha256 = "02bpyzccazw9lwqchcz349al4vlxnz4m5gzwigk02zg2qpa1j53j";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/armon/go-radix";
-      fetch = {
-        type = "git";
-        url = "https://github.com/armon/go-radix";
-        rev =  "1fca145dffbcaa8fe914309b1ec0cfc67500fe61";
-        sha256 = "19jws9ngncpbhghzcy7biyb4r8jh14mzknyk67cvq6ln7kh1qyic";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/boltdb/bolt";
-      fetch = {
-        type = "git";
-        url = "https://github.com/boltdb/bolt";
-        rev =  "2f1ce7a837dcb8da3ec595b1dac9d0632f0f99e8";
-        sha256 = "0z7j06lijfi4y30ggf2znak2zf2srv2m6c68ar712wd2ys44qb3r";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/golang/dep";
-      fetch = {
-        type = "git";
-        url = "https://github.com/CrushedPixel/dep";
-        rev =  "fa9f32339c8855ebe7e7bc66e549036a7e06d37a";
-        sha256 = "1knaxs1ji1b0b68393f24r8qzvahxz9x7rqwc8jsjlshvpz0hlm6";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/golang/protobuf";
-      fetch = {
-        type = "git";
-        url = "https://github.com/golang/protobuf";
-        rev =  "bbd03ef6da3a115852eaf24c8a1c46aeb39aa175";
-        sha256 = "1pyli3dcagi7jzpiazph4fhkz7a3z4bhd25nwbb7g0iy69b8z1g4";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/jmank88/nuts";
-      fetch = {
-        type = "git";
-        url = "https://github.com/jmank88/nuts";
-        rev =  "8b28145dffc87104e66d074f62ea8080edfad7c8";
-        sha256 = "1d0xj1dj1lfalq3pg15h0c645n84lf122xx3zkm7hawq9zri6n5k";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/nightlyone/lockfile";
-      fetch = {
-        type = "git";
-        url = "https://github.com/nightlyone/lockfile";
-        rev =  "6a197d5ea61168f2ac821de2b7f011b250904900";
-        sha256 = "03znnf6rzyyi4h4qj81py1xpfs3pnfm39j4bfc9qzakz5j9y1gdl";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/pelletier/go-toml";
-      fetch = {
-        type = "git";
-        url = "https://github.com/pelletier/go-toml";
-        rev =  "acdc4509485b587f5e675510c4f2c63e90ff68a8";
-        sha256 = "1y5m9pngxhsfzcnxh8ma5nsllx74wn0jr47p2n6i3inrjqxr12xh";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/pkg/errors";
-      fetch = {
-        type = "git";
-        url = "https://github.com/pkg/errors";
-        rev =  "645ef00459ed84a119197bfb8d8205042c6df63d";
-        sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/sdboyer/constext";
-      fetch = {
-        type = "git";
-        url = "https://github.com/sdboyer/constext";
-        rev =  "836a144573533ea4da4e6929c235fd348aed1c80";
-        sha256 = "0055yw73di4spa1wwpa2pyb708wmh9r3xd8dcv8pn81dba94if1w";
-      };
-    }
-    
-    {
-      goPackagePath  = "golang.org/x/net";
-      fetch = {
-        type = "git";
-        url = "https://go.googlesource.com/net";
-        rev =  "dc948dff8834a7fe1ca525f8d04e261c2b56e70d";
-        sha256 = "0gkw1am63agb1rgpxr2qhns9npr99mzwrxg7px88qq8h93zzd4kg";
-      };
-    }
-    
-    {
-      goPackagePath  = "golang.org/x/sync";
-      fetch = {
-        type = "git";
-        url = "https://go.googlesource.com/sync";
-        rev =  "fd80eb99c8f653c847d294a001bdf2a3a6f768f5";
-        sha256 = "12lzldlj1cqc1babp1hkkn76fglzn5abkqvmbpr4f2j95mf9x836";
-      };
-    }
-    
-    {
-      goPackagePath  = "golang.org/x/sys";
-      fetch = {
-        type = "git";
-        url = "https://go.googlesource.com/sys";
-        rev =  "37707fdb30a5b38865cfb95e5aab41707daec7fd";
-        sha256 = "1abrr2507a737hdqv4q7pw7hv6ls9pdiq9crhdi52r3gcz6hvizg";
-      };
-    }
-    
+# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
+[
+  {
+    goPackagePath  = "github.com/Masterminds/semver";
+    fetch = {
+      type = "git";
+      url = "https://github.com/carolynvs/semver.git";
+      rev =  "a93e51b5a57ef416dac8bb02d11407b6f55d8929";
+      sha256 = "1rd3p135r7iw0lvaa6vk7afxna87chq61a7a0wqnxd3xgpnpa9ik";
+    };
+  }
+  {
+    goPackagePath  = "github.com/Masterminds/vcs";
+    fetch = {
+      type = "git";
+      url = "https://github.com/Masterminds/vcs";
+      rev =  "6f1c6d150500e452704e9863f68c2559f58616bf";
+      sha256 = "02bpyzccazw9lwqchcz349al4vlxnz4m5gzwigk02zg2qpa1j53j";
+    };
+  }
+  {
+    goPackagePath  = "github.com/armon/go-radix";
+    fetch = {
+      type = "git";
+      url = "https://github.com/armon/go-radix";
+      rev =  "1fca145dffbcaa8fe914309b1ec0cfc67500fe61";
+      sha256 = "19jws9ngncpbhghzcy7biyb4r8jh14mzknyk67cvq6ln7kh1qyic";
+    };
+  }
+  {
+    goPackagePath  = "github.com/boltdb/bolt";
+    fetch = {
+      type = "git";
+      url = "https://github.com/boltdb/bolt";
+      rev =  "2f1ce7a837dcb8da3ec595b1dac9d0632f0f99e8";
+      sha256 = "0z7j06lijfi4y30ggf2znak2zf2srv2m6c68ar712wd2ys44qb3r";
+    };
+  }
+  {
+    goPackagePath  = "github.com/golang/dep";
+    fetch = {
+      type = "git";
+      url = "https://github.com/CrushedPixel/dep";
+      rev =  "fa9f32339c8855ebe7e7bc66e549036a7e06d37a";
+      sha256 = "1knaxs1ji1b0b68393f24r8qzvahxz9x7rqwc8jsjlshvpz0hlm6";
+    };
+  }
+  {
+    goPackagePath  = "github.com/golang/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/protobuf";
+      rev =  "bbd03ef6da3a115852eaf24c8a1c46aeb39aa175";
+      sha256 = "1pyli3dcagi7jzpiazph4fhkz7a3z4bhd25nwbb7g0iy69b8z1g4";
+    };
+  }
+  {
+    goPackagePath  = "github.com/jmank88/nuts";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jmank88/nuts";
+      rev =  "8b28145dffc87104e66d074f62ea8080edfad7c8";
+      sha256 = "1d0xj1dj1lfalq3pg15h0c645n84lf122xx3zkm7hawq9zri6n5k";
+    };
+  }
+  {
+    goPackagePath  = "github.com/nightlyone/lockfile";
+    fetch = {
+      type = "git";
+      url = "https://github.com/nightlyone/lockfile";
+      rev =  "6a197d5ea61168f2ac821de2b7f011b250904900";
+      sha256 = "03znnf6rzyyi4h4qj81py1xpfs3pnfm39j4bfc9qzakz5j9y1gdl";
+    };
+  }
+  {
+    goPackagePath  = "github.com/pelletier/go-toml";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pelletier/go-toml";
+      rev =  "acdc4509485b587f5e675510c4f2c63e90ff68a8";
+      sha256 = "1y5m9pngxhsfzcnxh8ma5nsllx74wn0jr47p2n6i3inrjqxr12xh";
+    };
+  }
+  {
+    goPackagePath  = "github.com/pkg/errors";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pkg/errors";
+      rev =  "645ef00459ed84a119197bfb8d8205042c6df63d";
+      sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
+    };
+  }
+  {
+    goPackagePath  = "github.com/sdboyer/constext";
+    fetch = {
+      type = "git";
+      url = "https://github.com/sdboyer/constext";
+      rev =  "836a144573533ea4da4e6929c235fd348aed1c80";
+      sha256 = "0055yw73di4spa1wwpa2pyb708wmh9r3xd8dcv8pn81dba94if1w";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev =  "dc948dff8834a7fe1ca525f8d04e261c2b56e70d";
+      sha256 = "0gkw1am63agb1rgpxr2qhns9npr99mzwrxg7px88qq8h93zzd4kg";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/sync";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sync";
+      rev =  "fd80eb99c8f653c847d294a001bdf2a3a6f768f5";
+      sha256 = "12lzldlj1cqc1babp1hkkn76fglzn5abkqvmbpr4f2j95mf9x836";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev =  "37707fdb30a5b38865cfb95e5aab41707daec7fd";
+      sha256 = "1abrr2507a737hdqv4q7pw7hv6ls9pdiq9crhdi52r3gcz6hvizg";
+    };
+  }
 ]
diff --git a/pkgs/development/tools/ginkgo/default.nix b/pkgs/development/tools/ginkgo/default.nix
index d3907718e9d4d..cf2e649962c6e 100644
--- a/pkgs/development/tools/ginkgo/default.nix
+++ b/pkgs/development/tools/ginkgo/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "ginkgo";
-  version = "1.14.0";
+  version = "1.14.1";
 
   src = fetchFromGitHub {
     owner = "onsi";
     repo = "ginkgo";
     rev = "v${version}";
-    sha256 = "0nwvz0pqk2jqscq88fhppad4flrr8avkxfgbci4xklbar4g8i32v";
+    sha256 = "01nn33r1rg210zv0qmck0b16545gzr057w1kz8ca86l64qrwbcxx";
   };
   vendorSha256 = "072amyw1ir18v9vk268j2y7dhw3lfwvxzvzsdqhnp50rxsa911bx";
   doCheck = false;
diff --git a/pkgs/development/tools/go-migrate/default.nix b/pkgs/development/tools/go-migrate/default.nix
index 2864308c14d83..ee942beb92cc7 100644
--- a/pkgs/development/tools/go-migrate/default.nix
+++ b/pkgs/development/tools/go-migrate/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "go-migrate";
-  version = "4.11.0";
+  version = "4.12.2";
 
   src = fetchFromGitHub {
     owner = "golang-migrate";
     repo = "migrate";
     rev = "v${version}";
-    sha256 = "Dw+TiuksgOfFBCzNc9rsxyQCoXES+fpr4wTrZfqohGM=";
+    sha256 = "0vrc9y90aamj618sfipq2sgzllhdr4hmicj4yvl147klwb1rxlz6";
   };
 
-  vendorSha256 = "CezVFRZ/cknvK4t/MjyP46zJACGkzj4CZ5JVQ502Ihw=";
+  vendorSha256 = "0jpz5xvwsw4l7nmi7s1grvbfy4xjp50hrjycwicgv2ll719gz5v0";
 
   subPackages = [ "cmd/migrate" ];
 
diff --git a/pkgs/development/tools/gotestsum/default.nix b/pkgs/development/tools/gotestsum/default.nix
index 9046a2ef82fec..71bccc74ce650 100644
--- a/pkgs/development/tools/gotestsum/default.nix
+++ b/pkgs/development/tools/gotestsum/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "gotestsum";
-  version = "0.5.2";
+  version = "0.5.3";
 
   src = fetchFromGitHub {
     owner = "gotestyourself";
     repo = "gotestsum";
     rev = "v${version}";
-    sha256 = "08bb865gl1ykqr7wm7a1jikjdlc2dqv1f3hllnwwr630c8y4k806";
+    sha256 = "1jq529m788yp3b6j4dhxgcw7qm1lyxx1ir2vwr41vp7gh17fmwar";
   };
 
   vendorSha256 = "1injixhllv41glb3yz276gjrkiwwkfimrhb367d2pvjpzqmhplan";
@@ -17,6 +17,8 @@ buildGoModule rec {
 
   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";
diff --git a/pkgs/development/tools/haskell/haskell-language-server/default.nix b/pkgs/development/tools/haskell/haskell-language-server/default.nix
index 9373b902dbd78..c29ed6ce07ef7 100644
--- a/pkgs/development/tools/haskell/haskell-language-server/default.nix
+++ b/pkgs/development/tools/haskell/haskell-language-server/default.nix
@@ -11,11 +11,11 @@
 }:
 mkDerivation {
   pname = "haskell-language-server";
-  version = "0.3.0.0";
+  version = "0.4.0.0";
   src = fetchgit {
     url = "https://github.com/haskell/haskell-language-server.git";
-    sha256 = "0gh3sgy6a08d8d3q6r2qn5r817ilzka2qkp0g0y6wsx7rjwag0yx";
-    rev = "23dda97f583e8ff39993b89c01bbd1ac24187605";
+    sha256 = "157bsq6i824bl6krw7znp0byd8ibaqsq7mfwnkl741dmrflsxpa9";
+    rev = "cb861b878ae01911b066182ff0d8080050c3b2d6";
     fetchSubmodules = true;
   };
   isLibrary = true;
diff --git a/pkgs/development/tools/haskell/haskell-language-server/hls-ghcide.nix b/pkgs/development/tools/haskell/haskell-language-server/hls-ghcide.nix
index 9674ca1272d45..c6a9b31fb7383 100644
--- a/pkgs/development/tools/haskell/haskell-language-server/hls-ghcide.nix
+++ b/pkgs/development/tools/haskell/haskell-language-server/hls-ghcide.nix
@@ -17,9 +17,9 @@ mkDerivation {
   pname = "ghcide";
   version = "0.2.0";
   src = fetchgit {
-    url = "https://github.com/wz1000/ghcide";
-    sha256 = "112bsk2660750n94gnsgrvd30rk0ccxb8dbhka606a11pcqv5cgx";
-    rev = "3f6cd4553279ec47d1599b502720791a4f4613cd";
+    url = "https://github.com/haskell/ghcide";
+    sha256 = "1zq7ngaak8il91a309rl51dghzasnk4m2sm3av6d93cyqyra1hfc";
+    rev = "078e3d3c0d319f83841ccbcdc60ff5f0e243f6be";
     fetchSubmodules = true;
   };
   isLibrary = true;
diff --git a/pkgs/development/tools/haskell/haskell-language-server/update.sh b/pkgs/development/tools/haskell/haskell-language-server/update.sh
index 002ccab401112..2f2741e9a49aa 100755
--- a/pkgs/development/tools/haskell/haskell-language-server/update.sh
+++ b/pkgs/development/tools/haskell/haskell-language-server/update.sh
@@ -29,7 +29,7 @@ ghcide_new_version=$(curl --silent "https://api.github.com/repos/haskell/haskell
 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/wz1000/ghcide" > "$ghcide_derivation_file"
+cabal2nix --revision "$ghcide_new_version" "https://github.com/haskell/ghcide" > "$ghcide_derivation_file"
 
 
 # ===========================
diff --git a/pkgs/development/tools/hcloud/default.nix b/pkgs/development/tools/hcloud/default.nix
index 0044426b4d41a..704477421ceb4 100644
--- a/pkgs/development/tools/hcloud/default.nix
+++ b/pkgs/development/tools/hcloud/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "hcloud";
-  version = "1.17.0";
+  version = "1.19.1";
 
   src = fetchFromGitHub {
     owner = "hetznercloud";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "1brqqcyyljkdd24ljx2qbr648ihhhmr8mq6gs90n63r59ci6ksch";
+    sha256 = "0iq04jfqvmwlm6947kzz4c3a33lvwxvj42z179rc3126b5v7bq54";
   };
 
   nativeBuildInputs = [ installShellFiles ];
 
-  vendorSha256 = "1m96j9cwqz2b67byf53qhgl3s0vfwaklj2pm8364qih0ilvifppj";
+  vendorSha256 = "1svwrb5wyz5d8fgx36bpypnfq4hmpfxyd197cla9wnqpbkia7n5r";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/java/visualvm/default.nix b/pkgs/development/tools/java/visualvm/default.nix
index ab90cbea83d5a..6cf97277bb5a9 100644
--- a/pkgs/development/tools/java/visualvm/default.nix
+++ b/pkgs/development/tools/java/visualvm/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchzip, lib, makeWrapper, makeDesktopItem, jdk, gawk }:
 
 stdenv.mkDerivation rec {
-  version = "2.0.3";
+  version = "2.0.4";
   pname = "visualvm";
 
   src = fetchzip {
     url = "https://github.com/visualvm/visualvm.src/releases/download/${version}/visualvm_${builtins.replaceStrings ["."] [""]  version}.zip";
-    sha256 = "1pwgsasja30xbm1ma0kp4nami2nwyy6aizam8nfl6jd7jkz4d7mk";
+    sha256 = "1ic6gjsw90j7pr1yyplmk1zc319ld49i6d4zlgs7mlz1m4bn5jv3";
   };
 
   desktopItem = makeDesktopItem {
diff --git a/pkgs/development/compilers/kcc/default.nix b/pkgs/development/tools/knightos/kcc/default.nix
index 49851dd0c074a..49851dd0c074a 100644
--- a/pkgs/development/compilers/kcc/default.nix
+++ b/pkgs/development/tools/knightos/kcc/default.nix
diff --git a/pkgs/development/tools/misc/kimg/default.nix b/pkgs/development/tools/knightos/kimg/default.nix
index b6f490e1d9d49..b6f490e1d9d49 100644
--- a/pkgs/development/tools/misc/kimg/default.nix
+++ b/pkgs/development/tools/knightos/kimg/default.nix
diff --git a/pkgs/development/tools/misc/kpack/default.nix b/pkgs/development/tools/knightos/kpack/default.nix
index 96af43e61605e..96af43e61605e 100644
--- a/pkgs/development/tools/misc/kpack/default.nix
+++ b/pkgs/development/tools/knightos/kpack/default.nix
diff --git a/pkgs/development/tools/misc/mkrom/default.nix b/pkgs/development/tools/knightos/mkrom/default.nix
index eec63f75e71c7..eec63f75e71c7 100644
--- a/pkgs/development/tools/misc/mkrom/default.nix
+++ b/pkgs/development/tools/knightos/mkrom/default.nix
diff --git a/pkgs/development/compilers/scas/default.nix b/pkgs/development/tools/knightos/scas/default.nix
index e80724c8a4ccc..ad21e68eed8cc 100644
--- a/pkgs/development/compilers/scas/default.nix
+++ b/pkgs/development/tools/knightos/scas/default.nix
@@ -3,20 +3,20 @@
 
 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.";
diff --git a/pkgs/development/tools/lazygit/default.nix b/pkgs/development/tools/lazygit/default.nix
index 7425357536cae..a0bdfdb083d29 100644
--- a/pkgs/development/tools/lazygit/default.nix
+++ b/pkgs/development/tools/lazygit/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "lazygit";
-  version = "0.20.9";
+  version = "0.22.1";
 
   goPackagePath = "github.com/jesseduffield/lazygit";
 
@@ -12,7 +12,7 @@ buildGoPackage rec {
     owner = "jesseduffield";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1jmg2z8yza8cy6xcyam4pvk0sp6zvw6b8vbn3b3h0pklfa7wz9pg";
+    sha256 = "1jq093nsfh7xqvsjvaad9wvqd3rjrpyp5fl8qxwbhaj3sxx19v7g";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/leaps/deps.nix b/pkgs/development/tools/leaps/deps.nix
index afaf42779b3ee..ee06659c72ec6 100644
--- a/pkgs/development/tools/leaps/deps.nix
+++ b/pkgs/development/tools/leaps/deps.nix
@@ -1,185 +1,165 @@
-
-  # file automatically generated from Gopkg.lock with https://github.com/nixcloud/dep2nix (golang dep)
-  [
-  
-    {
-      goPackagePath  = "github.com/Azure/go-autorest";
-      fetch = {
-        type = "git";
-        url = "https://github.com/Azure/go-autorest";
-        rev =  "fc3b03a2d2d1f43fad3007038bd16f044f870722";
-        sha256 = "1j6aqbizlpiqcywdsj4dy4i76g8fbqc7d61c22ppc9knw0968h4r";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/Jeffail/gabs";
-      fetch = {
-        type = "git";
-        url = "https://github.com/Jeffail/gabs";
-        rev =  "2a3aa15961d5fee6047b8151b67ac2f08ba2c48c";
-        sha256 = "1fx6fyl5x037viwlj319f3gsq749an17q5l6n2zvf3ny5wq0iqxr";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/amir/raidman";
-      fetch = {
-        type = "git";
-        url = "https://github.com/amir/raidman";
-        rev =  "1ccc43bfb9c93cb401a4025e49c64ba71e5e668b";
-        sha256 = "074ckbyslrwn23q4x01hn3j7c3xngagn36lbli2g51n9j3x14jxr";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/azure/azure-sdk-for-go";
-      fetch = {
-        type = "git";
-        url = "https://github.com/azure/azure-sdk-for-go";
-        rev =  "21b68149ccf7c16b3f028bb4c7fd0ab458fe308f";
-        sha256 = "0zlhrh3n9mc5w7r0sdaqmpqfm2d290b50an0k1bvrr892m4cnxaq";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/cenkalti/backoff";
-      fetch = {
-        type = "git";
-        url = "https://github.com/cenkalti/backoff";
-        rev =  "61153c768f31ee5f130071d08fc82b85208528de";
-        sha256 = "08x77mgb9zsj047n74rx6c16jjx985lmy4s6fl58mdgxgxjv54y5";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/dgrijalva/jwt-go";
-      fetch = {
-        type = "git";
-        url = "https://github.com/dgrijalva/jwt-go";
-        rev =  "dbeaa9332f19a944acb5736b4456cfcc02140e29";
-        sha256 = "0zk6l6kzsjdijfn7c4h0aywdjx5j2hjwi67vy1k6wr46hc8ks2hs";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/elazarl/go-bindata-assetfs";
-      fetch = {
-        type = "git";
-        url = "https://github.com/elazarl/go-bindata-assetfs";
-        rev =  "30f82fa23fd844bd5bb1e5f216db87fd77b5eb43";
-        sha256 = "1swfb37g6sga3awvcmxf49ngbpvjv7ih5an9f8ixjqcfcwnb7nzp";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/garyburd/redigo";
-      fetch = {
-        type = "git";
-        url = "https://github.com/garyburd/redigo";
-        rev =  "d1ed5c67e5794de818ea85e6b522fda02623a484";
-        sha256 = "0gw18k9kg93hvdks93hckrdqppg1bav82sp2c98q6z36dkvaih24";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/go-sql-driver/mysql";
-      fetch = {
-        type = "git";
-        url = "https://github.com/go-sql-driver/mysql";
-        rev =  "a0583e0143b1624142adab07e0e97fe106d99561";
-        sha256 = "1rw1m91dpm23s6nn6jc4zi6rq2mgl7zx07gyadrdn0sh7cj8c89d";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/golang/protobuf";
-      fetch = {
-        type = "git";
-        url = "https://github.com/golang/protobuf";
-        rev =  "925541529c1fa6821df4e44ce2723319eb2be768";
-        sha256 = "1d3zjvhl115l23xakj0014qpjchivlg098h10v5nfirkk1i9f9sa";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/gorilla/websocket";
-      fetch = {
-        type = "git";
-        url = "https://github.com/gorilla/websocket";
-        rev =  "ea4d1f681babbce9545c9c5f3d5194a789c89f5b";
-        sha256 = "1bhgs2542qs49p1dafybqxfs2qc072xv41w5nswyrknwyjxxs2a1";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/kardianos/osext";
-      fetch = {
-        type = "git";
-        url = "https://github.com/kardianos/osext";
-        rev =  "ae77be60afb1dcacde03767a8c37337fad28ac14";
-        sha256 = "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/lib/pq";
-      fetch = {
-        type = "git";
-        url = "https://github.com/lib/pq";
-        rev =  "88edab0803230a3898347e77b474f8c1820a1f20";
-        sha256 = "02y7c8xy33x5q4167x2drzrys41nfi7wxxp9hy4vpazfws88al9p";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/marstr/guid";
-      fetch = {
-        type = "git";
-        url = "https://github.com/marstr/guid";
-        rev =  "8bdf7d1a087ccc975cf37dd6507da50698fd19ca";
-        sha256 = "1mxcigzfc1bbh5b616hm89bp06allhwcsas9v9lks235h0acgn4x";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/satori/go.uuid";
-      fetch = {
-        type = "git";
-        url = "https://github.com/satori/go.uuid";
-        rev =  "f58768cc1a7a7e77a3bd49e98cdd21419399b6a3";
-        sha256 = "1j4s5pfg2ldm35y8ls8jah4dya2grfnx2drb4jcbjsyrp4cm5yfb";
-      };
-    }
-    
-    {
-      goPackagePath  = "golang.org/x/net";
-      fetch = {
-        type = "git";
-        url = "https://go.googlesource.com/net";
-        rev =  "cbe0f9307d0156177f9dd5dc85da1a31abc5f2fb";
-        sha256 = "1hmpqkxh97ayyy0xcdvf1bwirwja4wyin3sh0fzjlh93aqmqgylf";
-      };
-    }
-    
-    {
-      goPackagePath  = "gopkg.in/alexcesaro/statsd.v2";
-      fetch = {
-        type = "git";
-        url = "https://gopkg.in/alexcesaro/statsd.v2";
-        rev =  "7fea3f0d2fab1ad973e641e51dba45443a311a90";
-        sha256 = "02jdx68vicwsgabrnwgg1rvc45rinyh8ikinqgbqc56c5hkx3brj";
-      };
-    }
-    
-    {
-      goPackagePath  = "gopkg.in/yaml.v2";
-      fetch = {
-        type = "git";
-        url = "https://gopkg.in/yaml.v2";
-        rev =  "d670f9405373e636a5a2765eea47fac0c9bc91a4";
-        sha256 = "1w1xid51n8v1mydn2m3vgggw8qgpd5a5sr62snsc77d99fpjsrs0";
-      };
-    }
-    
-]
\ No newline at end of file
+# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
+[
+  {
+    goPackagePath  = "github.com/Azure/go-autorest";
+    fetch = {
+      type = "git";
+      url = "https://github.com/Azure/go-autorest";
+      rev =  "fc3b03a2d2d1f43fad3007038bd16f044f870722";
+      sha256 = "1j6aqbizlpiqcywdsj4dy4i76g8fbqc7d61c22ppc9knw0968h4r";
+    };
+  }
+  {
+    goPackagePath  = "github.com/Jeffail/gabs";
+    fetch = {
+      type = "git";
+      url = "https://github.com/Jeffail/gabs";
+      rev =  "2a3aa15961d5fee6047b8151b67ac2f08ba2c48c";
+      sha256 = "1fx6fyl5x037viwlj319f3gsq749an17q5l6n2zvf3ny5wq0iqxr";
+    };
+  }
+  {
+    goPackagePath  = "github.com/amir/raidman";
+    fetch = {
+      type = "git";
+      url = "https://github.com/amir/raidman";
+      rev =  "1ccc43bfb9c93cb401a4025e49c64ba71e5e668b";
+      sha256 = "074ckbyslrwn23q4x01hn3j7c3xngagn36lbli2g51n9j3x14jxr";
+    };
+  }
+  {
+    goPackagePath  = "github.com/azure/azure-sdk-for-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/azure/azure-sdk-for-go";
+      rev =  "21b68149ccf7c16b3f028bb4c7fd0ab458fe308f";
+      sha256 = "0zlhrh3n9mc5w7r0sdaqmpqfm2d290b50an0k1bvrr892m4cnxaq";
+    };
+  }
+  {
+    goPackagePath  = "github.com/cenkalti/backoff";
+    fetch = {
+      type = "git";
+      url = "https://github.com/cenkalti/backoff";
+      rev =  "61153c768f31ee5f130071d08fc82b85208528de";
+      sha256 = "08x77mgb9zsj047n74rx6c16jjx985lmy4s6fl58mdgxgxjv54y5";
+    };
+  }
+  {
+    goPackagePath  = "github.com/dgrijalva/jwt-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/dgrijalva/jwt-go";
+      rev =  "dbeaa9332f19a944acb5736b4456cfcc02140e29";
+      sha256 = "0zk6l6kzsjdijfn7c4h0aywdjx5j2hjwi67vy1k6wr46hc8ks2hs";
+    };
+  }
+  {
+    goPackagePath  = "github.com/elazarl/go-bindata-assetfs";
+    fetch = {
+      type = "git";
+      url = "https://github.com/elazarl/go-bindata-assetfs";
+      rev =  "30f82fa23fd844bd5bb1e5f216db87fd77b5eb43";
+      sha256 = "1swfb37g6sga3awvcmxf49ngbpvjv7ih5an9f8ixjqcfcwnb7nzp";
+    };
+  }
+  {
+    goPackagePath  = "github.com/garyburd/redigo";
+    fetch = {
+      type = "git";
+      url = "https://github.com/garyburd/redigo";
+      rev =  "d1ed5c67e5794de818ea85e6b522fda02623a484";
+      sha256 = "0gw18k9kg93hvdks93hckrdqppg1bav82sp2c98q6z36dkvaih24";
+    };
+  }
+  {
+    goPackagePath  = "github.com/go-sql-driver/mysql";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-sql-driver/mysql";
+      rev =  "a0583e0143b1624142adab07e0e97fe106d99561";
+      sha256 = "1rw1m91dpm23s6nn6jc4zi6rq2mgl7zx07gyadrdn0sh7cj8c89d";
+    };
+  }
+  {
+    goPackagePath  = "github.com/golang/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/protobuf";
+      rev =  "925541529c1fa6821df4e44ce2723319eb2be768";
+      sha256 = "1d3zjvhl115l23xakj0014qpjchivlg098h10v5nfirkk1i9f9sa";
+    };
+  }
+  {
+    goPackagePath  = "github.com/gorilla/websocket";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gorilla/websocket";
+      rev =  "ea4d1f681babbce9545c9c5f3d5194a789c89f5b";
+      sha256 = "1bhgs2542qs49p1dafybqxfs2qc072xv41w5nswyrknwyjxxs2a1";
+    };
+  }
+  {
+    goPackagePath  = "github.com/kardianos/osext";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kardianos/osext";
+      rev =  "ae77be60afb1dcacde03767a8c37337fad28ac14";
+      sha256 = "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz";
+    };
+  }
+  {
+    goPackagePath  = "github.com/lib/pq";
+    fetch = {
+      type = "git";
+      url = "https://github.com/lib/pq";
+      rev =  "88edab0803230a3898347e77b474f8c1820a1f20";
+      sha256 = "02y7c8xy33x5q4167x2drzrys41nfi7wxxp9hy4vpazfws88al9p";
+    };
+  }
+  {
+    goPackagePath  = "github.com/marstr/guid";
+    fetch = {
+      type = "git";
+      url = "https://github.com/marstr/guid";
+      rev =  "8bdf7d1a087ccc975cf37dd6507da50698fd19ca";
+      sha256 = "1mxcigzfc1bbh5b616hm89bp06allhwcsas9v9lks235h0acgn4x";
+    };
+  }
+  {
+    goPackagePath  = "github.com/satori/go.uuid";
+    fetch = {
+      type = "git";
+      url = "https://github.com/satori/go.uuid";
+      rev =  "f58768cc1a7a7e77a3bd49e98cdd21419399b6a3";
+      sha256 = "1j4s5pfg2ldm35y8ls8jah4dya2grfnx2drb4jcbjsyrp4cm5yfb";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev =  "cbe0f9307d0156177f9dd5dc85da1a31abc5f2fb";
+      sha256 = "1hmpqkxh97ayyy0xcdvf1bwirwja4wyin3sh0fzjlh93aqmqgylf";
+    };
+  }
+  {
+    goPackagePath  = "gopkg.in/alexcesaro/statsd.v2";
+    fetch = {
+      type = "git";
+      url = "https://github.com/alexcesaro/statsd";
+      rev =  "7fea3f0d2fab1ad973e641e51dba45443a311a90";
+      sha256 = "02jdx68vicwsgabrnwgg1rvc45rinyh8ikinqgbqc56c5hkx3brj";
+    };
+  }
+  {
+    goPackagePath  = "gopkg.in/yaml.v2";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-yaml/yaml";
+      rev =  "d670f9405373e636a5a2765eea47fac0c9bc91a4";
+      sha256 = "1w1xid51n8v1mydn2m3vgggw8qgpd5a5sr62snsc77d99fpjsrs0";
+    };
+  }
+]
diff --git a/pkgs/development/tools/misc/act/default.nix b/pkgs/development/tools/misc/act/default.nix
index c1c915cb8e466..3864337badf2c 100644
--- a/pkgs/development/tools/misc/act/default.nix
+++ b/pkgs/development/tools/misc/act/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "act";
-  version = "0.2.10";
+  version = "0.2.13";
 
   src = fetchFromGitHub {
     owner = "nektos";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0xmrb8wbxkb52l2c7fxxy5wa9lsl591fl65zicv0nrbil36q4wfd";
+    sha256 = "112vmq9wg31alw9lw1jmsdvkd7kz1d9ak4p9dli7vgr9rhdf0hnb";
   };
 
-  vendorSha256 = "0qf26g0a2j1mbzlc7xjackww22w9bl1x0iw3q1x6kq7fp8xiwhdn";
+  vendorSha256 = "0bcrw3hf92m7n58lrlm0vj1wiwwy82q2rl1a725q3d6xwvi5kh9h";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/misc/asls/default.nix b/pkgs/development/tools/misc/asls/default.nix
index 6999eb3e47a4a..5b53456deac6e 100644
--- a/pkgs/development/tools/misc/asls/default.nix
+++ b/pkgs/development/tools/misc/asls/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "asls";
-  version = "0.4.2";
+  version = "0.5.0";
 
   src = fetchurl {
     url = "https://github.com/saulecabrera/asls/releases/download/v${version}/bin.tar.gz";
-    sha256 = "14dcms0xl6dncwf16vixvf7rq7g15iwq8h4vja0dsiisyfm08aks";
+    sha256 = "1h6r2lbf54aylzmbiy74ys42fhjv9q824bdrcp40gxx1v2yjc5h5";
   };
 
   buildInputs = [ erlangR22 ];
diff --git a/pkgs/development/tools/misc/clojure-lsp/default.nix b/pkgs/development/tools/misc/clojure-lsp/default.nix
index 09313cd780fcb..65f12bfbb098e 100644
--- a/pkgs/development/tools/misc/clojure-lsp/default.nix
+++ b/pkgs/development/tools/misc/clojure-lsp/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "clojure-lsp";
-  version = "20200819T134828";
+  version = "20200828T065654";
 
   src = fetchurl {
     url = "https://github.com/snoe/clojure-lsp/releases/download/release-${version}/${pname}";
-    sha256 = "0nfi6wf78z0xm0mgsz83pn1v4mr76h2d5rva3xan4hn8gpd1s57s";
+    sha256 = "1399xjcnnb7vazy1jv3h7lnh1dyn81yk2bwi6ai991a9fsinjnf2";
   };
 
   dontUnpack = true;
diff --git a/pkgs/development/tools/misc/hydra/default.nix b/pkgs/development/tools/misc/hydra/default.nix
index 716a305878529..a6b0383d54f78 100644
--- a/pkgs/development/tools/misc/hydra/default.nix
+++ b/pkgs/development/tools/misc/hydra/default.nix
@@ -24,12 +24,12 @@
   # so when having an older version, `pkgs.hydra-migration` should be deployed first.
 
   hydra-unstable = callPackage ./common.nix {
-    version = "2020-08-04";
+    version = "2020-09-02";
     src = fetchFromGitHub {
       owner = "NixOS";
       repo = "hydra";
-      rev = "77c33c1d71a8c303f53ccad577eb0a3799e87bda";
-      sha256 = "10pwiww96dbbszzvnj7abn851h89n30ziahjj2zm3liyzyvbylyf";
+      rev = "e707990e2d6afab203c7ef1d769d49c564eff151";
+      sha256 = "0iilf953f6s58szzyd1hzc9b2b2yw8lhbsb8xrb08szpfz7ifwqa";
     };
     nix = nixFlakes;
 
diff --git a/pkgs/development/tools/misc/svls/default.nix b/pkgs/development/tools/misc/svls/default.nix
new file mode 100644
index 0000000000000..f04c93e7a171e
--- /dev/null
+++ b/pkgs/development/tools/misc/svls/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "svls";
+  version = "0.1.17";
+
+  src = fetchFromGitHub {
+    owner = "dalance";
+    repo = "svls";
+    rev = "v${version}";
+    sha256 = "0qcd9pkshk94c6skzld8cyzppl05hk4vcmmaya8r9l6kdi1f4b5m";
+  };
+
+  cargoSha256 = "0dqa7iw0sffzh07qysznh7ma3d3vl5fhd0i2qmz7a3dvw8mvyvsm";
+
+  meta = with lib; {
+    description = "SystemVerilog language server";
+    homepage = "https://github.com/dalance/svls";
+    license = licenses.mit;
+    maintainers = with maintainers; [ trepetti ];
+  };
+}
diff --git a/pkgs/development/tools/misc/swig/4.nix b/pkgs/development/tools/misc/swig/4.nix
index a35a9a35281dd..4096b7353fa48 100644
--- a/pkgs/development/tools/misc/swig/4.nix
+++ b/pkgs/development/tools/misc/swig/4.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "swig";
-  version = "4.0.1";
+  version = "4.0.2";
 
   src = fetchFromGitHub {
     owner = "swig";
     repo = "swig";
     rev = "rel-${version}";
-    sha256 = "1i1gl5gd6b5i1hiazq7m4nvlq86zd0fhk052xhwlnb596pjhgyhf";
+    sha256 = "12vlps766xvwck8q0i280s8yx21qm2dxl34710ybpmz3c1cfdjsc";
   };
 
   PCRE_CONFIG = "${pcre.dev}/bin/pcre-config";
diff --git a/pkgs/development/tools/ocaml/dune/2.nix b/pkgs/development/tools/ocaml/dune/2.nix
index eac705294f396..30823b43acbc8 100644
--- a/pkgs/development/tools/ocaml/dune/2.nix
+++ b/pkgs/development/tools/ocaml/dune/2.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, ocaml, findlib }:
+{ stdenv, fetchurl, ocaml, findlib, fetchpatch }:
 
 if stdenv.lib.versionOlder ocaml.version "4.08"
 then throw "dune is not available for OCaml ${ocaml.version}"
@@ -6,17 +6,25 @@ else
 
 stdenv.mkDerivation rec {
   pname = "dune";
-  version = "2.7.0";
+  version = "2.7.1";
 
   src = fetchurl {
     url = "https://github.com/ocaml/dune/releases/download/${version}/dune-${version}.tbz";
-    sha256 = "058wiyncczbmlfxj3cnwn5n68wkmbaf4mgjm2bkp2hffpn2wl5xl";
+    sha256 = "0lnfmc06yhbdiv6mmp0aksnnvzz4aw4zabrdg89p5msyzir3qrvn";
   };
 
   buildInputs = [ ocaml findlib ];
 
   buildFlags = "release";
 
+  patches = [
+    # Fix setup.ml configure path. Remove with the next release.
+    (fetchpatch {
+      url = "https://github.com/ocaml/dune/commit/8a3d7f2f2015b71384caa07226d1a89dba9d6c25.patch";
+      sha256 = "0dw4q10030h9xcdlxw2vp7qm0hd2qpkb98rir5d55m9vn65w8j28";
+    })
+  ];
+
   dontAddPrefix = true;
 
   installFlags = [ "PREFIX=${placeholder "out"}" "LIBDIR=$(OCAMLFIND_DESTDIR)" ];
diff --git a/pkgs/development/tools/ocaml/merlin/default.nix b/pkgs/development/tools/ocaml/merlin/default.nix
index 4b11dd13983d3..54712be2b6ecd 100644
--- a/pkgs/development/tools/ocaml/merlin/default.nix
+++ b/pkgs/development/tools/ocaml/merlin/default.nix
@@ -2,13 +2,13 @@
 
 buildDunePackage rec {
   pname = "merlin";
-  version = "3.3.6";
+  version = "3.3.9";
 
   minimumOCamlVersion = "4.02.1";
 
   src = fetchurl {
     url = "https://github.com/ocaml/merlin/releases/download/v${version}/merlin-v${version}.tbz";
-    sha256 = "1360cm0jkn2v2y5p3yzdyw9661a1vpddcibkbfblmk95qafx4civ";
+    sha256 = "00ng8299l5rzpak8ljxzr6dgxw6z52ivm91159ahv09xk4d0y5x3";
   };
 
   buildInputs = [ yojson ];
diff --git a/pkgs/development/tools/ocaml/ocp-index/default.nix b/pkgs/development/tools/ocaml/ocp-index/default.nix
index b9404016b4e04..9c888e284fc57 100644
--- a/pkgs/development/tools/ocaml/ocp-index/default.nix
+++ b/pkgs/development/tools/ocaml/ocp-index/default.nix
@@ -1,15 +1,15 @@
-{ lib, fetchurl, buildDunePackage, ocp-build, ocp-indent, cmdliner, re }:
+{ lib, fetchzip, buildDunePackage, cppo, ocp-indent, cmdliner, re }:
 
 buildDunePackage rec {
   pname = "ocp-index";
-  version = "1.2";
+  version = "1.2.1";
 
-  src = fetchurl {
-    url = "https://github.com/OCamlPro/ocp-index/releases/download/${version}/ocp-index-${version}.tbz";
-    sha256 = "1lchw02sakjjppmzr0rzlarwbg1lc2bl7pwcfpsiycnaz46x6gmr";
+  src = fetchzip {
+    url = "https://github.com/OCamlPro/ocp-index/archive/${version}.tar.gz";
+    sha256 = "08r7mxdnxmhff37fw4hmrpjgckgi5kaiiiirwp4rmdl594z0h9c8";
   };
 
-  buildInputs = [ ocp-build cmdliner re ];
+  buildInputs = [ cppo cmdliner re ];
 
   propagatedBuildInputs = [ ocp-indent ];
 
diff --git a/pkgs/development/tools/packer/default.nix b/pkgs/development/tools/packer/default.nix
index dfcc2f1a747d3..909e821a6d1da 100644
--- a/pkgs/development/tools/packer/default.nix
+++ b/pkgs/development/tools/packer/default.nix
@@ -11,7 +11,7 @@ buildGoPackage rec {
     owner = "hashicorp";
     repo = "packer";
     rev = "v${version}";
-    sha256 = "104jw2jcshzds74d7m4yqn6mbk7lgps6qnqmp6h395b1mdyjhink";
+    sha256 = "0kr9whv3s0f8866yjmwg311j3kcj29bp5xwpnv43ama4m1mq3bm7";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/profiling/heaptrack/default.nix b/pkgs/development/tools/profiling/heaptrack/default.nix
index 817bb11717116..ed31f438a0aa8 100644
--- a/pkgs/development/tools/profiling/heaptrack/default.nix
+++ b/pkgs/development/tools/profiling/heaptrack/default.nix
@@ -6,13 +6,13 @@
 
 mkDerivation rec {
   pname = "heaptrack";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "KDE";
     repo = "heaptrack";
     rev = "v${version}";
-    sha256 = "0vgwldl5n41r4y3pv8w29gmyln0k2w6m59zrfw9psm4hkxvivzlx";
+    sha256 = "0pw82c26da014i1qxnaib3fqa52ijhf0m4swhjc3qq4hm2dx9bxj";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules ];
diff --git a/pkgs/development/tools/rust/cbindgen/default.nix b/pkgs/development/tools/rust/cbindgen/default.nix
index 655d726e66ecc..62b9a616644db 100644
--- a/pkgs/development/tools/rust/cbindgen/default.nix
+++ b/pkgs/development/tools/rust/cbindgen/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rust-cbindgen";
-  version = "0.14.3";
+  version = "0.14.4";
 
   src = fetchFromGitHub {
     owner = "eqrion";
     repo = "cbindgen";
     rev = "v${version}";
-    sha256 = "0pw55334i10k75qkig8bgcnlsy613zw2p5j4xyz8v71s4vh1a58j";
+    sha256 = "06bis9kk3r0gishzmsq5wk3vv8r78ggk4m800562q2yhnhc37lfd";
   };
 
-  cargoSha256 = "0088ijnjhqfvdb1wxy9jc7hq8c0yxgj5brlg68n9vws1mz9rilpy";
+  cargoSha256 = "0x8lxlik4n8rmlydcp0vqyiqwqm98cgwvw3h5hm2zviv8v0y8jnr";
 
   buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
 
diff --git a/pkgs/development/tools/rust/rustup/default.nix b/pkgs/development/tools/rust/rustup/default.nix
index a51975b85caa2..e5ef80b87ee48 100644
--- a/pkgs/development/tools/rust/rustup/default.nix
+++ b/pkgs/development/tools/rust/rustup/default.nix
@@ -1,7 +1,13 @@
 { stdenv, lib, runCommand, patchelf
-, fetchFromGitHub, rustPlatform
+, fetchFromGitHub, rustPlatform, makeWrapper
 , pkgconfig, curl, zlib, Security, CoreServices }:
 
+let
+  libPath = lib.makeLibraryPath [
+    zlib # libz.so.1
+  ];
+in
+
 rustPlatform.buildRustPackage rec {
   pname = "rustup";
   version = "1.22.1";
@@ -15,7 +21,7 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "0ghjrx7y25s6rjp06h0iyv4195x7daj57bqza01i1j4hm5nkhqhi";
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ makeWrapper pkgconfig ];
 
   buildInputs = [
     curl zlib
@@ -24,19 +30,13 @@ rustPlatform.buildRustPackage rec {
   cargoBuildFlags = [ "--features no-self-update" ];
 
   patches = lib.optionals stdenv.isLinux [
-    (let
-      libPath = lib.makeLibraryPath [
-        zlib # libz.so.1
-      ];
-    in
-      (runCommand "0001-dynamically-patchelf-binaries.patch" { CC=stdenv.cc; patchelf = patchelf; libPath = "$ORIGIN/../lib:${libPath}"; } ''
-       export dynamicLinker=$(cat $CC/nix-support/dynamic-linker)
-       substitute ${./0001-dynamically-patchelf-binaries.patch} $out \
-         --subst-var patchelf \
-         --subst-var dynamicLinker \
-         --subst-var libPath
+    (runCommand "0001-dynamically-patchelf-binaries.patch" { CC=stdenv.cc; patchelf = patchelf; libPath = "$ORIGIN/../lib:${libPath}"; } ''
+     export dynamicLinker=$(cat $CC/nix-support/dynamic-linker)
+     substitute ${./0001-dynamically-patchelf-binaries.patch} $out \
+       --subst-var patchelf \
+       --subst-var dynamicLinker \
+       --subst-var libPath
     '')
-    )
   ];
 
   doCheck = !stdenv.isAarch64 && !stdenv.isDarwin;
@@ -53,6 +53,8 @@ rustPlatform.buildRustPackage rec {
     done
     popd
 
+    wrapProgram $out/bin/rustup --prefix "LD_LIBRARY_PATH" : "${libPath}"
+
     # tries to create .rustup
     export HOME=$(mktemp -d)
     mkdir -p "$out/share/"{bash-completion/completions,fish/vendor_completions.d,zsh/site-functions}
diff --git a/pkgs/development/tools/selenium/chromedriver/default.nix b/pkgs/development/tools/selenium/chromedriver/default.nix
index 8aad3230003ee..fc743d5601684 100644
--- a/pkgs/development/tools/selenium/chromedriver/default.nix
+++ b/pkgs/development/tools/selenium/chromedriver/default.nix
@@ -1,17 +1,17 @@
 { stdenv, fetchurl, cairo, fontconfig, freetype, gdk-pixbuf, glib
 , glibc, gtk2, libX11, makeWrapper, nspr, nss, pango, unzip, gconf
-, libXi, libXrender, libXext
+, libxcb, libXi, libXrender, libXext
 }:
 let
   allSpecs = {
     x86_64-linux = {
       system = "linux64";
-      sha256 = "149p43zaz45malmff1274r2bwjcyjwsdickivk3pd0mvnjbfid2r";
+      sha256 = "0absr1fp2h87gpyw6jxj2f08sbhkkh3pf13145hfyzdvajj5rfjy";
     };
 
     x86_64-darwin = {
       system = "mac64";
-      sha256 = "1xpyqxpsz3r653ls67s6alv4g2vr4lxf29gyxc162ikywyrx80nr";
+      sha256 = "1p9k92fgyx0xis6r50vhcpx3iws2gaspq3dnpigglv3bj9yg8zvi";
     };
   };
 
@@ -23,12 +23,12 @@ let
     cairo fontconfig freetype
     gdk-pixbuf glib gtk2 gconf
     libX11 nspr nss pango libXrender
-    gconf libXext libXi
+    gconf libxcb libXext libXi
   ];
 in
 stdenv.mkDerivation rec {
   pname = "chromedriver";
-  version = "83.0.4103.39";
+  version = "85.0.4183.87";
 
   src = fetchurl {
     url = "https://chromedriver.storage.googleapis.com/${version}/chromedriver_${spec.system}.zip";
diff --git a/pkgs/development/tools/skaffold/default.nix b/pkgs/development/tools/skaffold/default.nix
index a100988aead2b..f397348416c94 100644
--- a/pkgs/development/tools/skaffold/default.nix
+++ b/pkgs/development/tools/skaffold/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "skaffold";
-  version = "1.13.2";
+  version = "1.14.0";
 
   goPackagePath = "github.com/GoogleContainerTools/skaffold";
   subPackages = ["cmd/skaffold"];
@@ -19,7 +19,7 @@ buildGoPackage rec {
     owner = "GoogleContainerTools";
     repo = "skaffold";
     rev = "v${version}";
-    sha256 = "0xicf4bf52fnnwaimxrxv16x15lcmw12a5rrl0xjm4p059jnvy54";
+    sha256 = "18wk8cnp0sc47drgjc0iis4dkqwr9h5yxi40c1gjsiscrvy5akvc";
   };
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/development/tools/spring-boot-cli/default.nix b/pkgs/development/tools/spring-boot-cli/default.nix
index 15d6553bbb1b4..38573e0751463 100644
--- a/pkgs/development/tools/spring-boot-cli/default.nix
+++ b/pkgs/development/tools/spring-boot-cli/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "spring-boot-cli";
-  version = "2.3.1";
+  version = "2.3.2";
 
   src = fetchzip {
     url = "https://repo.spring.io/release/org/springframework/boot/${pname}/${version}.RELEASE/${pname}-${version}.RELEASE-bin.zip";
-    sha256 = "0ddmwcifrmw197vc49b0x8vfampj3n947r4vv4nni5vjclqqfds5";
+    sha256 = "1zqfnxz57234227rp303iwis0mjkkjkpcqnj9jgw78gykjnqdmmq";
   };
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
diff --git a/pkgs/development/tools/tracy/default.nix b/pkgs/development/tools/tracy/default.nix
index a5087b3b52c65..96f232304aafb 100644
--- a/pkgs/development/tools/tracy/default.nix
+++ b/pkgs/development/tools/tracy/default.nix
@@ -1,21 +1,21 @@
-{ stdenv, lib, darwin, fetchFromGitHub, tbb, gtk2, glfw, pkgconfig, freetype, Carbon, AppKit, capstone }:
+{ stdenv, lib, darwin, fetchFromGitHub, tbb, gtk3, glfw, pkgconfig, freetype, Carbon, AppKit, capstone }:
 
 stdenv.mkDerivation rec {
   pname = "tracy";
-  version = "0.7";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "wolfpld";
     repo = "tracy";
     rev = "v${version}";
-    sha256 = "07cmz2w7iv10f9i9q3fhg80s6riy9bxnk9xvc3q4lw47mc150skp";
+    sha256 = "13zg3ijzhh7qkhgqff2ca23nd4gj7ac8jr0bp9w1gjf2cpgqkm40";
   };
 
   nativeBuildInputs = [ pkgconfig ];
 
   buildInputs = [ glfw capstone ]
     ++ lib.optionals stdenv.isDarwin [ Carbon AppKit freetype ]
-    ++ lib.optionals stdenv.isLinux [ gtk2 tbb ];
+    ++ lib.optionals stdenv.isLinux [ gtk3 tbb ];
 
   NIX_CFLAGS_COMPILE = [ ]
     ++ lib.optional stdenv.isLinux "-ltbb"
@@ -35,11 +35,15 @@ stdenv.mkDerivation rec {
     install -D ./update/build/unix/update-release $out/bin/update
   '';
 
+  fixupPhase = lib.optionalString stdenv.isDarwin ''
+    install_name_tool -change libcapstone.4.dylib ${capstone}/lib/libcapstone.4.dylib $out/bin/Tracy
+  '';
+
   meta = with stdenv.lib; {
     description = "A real time, nanosecond resolution, remote telemetry frame profiler for games and other applications.";
     homepage = "https://github.com/wolfpld/tracy";
     platforms = platforms.linux ++ platforms.darwin;
     license = licenses.bsd3;
-    maintainers = with maintainers; [ mpickering ];
+    maintainers = with maintainers; [ mpickering nagisa ];
   };
 }
diff --git a/pkgs/development/tools/vcstool/default.nix b/pkgs/development/tools/vcstool/default.nix
index c4a1cf7398701..9657543e0c70a 100644
--- a/pkgs/development/tools/vcstool/default.nix
+++ b/pkgs/development/tools/vcstool/default.nix
@@ -5,11 +5,11 @@ with python3Packages;
 
 buildPythonApplication rec {
   pname = "vcstool";
-  version = "0.2.7";
+  version = "0.2.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1mq8lmb1wh55cqdj7javq7qia4217h6vf5ljc99gsjyibi7g7d3k";
+    sha256 = "1lb0j120sj76swi702ah6ryn770m1y7gh69237zxpyh897pn5paa";
   };
 
   propagatedBuildInputs = [ pyyaml setuptools ];
diff --git a/pkgs/development/tools/vultr/default.nix b/pkgs/development/tools/vultr/default.nix
index 9b53c28c60eda..7c396f69f259f 100644
--- a/pkgs/development/tools/vultr/default.nix
+++ b/pkgs/development/tools/vultr/default.nix
@@ -2,14 +2,14 @@
 
 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 = {
diff --git a/pkgs/development/tools/yarn/default.nix b/pkgs/development/tools/yarn/default.nix
index dfdd921fd03df..22ce3553352f0 100644
--- a/pkgs/development/tools/yarn/default.nix
+++ b/pkgs/development/tools/yarn/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "yarn";
-  version = "1.22.4";
+  version = "1.22.5";
 
   src = fetchzip {
     url = "https://github.com/yarnpkg/yarn/releases/download/v${version}/yarn-v${version}.tar.gz";
-    sha256 = "1s054c9cmlmzy6cfkawhaxvaxhqcq0a17n4sb12p0bp2lzkax9lm";
+    sha256 = "1yb1pb80jhw6mx1r28hf7zd54dygmnrf30r3fz7kn9nrgdpl5in8";
   };
 
   buildInputs = [ nodejs ];
diff --git a/pkgs/development/tools/ydiff/default.nix b/pkgs/development/tools/ydiff/default.nix
index f3ecbb451f655..510808fc41272 100644
--- a/pkgs/development/tools/ydiff/default.nix
+++ b/pkgs/development/tools/ydiff/default.nix
@@ -5,11 +5,11 @@ with pythonPackages;
 
 buildPythonApplication rec {
   pname = "ydiff";
-  version = "1.1";
+  version = "1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0mxcl17sx1d4vaw22ammnnn3y19mm7r6ljbarcjzi519klz26bnf";
+    sha256 = "f5430577ecd30974d766ee9b8333e06dc76a947b4aae36d39612a0787865a121";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/web/deno/default.nix b/pkgs/development/web/deno/default.nix
index 9430ebd2ef117..45606151e28da 100644
--- a/pkgs/development/web/deno/default.nix
+++ b/pkgs/development/web/deno/default.nix
@@ -18,16 +18,16 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "deno";
-  version = "1.3.2";
+  version = "1.3.3";
 
   src = fetchFromGitHub {
     owner = "denoland";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0vdz3irhc2pxn5zh0c6frbz7pb8vr06kldxa204xwyl7fl770w3g";
+    sha256 = "0jbnx23f1323sh1rfx8rza2pzr4li4199wblrl4vw4zp5hj4qnkm";
     fetchSubmodules = true;
   };
-  cargoSha256 = "1ch7vxnhs69paykrglim0ixaw73lzlmrglqhjp8f4xafvdk7n2ks";
+  cargoSha256 = "08zi3ynbi44rdgid9qalgsb5g8dcwclr6ynwxvhi8r0v5i7swwrx";
 
   # Install completions post-install
   nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/development/web/postman/default.nix b/pkgs/development/web/postman/default.nix
index 5200cb933ca88..3e1b1cced1ac4 100644
--- a/pkgs/development/web/postman/default.nix
+++ b/pkgs/development/web/postman/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation rec {
   pname = "postman";
-  version = "7.30.1";
+  version = "7.31.1";
 
   src = fetchurl {
     url = "https://dl.pstmn.io/download/version/${version}/linux64";
-    sha256 = "18bphn5m42z9x0igafd259q7i88qn7wcxvvhdjv9ldnvmhf1k935";
+    sha256 = "14df24gj0mljblzc78pggyajr7004mg35gary5cz2c26vcklx4pw";
     name = "${pname}.tar.gz";
   };
 
diff --git a/pkgs/games/cockatrice/default.nix b/pkgs/games/cockatrice/default.nix
index 9d07d09e27b2e..848bf2ab88515 100644
--- a/pkgs/games/cockatrice/default.nix
+++ b/pkgs/games/cockatrice/default.nix
@@ -4,13 +4,13 @@
 
 mkDerivation rec {
   pname = "cockatrice";
-  version = "2020-03-20-Release-2.7.4";
+  version = "2020-08-23-Release-2.7.5";
 
   src = fetchFromGitHub {
     owner = "Cockatrice";
     repo = "Cockatrice";
     rev = "${version}";
-    sha256 = "1d229gswfcqxch19wb744d9h897qwzf2y9imwrbcwnlhpbr1j62k";
+    sha256 = "1yaxm7q0ja3rgx197hh8ynjc6ncc4hm0qdn9v7f0l4fbv0bdpv34";
   };
 
   buildInputs = [
diff --git a/pkgs/games/hedgewars/default.nix b/pkgs/games/hedgewars/default.nix
index 00df6f338210d..f31a44e97c09a 100644
--- a/pkgs/games/hedgewars/default.nix
+++ b/pkgs/games/hedgewars/default.nix
@@ -2,6 +2,7 @@
 , lib, fetchurl, cmake, pkgconfig, lua5_1, SDL2, SDL2_mixer
 , zlib, libpng, libGL, libGLU, physfs
 , qtbase, qttools
+, llvm
 , withServer ? true
 }:
 
@@ -27,6 +28,7 @@ mkDerivation rec {
   buildInputs = [
     SDL2_ttf SDL2_net SDL2 SDL2_mixer SDL2_image
     fpc lua5_1
+    llvm # hard-requirement on aarch64, for some reason not strictly necessary on x86-64
     ffmpeg_3 freeglut physfs
     qtbase
   ] ++ lib.optional withServer ghc;
@@ -34,6 +36,10 @@ mkDerivation rec {
   postPatch = ''
     substituteInPlace gameServer/CMakeLists.txt \
       --replace mask evaluate
+
+    # compile with fpc >= 3.2.0
+    # https://github.com/archlinux/svntogit-community/blob/75a1b3900fb3dd553d5114bbc8474d85fd6abb02/trunk/PKGBUILD#L26
+    sed -i 's/procedure ShiftWorld(Dir: LongInt); inline;/procedure ShiftWorld(Dir: LongInt);/' hedgewars/uWorld.pas
   '';
 
   cmakeFlags = [
@@ -42,7 +48,7 @@ mkDerivation rec {
   ];
 
 
-  # hslogger brings network-3 and network-bsd which conflict with 
+  # hslogger brings network-3 and network-bsd which conflict with
   # network-2.6.3.1
   preConfigure = ''
     substituteInPlace gameServer/CMakeLists.txt \
@@ -97,6 +103,5 @@ mkDerivation rec {
        all movement on the battlefield has ceased).'';
     maintainers = with maintainers; [ kragniz fpletz ];
     inherit (ghc.meta) platforms;
-    hydraPlatforms = [];
   };
 }
diff --git a/pkgs/games/left4gore/default.nix b/pkgs/games/left4gore/default.nix
new file mode 100644
index 0000000000000..597f7da2b3d20
--- /dev/null
+++ b/pkgs/games/left4gore/default.nix
@@ -0,0 +1,48 @@
+{ stdenvNoCC, lib, fetchurl, buildFHSUserEnv }:
+
+let
+  version = "2.3";
+
+  # Unwrapped package, for putting into the FHS env
+  left4gore-unwrapped = stdenvNoCC.mkDerivation {
+    pname = "left4gore-unwrapped";
+    inherit version;
+
+    src = fetchurl {
+      url = "http://www.left4gore.com/dist/left4gore-${version}-linux.tar.gz";
+      sha256 = "1n57nh32ybn6kirn8djh0nsjx6m84c0jfi1x8r4w2qr0qky3z7p0";
+    };
+
+    installPhase = ''
+      mkdir -p $out/bin
+      cp left4gore $out/bin
+    '';
+  };
+
+  # FHS env, as patchelf will not work
+  env = buildFHSUserEnv {
+    name = "left4gore-env-${version}";
+    targetPkgs = _: [ left4gore-unwrapped ];
+    runScript = "left4gore";
+  };
+
+in stdenvNoCC.mkDerivation {
+  pname = "left4gore";
+  inherit version;
+
+  dontUnpack = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p $out/bin
+    ln -s ${env}/bin/* $out/bin/left4gore
+  '';
+
+  meta = with lib; {
+    homepage = "http://www.left4gore.com";
+    description = "Memory patcher which adds the gore back into Left 4 Dead 2";
+    license = licenses.unfree; # Probably the best choice
+    maintainers = with maintainers; [ das_j ];
+  };
+}
diff --git a/pkgs/games/osu-lazer/default.nix b/pkgs/games/osu-lazer/default.nix
index 074c24389a174..2ce6806bcb4f6 100644
--- a/pkgs/games/osu-lazer/default.nix
+++ b/pkgs/games/osu-lazer/default.nix
@@ -13,13 +13,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "osu-lazer";
-  version = "2020.820.0";
+  version = "2020.903.0";
 
   src = fetchFromGitHub {
     owner = "ppy";
     repo = "osu";
     rev = version;
-    sha256 = "0vszw0f5x0syshn8bnsbskxvknwpgbnm31kxwh1mfdr7pnxvw922";
+    sha256 = "01apjgi2r8jaihp7sp1y69fmplkiy383zxxdbjn1m797f0ls37ca";
   };
 
   patches = [ ./bypass-tamper-detection.patch ];
diff --git a/pkgs/games/osu-lazer/deps.nix b/pkgs/games/osu-lazer/deps.nix
index 53f933d143bbd..6c8aa4bd18fd0 100644
--- a/pkgs/games/osu-lazer/deps.nix
+++ b/pkgs/games/osu-lazer/deps.nix
@@ -371,8 +371,8 @@
   })
   (fetchNuGet {
     name = "Microsoft.Diagnostics.Runtime";
-    version = "2.0.137201";
-    sha256 = "0cfsd8nn6y30bqzx1pf9xi29jnxap1fgk720zdpz93kqzqv8r0vc";
+    version = "2.0.142701";
+    sha256 = "114ivn09zlxkna78hyxa3h40k5iaivapws755i0aiys7nxhdn3mw";
   })
   (fetchNuGet {
     name = "Microsoft.DotNet.PlatformAbstractions";
@@ -586,8 +586,8 @@
   })
   (fetchNuGet {
     name = "ppy.osu.Framework";
-    version = "2020.819.0";
-    sha256 = "1ghbbwpjjl0dp6gs1638v880hr7wwrn2jklqwbbckpx8g57bnq2m";
+    version = "2020.903.0";
+    sha256 = "0g15yw8c21m2g0lpca4f519dgj2phccz15nqdbaq49736akr4qzm";
   })
   (fetchNuGet {
     name = "ppy.osu.Framework.NativeLibs";
@@ -596,8 +596,8 @@
   })
   (fetchNuGet {
     name = "ppy.osu.Game.Resources";
-    version = "2020.812.0";
-    sha256 = "0fsg47bsffvk16clwwwav4yly1ykn09pyap46dvdmsxhjrzkvzb7";
+    version = "2020.903.0";
+    sha256 = "0f94kms4xyjl9xwf26j6n6k5zfbx61a6bkd3vljfmbmr88advssy";
   })
   (fetchNuGet {
     name = "ppy.osuTK.NS20";
@@ -721,8 +721,8 @@
   })
   (fetchNuGet {
     name = "Sentry";
-    version = "2.1.5";
-    sha256 = "094rhsn5rfk7f2ygk6jgv3cq01gv3a8lnqa85l593ys3957j0qhs";
+    version = "2.1.6";
+    sha256 = "0vc45p1arxwifv5fb6lzkqqxlsvm4i0xmpq2vc73vbjqzydd2phm";
   })
   (fetchNuGet {
     name = "Sentry.PlatformAbstractions";
@@ -731,8 +731,8 @@
   })
   (fetchNuGet {
     name = "Sentry.Protocol";
-    version = "2.1.5";
-    sha256 = "1yjgn6na14rr6crmm886x597h9gdjyasgxx3n9m3zn7ig8726mpg";
+    version = "2.1.6";
+    sha256 = "0qc18kc9d7f0s6hmnpji3sbz0z09kdgg4fwh55rrmpfgr3w851s7";
   })
   (fetchNuGet {
     name = "SharpCompress";
diff --git a/pkgs/games/shattered-pixel-dungeon/default.nix b/pkgs/games/shattered-pixel-dungeon/default.nix
index 6626e4df8a2f4..f3808102bd1d5 100644
--- a/pkgs/games/shattered-pixel-dungeon/default.nix
+++ b/pkgs/games/shattered-pixel-dungeon/default.nix
@@ -10,13 +10,13 @@
 
 let
   pname = "shattered-pixel-dungeon";
-  version = "0.8.2b";
+  version = "0.8.2d";
 
   src = fetchFromGitHub {
     owner = "00-Evan";
     repo = "shattered-pixel-dungeon";
     rev = "v${version}";
-    sha256 = "02ksxm7iknxfc7l8dl2pr1kyhfmi7vkchz0lh46w3p5mqf82psfb";
+    sha256 = "11lgalam1aacw01ar7nawiim4pbxqzrdrnxvj6wq9mg83hgsz65l";
   };
 
   postPatch = ''
diff --git a/pkgs/games/steam/fhsenv.nix b/pkgs/games/steam/fhsenv.nix
index 2c7cde78c438a..189c4d1c10764 100644
--- a/pkgs/games/steam/fhsenv.nix
+++ b/pkgs/games/steam/fhsenv.nix
@@ -89,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
@@ -193,8 +194,6 @@ in buildFHSUserEnv rec {
     SDL_mixer
     SDL2_ttf
     SDL2_mixer
-    gstreamer
-    gst-plugins-base
     libappindicator-gtk2
     libcaca
     libcanberra
diff --git a/pkgs/games/ultrastardx/default.nix b/pkgs/games/ultrastardx/default.nix
index b2d601df3498f..b6e1da204edf1 100644
--- a/pkgs/games/ultrastardx/default.nix
+++ b/pkgs/games/ultrastardx/default.nix
@@ -1,7 +1,26 @@
-{ stdenv, autoreconfHook, fetchFromGitHub, pkgconfig
-, lua, fpc, pcre, portaudio, freetype, libpng
-, SDL2, SDL2_image, SDL2_gfx, SDL2_mixer, SDL2_net, SDL2_ttf
-, ffmpeg, sqlite, zlib, libX11, libGLU, libGL }:
+{ stdenv
+, autoreconfHook
+, fetchFromGitHub
+, fetchpatch
+, pkgconfig
+, lua
+, fpc
+, pcre
+, portaudio
+, freetype
+, libpng
+, SDL2
+, SDL2_image
+, SDL2_gfx
+, SDL2_mixer
+, SDL2_net, SDL2_ttf
+, ffmpeg
+, sqlite
+, zlib
+, libX11
+, libGLU
+, libGL
+}:
 
 let
   sharedLibs = [
@@ -12,17 +31,25 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "ultrastardx";
-  version = "unstable-2019-01-07";
+  version = "2020.4.0";
   src = fetchFromGitHub {
     owner = "UltraStar-Deluxe";
     repo = "USDX";
-    rev = "3df142590f29db1505cc58746af9f8cf7cb4a6a5";
-    sha256 = "0853rg7vppkmw37wm9xm0m0wab3r09ws6w04xs2wgwj1mwl0d70j";
+    rev = "v${version}";
+    sha256 = "0vmfv8zpyf8ymx3rjydpd7iqis080lni94vb316vfxkgvjmqbhym";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
   buildInputs = [ fpc libpng ] ++ sharedLibs;
 
+  patches = [
+    (fetchpatch {
+      name = "fpc-3.2-support.patch";
+      url = "https://github.com/UltraStar-Deluxe/USDX/commit/1b8e8714c1523ef49c2fd689a1545d097a3d76d7.patch";
+      sha256 = "02zmjymj9w1mkpf7armdpf067byvml6lprs1ca4lhpkv45abddp4";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace src/config.inc.in \
       --subst-var-by libpcre_LIBNAME libpcre.so.1
diff --git a/pkgs/games/vassal/default.nix b/pkgs/games/vassal/default.nix
index 55848d91fab5e..413d98d26acee 100644
--- a/pkgs/games/vassal/default.nix
+++ b/pkgs/games/vassal/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, jre, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  name = "VASSAL-3.2.17";
+  name = "VASSAL-3.3.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/vassalengine/${name}-linux.tar.bz2";
-    sha256 = "0nxskr46janxnb31c03zv61kr46vy98l7cwxha3vll81l4ij1sjb";
+    sha256 = "1abhlkl27gyfa1lghvv76xa6ks5hiwv2s9wb9ddadm0m07f87n1w";
   };
 
   buildInputs = [ makeWrapper ];
diff --git a/pkgs/misc/drivers/epson-escpr2/default.nix b/pkgs/misc/drivers/epson-escpr2/default.nix
index 2e587cbd0449c..040ac00085e3a 100644
--- a/pkgs/misc/drivers/epson-escpr2/default.nix
+++ b/pkgs/misc/drivers/epson-escpr2/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "epson-inkjet-printer-escpr2";
-  version = "1.1.15";
+  version = "1.1.17";
 
   src = fetchurl {
     # To find new versions, visit
@@ -11,10 +11,10 @@ stdenv.mkDerivation rec {
     # version.  
     # NOTE: Don't forget to update the webarchive link too!
     urls = [
-      "https://download3.ebz.epson.net/dsc/f/03/00/11/56/43/b1a6f1193e073c4c049da9404806c61052b62419/epson-inkjet-printer-escpr2-1.1.15-1lsb3.2.src.rpm"
-      "https://web.archive.org/web/20200726093746if_/https://download3.ebz.epson.net/dsc/f/03/00/11/56/43/b1a6f1193e073c4c049da9404806c61052b62419/epson-inkjet-printer-escpr2-1.1.15-1lsb3.2.src.rpm"
+      "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 = "0a6pzpx281dv9g148jp60l5z0brf260zb54dq6g1ixz4bmjz3f1f";
+    sha256 = "0bqqc04z9gayas5p7410la5nad7waykqyw1z1imcqimfl4qrz1m6";
   };
 
   patches = [ ./cups-filter-ppd-dirs.patch ];
diff --git a/pkgs/misc/emulators/wine/sources.nix b/pkgs/misc/emulators/wine/sources.nix
index f669c71c67768..bb61872f7c3bc 100644
--- a/pkgs/misc/emulators/wine/sources.nix
+++ b/pkgs/misc/emulators/wine/sources.nix
@@ -39,22 +39,22 @@ in rec {
 
   unstable = fetchurl rec {
     # NOTE: Don't forget to change the SHA256 for staging as well.
-    version = "5.14";
+    version = "5.16";
     url = "https://dl.winehq.org/wine/source/5.x/wine-${version}.tar.xz";
-    sha256 = "1vy9gyvf05vkysgvp4kq4qd116nvif69di55x3dnf3p96wsn2hpl";
+    sha256 = "0j9268s1dy4cjvhcf4igbg54gaws4a1l3pda449qy2p2i4psdncq";
     inherit (stable) mono gecko32 gecko64;
   };
 
   staging = fetchFromGitHub rec {
     # https://github.com/wine-staging/wine-staging/releases
     inherit (unstable) version;
-    sha256 = "0cvsasnidbg77dc2vjrw708rpy2jqdir9imqjcjppa4h1k8a2wcs";
+    sha256 = "1rrw15mrygv9zcbqz0c3s7q7971wqj89ys2bvvm4b0d2h4j0k6wq";
     owner = "wine-staging";
     repo = "wine-staging";
     rev = "v${version}";
 
     # Just keep list empty, if current release haven't broken patchsets
-    disabledPatchsets = [ "xactengine-initial" ];
+    disabledPatchsets = [ ];
   };
 
   winetricks = fetchFromGitHub rec {
diff --git a/pkgs/misc/screensavers/xlockmore/default.nix b/pkgs/misc/screensavers/xlockmore/default.nix
index 01ee818f256fe..b59ed85f6bc2b 100644
--- a/pkgs/misc/screensavers/xlockmore/default.nix
+++ b/pkgs/misc/screensavers/xlockmore/default.nix
@@ -2,11 +2,11 @@
 , libXdmcp, libXt }:
 
 stdenv.mkDerivation rec {
-  name = "xlockmore-5.64";
+  name = "xlockmore-5.65";
 
   src = fetchurl {
     url = "http://sillycycle.com/xlock/${name}.tar.xz";
-    sha256 = "0fbh6avdzsm1prafglr2xdd8c4ibkddi6xxywvqgvzp0zb2kqimr";
+    sha256 = "0d4l8ibbvc62whlq8rrbvqr3011a7h21l9na93r579g0dfwdbh6d";
     curlOpts = "--user-agent 'Mozilla/5.0'";
   };
 
diff --git a/pkgs/misc/seafile-shared/default.nix b/pkgs/misc/seafile-shared/default.nix
index 7546c7626ed8d..21a89e5f5f2e0 100644
--- a/pkgs/misc/seafile-shared/default.nix
+++ b/pkgs/misc/seafile-shared/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "seafile-shared";
-  version = "7.0.7";
+  version = "7.0.8";
 
   src = fetchFromGitHub {
     owner = "haiwen";
     repo = "seafile";
     rev = "v${version}";
-    sha256 = "0vgzb923x2q2w1zgbc56d50a5qj9xm77lg7czfzg3va7vd921gy8";
+    sha256 = "0q0zylv8hkhnfw0084bj1wmqwqvpflmdy1njxvvkjsbnflh8kc2y";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/misc/sndio/default.nix b/pkgs/misc/sndio/default.nix
index c415714f573cf..46c505ed439c0 100644
--- a/pkgs/misc/sndio/default.nix
+++ b/pkgs/misc/sndio/default.nix
@@ -1,23 +1,17 @@
-{ stdenv, fetchurl, alsaLib }:
+{ stdenv, fetchurl, alsaLib, fixDarwinDylibNames }:
 
 stdenv.mkDerivation rec {
   pname = "sndio";
-  version = "1.6.0";
+  version = "1.7.0";
   enableParallelBuilding = true;
-  buildInputs = stdenv.lib.optionals stdenv.isLinux [ alsaLib ];
+  buildInputs = stdenv.lib.optionals stdenv.isLinux [ alsaLib ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ fixDarwinDylibNames ];
 
   src = fetchurl {
     url = "http://www.sndio.org/sndio-${version}.tar.gz";
-    sha256 = "1havdx3q4mipgddmd2bnygr1yh6y64567m1yqwjapkhsq550dq4r";
+    sha256 = "0ljmac0lnjn61admgbcwjfcr5fwccrsblx9rj9bys8wlhz8f796x";
   };
 
-  postFixup = stdenv.lib.optionalString stdenv.isDarwin ''
-    install_name_tool -id $out/lib/libsndio.7.0.dylib $out/lib/libsndio.7.0.dylib
-    for file in $out/bin/*; do
-      install_name_tool -change libsndio.7.0.dylib $out/lib/libsndio.dylib $file
-    done
-  '';
-
   meta = with stdenv.lib; {
     homepage = "http://www.sndio.org";
     description = "Small audio and MIDI framework part of the OpenBSD project";
diff --git a/pkgs/misc/uboot/default.nix b/pkgs/misc/uboot/default.nix
index 85df90a9fe117..66f419626663c 100644
--- a/pkgs/misc/uboot/default.nix
+++ b/pkgs/misc/uboot/default.nix
@@ -271,6 +271,13 @@ in {
     filesToInstall = ["u-boot-sunxi-with-spl.bin"];
   };
 
+  ubootPinebookPro = buildUBoot {
+    defconfig = "pinebook-pro-rk3399_defconfig";
+    extraMeta.platforms = ["aarch64-linux"];
+    BL31 = "${armTrustedFirmwareRK3399}/bl31.elf";
+    filesToInstall = [ "u-boot.itb" "idbloader.img"];
+  };
+
   ubootQemuAarch64 = buildUBoot {
     defconfig = "qemu_arm64_defconfig";
     extraMeta.platforms = ["aarch64-linux"];
diff --git a/pkgs/misc/vim-plugins/deprecated.json b/pkgs/misc/vim-plugins/deprecated.json
index 218a1ab622fd1..b95e91a19b2c5 100644
--- a/pkgs/misc/vim-plugins/deprecated.json
+++ b/pkgs/misc/vim-plugins/deprecated.json
@@ -3,6 +3,10 @@
         "date": "2020-03-27",
         "new": "vim-gist"
     },
+    "nvim-lsp": {
+        "date": "2020-08-31",
+        "new": "nvim-lspconfig"
+    },
     "vim-jade": {
         "date": "2020-03-27",
         "new": "vim-pug"
diff --git a/pkgs/misc/vim-plugins/generated.nix b/pkgs/misc/vim-plugins/generated.nix
index f555e25dca258..378a252e9da0c 100644
--- a/pkgs/misc/vim-plugins/generated.nix
+++ b/pkgs/misc/vim-plugins/generated.nix
@@ -65,12 +65,12 @@ let
 
   ale = buildVimPluginFrom2Nix {
     pname = "ale";
-    version = "2020-08-24";
+    version = "2020-08-31";
     src = fetchFromGitHub {
       owner = "dense-analysis";
       repo = "ale";
-      rev = "3e2abe3f25493af63af91a6013447e378e09f6ec";
-      sha256 = "1lxcwvjxrr2wdz5rzai2wd96zxhxmf81jyd62pcqhr5l9jil9ry7";
+      rev = "d4a14746cdcda99ec70915c5540962c85e33f661";
+      sha256 = "1k93gab46y3ld9s3h3ha3vmdfy37vhb3px79p5a62b21jwma9mxc";
     };
     meta.homepage = "https://github.com/dense-analysis/ale/";
   };
@@ -185,12 +185,12 @@ let
 
   awesome-vim-colorschemes = buildVimPluginFrom2Nix {
     pname = "awesome-vim-colorschemes";
-    version = "2020-08-15";
+    version = "2020-08-26";
     src = fetchFromGitHub {
       owner = "rafi";
       repo = "awesome-vim-colorschemes";
-      rev = "0e04854da7695854e7df7c3c771e72ac55a60040";
-      sha256 = "1i6y0p7fcvzgxkm82xrypwh7xgp1ywyvqlpglf93bgq8ygsll0v9";
+      rev = "b89e17b44dc1bcc189298882a4cb6e3252c2fb4c";
+      sha256 = "0grgii328c4y086par9l3f2cq2xh47dqv2w2f4lwd5z9zmnxkv4f";
     };
     meta.homepage = "https://github.com/rafi/awesome-vim-colorschemes/";
   };
@@ -329,12 +329,12 @@ let
 
   clang_complete = buildVimPluginFrom2Nix {
     pname = "clang_complete";
-    version = "2020-05-06";
+    version = "2020-09-02";
     src = fetchFromGitHub {
       owner = "xavierd";
       repo = "clang_complete";
-      rev = "10e5102af5d1b16ba7aa3fb51d67153041f82ed7";
-      sha256 = "0crynvmdp9a5rws5hfnsn19kxqviyp29n8fz40wq7k1g5vrhvdl7";
+      rev = "e0f5c246883fb06b6331ff5bec8ef1c3c71af3d4";
+      sha256 = "0kincdj1l3d552pjnrdjcl72fpln6klc85b01m1sn2b2dlin3xhz";
     };
     meta.homepage = "https://github.com/xavierd/clang_complete/";
   };
@@ -363,18 +363,6 @@ let
     meta.homepage = "https://github.com/vn-ki/coc-clap/";
   };
 
-  coc-css = buildVimPluginFrom2Nix {
-    pname = "coc-css";
-    version = "2020-06-28";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-css";
-      rev = "a8cde12697de70dddf235ada61dc3601a6c04b57";
-      sha256 = "03n7czxiraa9pjcdfigmxgwyprpijbs0vhmzccxx0nwm038291y6";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-css/";
-  };
-
   coc-denite = buildVimPluginFrom2Nix {
     pname = "coc-denite";
     version = "2019-01-19";
@@ -387,186 +375,42 @@ let
     meta.homepage = "https://github.com/neoclide/coc-denite/";
   };
 
-  coc-emmet = buildVimPluginFrom2Nix {
-    pname = "coc-emmet";
-    version = "2020-07-16";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-emmet";
-      rev = "8f25e0b7deb1cd54ce096cf713147662c43781f6";
-      sha256 = "0z9y8nxzjqf78l7hmq59by559f178jxhadn82h1hwqmdjpq72jcm";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-emmet/";
-  };
-
-  coc-eslint = buildVimPluginFrom2Nix {
-    pname = "coc-eslint";
-    version = "2020-08-22";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-eslint";
-      rev = "ba4d02c324e3eb5d5f111fe510f623ef14ee340c";
-      sha256 = "1badkyfa8zznwlb9a6kqxnyylcjb72rfjrzb48pvx2dr7s631x8g";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-eslint/";
-  };
-
   coc-explorer = buildVimPluginFrom2Nix {
     pname = "coc-explorer";
-    version = "2020-08-12";
+    version = "2020-09-01";
     src = fetchFromGitHub {
       owner = "weirongxu";
       repo = "coc-explorer";
-      rev = "b05b60c9e53a657f4a7c4dcf064032ce806cd0f4";
-      sha256 = "10z3xrkkj0140a8cbix7yrky7nsczjcdflnl7a8b0ywwq16jd3hp";
+      rev = "e1ef6be69cbafff868a45d2b20a6b2325f4baa26";
+      sha256 = "0acwlr4pr87jx0a83mq73dh9jwd4iwnv1rs6pd2mdbj4ix0avxyw";
     };
     meta.homepage = "https://github.com/weirongxu/coc-explorer/";
   };
 
   coc-fzf = buildVimPluginFrom2Nix {
     pname = "coc-fzf";
-    version = "2020-08-25";
+    version = "2020-08-27";
     src = fetchFromGitHub {
       owner = "antoinemadec";
       repo = "coc-fzf";
-      rev = "606b437c4b6de1910c325eb631ee6b0f9bff8dd6";
-      sha256 = "0a3vrimi87i6y6nc79smh2jiya2ciafxj0aifn6xhqnklj46isdh";
+      rev = "085e54bf91b7f6ce19be9c2801ad4e69b15c24f9";
+      sha256 = "0dfpl26jn6gc3nswbz0nclzr0s58fhmrhqvmknssg600wgnrd12v";
     };
     meta.homepage = "https://github.com/antoinemadec/coc-fzf/";
   };
 
-  coc-git = buildVimPluginFrom2Nix {
-    pname = "coc-git";
-    version = "2020-08-21";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-git";
-      rev = "5a768cd395fc94e0448c596fafaf5f78d15fb968";
-      sha256 = "019mb2v7ldyzjjh86kxyxrbrgyf9chgp0f0nkwk0fiwf2qi2141y";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-git/";
-  };
-
-  coc-go = buildVimPluginFrom2Nix {
-    pname = "coc-go";
-    version = "2020-08-25";
-    src = fetchFromGitHub {
-      owner = "josa42";
-      repo = "coc-go";
-      rev = "fbac3db20cc5e728b6f1c86bbb73414254c3dce3";
-      sha256 = "1d9izf0ypnpbwg15kz3fd62gzz6c5h5568ydc7h5hxh4zj5qfg5h";
-    };
-    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-07-28";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-html";
-      rev = "36aaa65d5ee7d998727776739d03affcc26bbe5b";
-      sha256 = "07vb9jgy9bpq5k1gymr2ys8smafcrybf0nmpkfsq8scqxsydnnq9";
-    };
-    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-08-11";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-java";
-      rev = "aed8ccb10acf1863fb0fe622f21c3a0be18e362f";
-      sha256 = "1hrwj4x09gnqnwv43bxx9w2y3nrhqbjc3yl2q8ck22212s66wkpi";
-    };
-    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-07-23";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-lists";
-      rev = "bf352d6befd23804897a08b50fa6edcea676a7b3";
-      sha256 = "0r8sbw4pgaay2zjh2rv1x926hs8jixznanc2dxjvicjnmgbg1nmn";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-lists/";
-  };
-
   coc-markdownlint = buildVimPluginFrom2Nix {
     pname = "coc-markdownlint";
-    version = "2020-08-02";
+    version = "2020-09-02";
     src = fetchFromGitHub {
       owner = "fannheyward";
       repo = "coc-markdownlint";
-      rev = "a1d6162a898b1538eb061675a63251cbd4eb8470";
-      sha256 = "0gmci9x7kppv14lr8x8fnmkq1rp5lm8x66904fy419jipnl96g6g";
+      rev = "9e68427e138bcce5440fd29fd632081962f6c6e9";
+      sha256 = "064afqfjjx1ad26sgbypzivcpdx5n45wa5d93dbib4wrvkkqyslm";
     };
     meta.homepage = "https://github.com/fannheyward/coc-markdownlint/";
   };
 
-  coc-metals = buildVimPluginFrom2Nix {
-    pname = "coc-metals";
-    version = "2020-08-21";
-    src = fetchFromGitHub {
-      owner = "ckipp01";
-      repo = "coc-metals";
-      rev = "e2f5e3c2bc6a8226cea5a607585f6db554e15846";
-      sha256 = "0kp8q5ds9b64acmkc006664460lfcahly65bx5x95rvy0wy8z5b1";
-    };
-    meta.homepage = "https://github.com/ckipp01/coc-metals/";
-  };
-
   coc-neco = buildVimPluginFrom2Nix {
     pname = "coc-neco";
     version = "2020-04-07";
@@ -579,114 +423,6 @@ 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-07-23";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-prettier";
-      rev = "4857302b60bb0c9db20fa8db71b0eac4696c9254";
-      sha256 = "114yn1sc457jc9jp5hvw3k0dvm0i9bcn6v2dqvb9dgwskq78ca7f";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-prettier/";
-  };
-
-  coc-python = buildVimPluginFrom2Nix {
-    pname = "coc-python";
-    version = "2020-06-15";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-python";
-      rev = "241c6b39e6618279b619926269431ef45de87840";
-      sha256 = "1x3lrk4x7qhp9pg8x11k36pcgd5f45la4r77fq82jy307s5dny20";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-python/";
-  };
-
-  coc-r-lsp = buildVimPluginFrom2Nix {
-    pname = "coc-r-lsp";
-    version = "2019-12-07";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-r-lsp";
-      rev = "a1b97e36c601975a8d730b6965f25592b1ecd1e7";
-      sha256 = "04g1kbgm8p0asrsibmg4w6wj8i2xzwc70g7rkcs2bj3pakbkvws6";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-r-lsp/";
-  };
-
-  coc-rls = buildVimPluginFrom2Nix {
-    pname = "coc-rls";
-    version = "2020-08-11";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-rls";
-      rev = "49ed83bb6d6bc01142ba18774575987b12857aee";
-      sha256 = "05lbfl60ka9zx8s6ack92v3vk3zj47w1fscdfkdqafcaqizlgia1";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-rls/";
-  };
-
-  coc-rust-analyzer = buildVimPluginFrom2Nix {
-    pname = "coc-rust-analyzer";
-    version = "2020-08-25";
-    src = fetchFromGitHub {
-      owner = "fannheyward";
-      repo = "coc-rust-analyzer";
-      rev = "fff876cee397d0d696cba74907e33aadfba4d601";
-      sha256 = "0318a19qbp3rpcgqwqshzhrpcbsqcskl993yjxmgmpjxh4r85kh2";
-    };
-    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-08-16";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-solargraph";
-      rev = "e61385cc483768afc8d8c064b5c98baa474d0d9c";
-      sha256 = "1hiy12h85z8m6i4nc92jpi6z0zph8rpdmgb75czhy5y0cjwkn59q";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-solargraph/";
-  };
-
   coc-spell-checker = buildVimPluginFrom2Nix {
     pname = "coc-spell-checker";
     version = "2020-08-01";
@@ -699,78 +435,6 @@ let
     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-08-21";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-tsserver";
-      rev = "516f2bd75afee70bb8668aa2ecbc00ebfd5984a0";
-      sha256 = "1qdgm9w9d9n0aq5y77zlhxzjdilxky7n4ipl6y6gr2pirxw5idw5";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-tsserver/";
-  };
-
-  coc-vetur = buildVimPluginFrom2Nix {
-    pname = "coc-vetur";
-    version = "2020-08-22";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-vetur";
-      rev = "217251dd0fe87d951e630e8fa9d4cde84da0ec91";
-      sha256 = "13ni7j70pcz9w856hrgnbm0jsv7a22f1r42wnvif5lvhrcfw3y9d";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-vetur/";
-  };
-
   coc-vimlsp = buildVimPluginFrom2Nix {
     pname = "coc-vimlsp";
     version = "2020-08-01";
@@ -783,54 +447,6 @@ let
     meta.homepage = "https://github.com/iamcco/coc-vimlsp/";
   };
 
-  coc-vimtex = buildVimPluginFrom2Nix {
-    pname = "coc-vimtex";
-    version = "2020-07-22";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-vimtex";
-      rev = "4c88459c1ccf0c0e1935b73f216d974a3c89f4e5";
-      sha256 = "0gk38r8060linhbcsqfhv7bxggz4fqi4chsfpxf6b0rnmca851pa";
-    };
-    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-08-21";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-yaml";
-      rev = "a453c70b2507d66e48a2d4e89f78cb5f340f140f";
-      sha256 = "0av0jv0g01cpkf5rsicniq7maa6c509bc3gs5piczf5za990nrsx";
-    };
-    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";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-yank/";
-  };
-
   coc-nvim = buildVimPluginFrom2Nix {
     pname = "coc-nvim";
     version = "2020-08-26";
@@ -882,24 +498,24 @@ let
 
   committia-vim = buildVimPluginFrom2Nix {
     pname = "committia-vim";
-    version = "2020-08-26";
+    version = "2020-08-27";
     src = fetchFromGitHub {
       owner = "rhysd";
       repo = "committia.vim";
-      rev = "6c8e22b24283a4cc3f05339520e990af8e803915";
-      sha256 = "05rjwn6fjwxd07c5imddkmxxpl8gq09iys385drrsvsqdx9f93vw";
+      rev = "1d288281586d1e6b52646a4c412df3dd3a2fe231";
+      sha256 = "11ik72qi7fvxkz7fnyisaa0xscy4pksq8l2pvclywzg3lcclhxp1";
     };
     meta.homepage = "https://github.com/rhysd/committia.vim/";
   };
 
   completion-nvim = buildVimPluginFrom2Nix {
     pname = "completion-nvim";
-    version = "2020-08-13";
+    version = "2020-09-02";
     src = fetchFromGitHub {
       owner = "nvim-lua";
       repo = "completion-nvim";
-      rev = "43cb0b123544b602bd31747a3d8cf52ef0660723";
-      sha256 = "0qllj4zqbw2fhp17lqk0xmbraq86gl9gjp9vszpd9jbw7h4lh168";
+      rev = "3de0996f965a218573e2fa62379cce9ed5c8dbc3";
+      sha256 = "0glai58hpwivfc67ndv588b4rsb27m40fblp8ydrf37w7cj787dz";
     };
     meta.homepage = "https://github.com/nvim-lua/completion-nvim/";
   };
@@ -990,12 +606,12 @@ let
 
   csv-vim = buildVimPluginFrom2Nix {
     pname = "csv-vim";
-    version = "2020-07-11";
+    version = "2020-09-02";
     src = fetchFromGitHub {
       owner = "chrisbra";
       repo = "csv.vim";
-      rev = "528766a549dc5022f3d89e84cbb80c7b911994f1";
-      sha256 = "160h9b59znbb0i6c7lh132mn5bl4njazfqsadz3p995vb9yc0sa6";
+      rev = "e23f03632ad2544f0232b824dd5520fd0b58d235";
+      sha256 = "12b127v6yxwik7q2wbyqag4082yzp44sm0x4xwnv55xhlz4w6xws";
     };
     meta.homepage = "https://github.com/chrisbra/csv.vim/";
   };
@@ -1086,12 +702,12 @@ let
 
   defx-nvim = buildVimPluginFrom2Nix {
     pname = "defx-nvim";
-    version = "2020-08-19";
+    version = "2020-08-28";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "defx.nvim";
-      rev = "1cfffcff2aba8a7b819f8b27414021d451abb4ce";
-      sha256 = "0ysnkwv9hk84i4rdglrmjms24nh9i5x5qvr8lyzrjzzp8zj7qs2l";
+      rev = "e4ea8290eba832997eaa36b6810e8ecc15ca1151";
+      sha256 = "063vy5kl8vz9c3nnz7g8yw1f1v1vcmxfg4p59mzsfrqf93fs2y30";
     };
     meta.homepage = "https://github.com/Shougo/defx.nvim/";
   };
@@ -1134,24 +750,24 @@ let
 
   denite-nvim = buildVimPluginFrom2Nix {
     pname = "denite-nvim";
-    version = "2020-08-03";
+    version = "2020-09-02";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "denite.nvim";
-      rev = "7df7851826a1e8417a9b242d4ce3bd09ae1c6298";
-      sha256 = "1rf5qir9ybk1l7bb63xkprssa8jpsiap26yn6k3xy2drfvbrlika";
+      rev = "5fbc044e3e8ecf80c589d6e87859dcc4c005f2e5";
+      sha256 = "0w8k8bylsh45314yg8g9hrrpkacfp3gixk8qba46lajzib298g63";
     };
     meta.homepage = "https://github.com/Shougo/denite.nvim/";
   };
 
   deol-nvim = buildVimPluginFrom2Nix {
     pname = "deol-nvim";
-    version = "2020-07-11";
+    version = "2020-09-02";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deol.nvim";
-      rev = "d620b34fe5035807ad680004812080edc0f2a794";
-      sha256 = "09s86h14nrscpn16xppyz8nnjchyfv91z2cx4p0a2m46hqx962jj";
+      rev = "2c4d9117186a6cf86030d213ef2de60b5dbced19";
+      sha256 = "1aka5zg7jihy1958xp4j2z3kdzmb2d4w5cbl95na4hik5rz4hyxj";
     };
     meta.homepage = "https://github.com/Shougo/deol.nvim/";
   };
@@ -1386,6 +1002,18 @@ let
     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-08-19";
@@ -1643,12 +1271,12 @@ let
 
   fruzzy = buildVimPluginFrom2Nix {
     pname = "fruzzy";
-    version = "2019-10-28";
+    version = "2020-08-31";
     src = fetchFromGitHub {
       owner = "raghur";
       repo = "fruzzy";
-      rev = "b312ae79db98cf6939c8319f2511efa06889e8e3";
-      sha256 = "01iisbawq2w7yw866qvv109amnvyaymzyz9nqal3cjrrcwk6mmdk";
+      rev = "4cdfee7b828a5cace22bfd93cf23fee0b2b233c4";
+      sha256 = "1dmxz283ypz1klcmdf4jk699aifr3dywkh9y8v8v8vyflampqwwp";
     };
     meta.homepage = "https://github.com/raghur/fruzzy/";
   };
@@ -1787,12 +1415,12 @@ let
 
   goyo-vim = buildVimPluginFrom2Nix {
     pname = "goyo-vim";
-    version = "2020-06-08";
+    version = "2020-08-29";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "goyo.vim";
-      rev = "3e129198bba7d6b50406902002ad7d213a6cccaa";
-      sha256 = "1b2wsxbg27nmwxrncwddkl2ck8hbiqdqi821vl9d1fl5nx042y2b";
+      rev = "a865dec7ca7616dbbd69315ad1417b84d0c411f8";
+      sha256 = "09mqmcz79dwcc5mv0p2wc84jc20ipa0vv2yckp4la4xh909ph4hm";
     };
     meta.homepage = "https://github.com/junegunn/goyo.vim/";
   };
@@ -2856,26 +2484,26 @@ let
 
   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-08-10";
+  nvim-lspconfig = buildVimPluginFrom2Nix {
+    pname = "nvim-lspconfig";
+    version = "2020-09-02";
     src = fetchFromGitHub {
       owner = "neovim";
-      repo = "nvim-lsp";
-      rev = "fc9d94ef006e082596c2e8724eb3f1c92ff203c7";
-      sha256 = "1byji4p0xigyp8y71s00fs2vrhgz3xkf51mmyz489pp52c7nfx4v";
+      repo = "nvim-lspconfig";
+      rev = "419fa4006e7c15cbc2f81f5110952de562494cd4";
+      sha256 = "1snkk214j49wyar98jx65bkkzaj5fnq8d8d8dfnz81ymx3dv6pqv";
     };
-    meta.homepage = "https://github.com/neovim/nvim-lsp/";
+    meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
   };
 
   nvim-terminal-lua = buildVimPluginFrom2Nix {
@@ -2892,12 +2520,12 @@ let
 
   nvim-treesitter = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter";
-    version = "2020-08-26";
+    version = "2020-09-02";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter";
-      rev = "e8fa0d0b31954314528bb88de3b8357af75d21fd";
-      sha256 = "0rczmzzcc82499bbbvz4bfpv8llkzz21hx7i2pz3471c2c97s3hn";
+      rev = "36f3e036e5b244af01947339da92430c4761e57e";
+      sha256 = "0nymrwc129mxgsw9ziw616zpn2q9a83cnlwkvbjpv3c78im8jnka";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
   };
@@ -2988,12 +2616,12 @@ let
 
   palenight-vim = buildVimPluginFrom2Nix {
     pname = "palenight-vim";
-    version = "2020-08-10";
+    version = "2020-08-30";
     src = fetchFromGitHub {
       owner = "drewtempelmeyer";
       repo = "palenight.vim";
-      rev = "9637fc4b6dc8ba852d5ec21c2c54851d81576490";
-      sha256 = "1im9iggwiz86h0rydaz73482q8ildhd81hscq8czwigb03pslyxg";
+      rev = "677745d52c4c03b344cd382dab0554a1d63b0692";
+      sha256 = "0av2if81vcknv3w74h5y1mbip8y8i0kif94v5mdc17cfi6d5ngks";
     };
     meta.homepage = "https://github.com/drewtempelmeyer/palenight.vim/";
   };
@@ -3394,6 +3022,18 @@ let
     meta.homepage = "https://github.com/vim-scripts/ShowMultiBase/";
   };
 
+  sideways-vim = buildVimPluginFrom2Nix {
+    pname = "sideways-vim";
+    version = "2020-08-31";
+    src = fetchFromGitHub {
+      owner = "AndrewRadev";
+      repo = "sideways.vim";
+      rev = "c81d2cabc1ada11f1531b05669fd07f52c75da22";
+      sha256 = "042safg5i1f7rnfwlf37ic40rg6s5svsjci3cp06lzy3v9r8n2qf";
+    };
+    meta.homepage = "https://github.com/AndrewRadev/sideways.vim/";
+  };
+
   SimpylFold = buildVimPluginFrom2Nix {
     pname = "SimpylFold";
     version = "2017-06-13";
@@ -3637,12 +3277,12 @@ let
 
   tagbar = buildVimPluginFrom2Nix {
     pname = "tagbar";
-    version = "2020-08-26";
+    version = "2020-09-01";
     src = fetchFromGitHub {
       owner = "majutsushi";
       repo = "tagbar";
-      rev = "40413d8760146471757c69f08be68b24431f9474";
-      sha256 = "1194kp8qzpjvv64lplb49n64ksyv5dbn25sng448b2fgd6wqk9ji";
+      rev = "e1c2c98922ef922070e055a4a55f5b17659a69d8";
+      sha256 = "1dirz26hf66g4hichfni95mga1mwk1dmq2jyrlj9f3ph428ps61a";
     };
     meta.homepage = "https://github.com/majutsushi/tagbar/";
   };
@@ -4152,26 +3792,38 @@ let
     meta.homepage = "https://github.com/MarcWeber/vim-addon-xdebug/";
   };
 
+  vim-after-object = buildVimPluginFrom2Nix {
+    pname = "vim-after-object";
+    version = "2018-09-17";
+    src = fetchFromGitHub {
+      owner = "junegunn";
+      repo = "vim-after-object";
+      rev = "7f52106df8a05e9bc1c53960c31a55f77e303903";
+      sha256 = "13726m0c73n5pw9gil4ahbg71ibklrwkw9yvbr6qxxvn6qyijpdy";
+    };
+    meta.homepage = "https://github.com/junegunn/vim-after-object/";
+  };
+
   vim-airline = buildVimPluginFrom2Nix {
     pname = "vim-airline";
-    version = "2020-08-25";
+    version = "2020-08-27";
     src = fetchFromGitHub {
       owner = "vim-airline";
       repo = "vim-airline";
-      rev = "5d3cfa40453fd8216be6ca68e9bd3846eed05176";
-      sha256 = "150mdgmbyqp263rzmhp09a07547whalkbvzr9mi4jaq7paj21762";
+      rev = "c77d89046e5dc66438190e2261fb2197df2a8932";
+      sha256 = "009n427sgjmc12rvamda70marjaqpzi9zlddk5d1yim61qvh7djh";
     };
     meta.homepage = "https://github.com/vim-airline/vim-airline/";
   };
 
   vim-airline-themes = buildVimPluginFrom2Nix {
     pname = "vim-airline-themes";
-    version = "2020-08-25";
+    version = "2020-08-27";
     src = fetchFromGitHub {
       owner = "vim-airline";
       repo = "vim-airline-themes";
-      rev = "fd855c601c3d53b68f3971e1191f84c728d4d651";
-      sha256 = "07s45ck4001lxrzpxcvqsyqfg6j61js4131gxi150y7jb2wwyjjd";
+      rev = "155bce6665ab8c83447102e8402cc9d3b7c3b3f3";
+      sha256 = "1qavi386va4wnalaf03b19lfxypbkjcjdiiasbdzfnlqpz7d4rwy";
     };
     meta.homepage = "https://github.com/vim-airline/vim-airline-themes/";
   };
@@ -4370,12 +4022,12 @@ let
 
   vim-clap = buildVimPluginFrom2Nix {
     pname = "vim-clap";
-    version = "2020-08-20";
+    version = "2020-09-03";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vim-clap";
-      rev = "e690bde9e7838894b68f9d3d4d1a131e86c13ffb";
-      sha256 = "1pl32zgwn7ffyfn8xqqlck48sqv78jv8v4pfjay0rgr3jvaxis1v";
+      rev = "973ebcf5411eea777450673b0b3f132beb5004d7";
+      sha256 = "1fdlfx5lw1lkw3ikwap8h8sr2f8g43j87r2vl9y4w0rph240rj1v";
     };
     meta.homepage = "https://github.com/liuchengxu/vim-clap/";
   };
@@ -4658,12 +4310,12 @@ let
 
   vim-dirvish = buildVimPluginFrom2Nix {
     pname = "vim-dirvish";
-    version = "2020-06-30";
+    version = "2020-09-01";
     src = fetchFromGitHub {
       owner = "justinmk";
       repo = "vim-dirvish";
-      rev = "7c4dc5945b15a6b97ebef860070d30e36da01788";
-      sha256 = "0mg8fdfsr59015m309kr9v5akwc3zfwfygn36x47c8q2bwjjr052";
+      rev = "4bc6add29683230dd79a53b2ae8c770fa548a708";
+      sha256 = "1vz5fbq5aqlqh6sg6flg8lcds50vy8nck21jpppvhxq7acjn5630";
     };
     meta.homepage = "https://github.com/justinmk/vim-dirvish/";
   };
@@ -4874,12 +4526,12 @@ let
 
   vim-fireplace = buildVimPluginFrom2Nix {
     pname = "vim-fireplace";
-    version = "2020-08-04";
+    version = "2020-08-28";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fireplace";
-      rev = "8963dd3b385410e27752fb859bd5cecdd22b5f71";
-      sha256 = "0ax42ilx24cagy0m6ryda6h0fn7l8g1ckry24vfz2zp7d8y14hah";
+      rev = "9e62520397f6e98c6031aba4cb63e611abe4583b";
+      sha256 = "144qiari81xwaxw9rd5mh4g1ywn2r141438r3km6dh3acx18f6ij";
     };
     meta.homepage = "https://github.com/tpope/vim-fireplace/";
   };
@@ -4934,24 +4586,24 @@ let
 
   vim-floaterm = buildVimPluginFrom2Nix {
     pname = "vim-floaterm";
-    version = "2020-08-25";
+    version = "2020-09-02";
     src = fetchFromGitHub {
       owner = "voldikss";
       repo = "vim-floaterm";
-      rev = "cc2ff0a07af75cd752afebbf3be62e6ebe234f2d";
-      sha256 = "1q1jmbmx79ii5g991hcp6xd2nzcdqlv4m065vwc8hdpk3ghgc9d4";
+      rev = "95eb7818f70339a29b7d655fc834ba12ccc2922c";
+      sha256 = "18yv4y3p8hlyrhadd2nc464cb9hql89mrpvvcdh4sxqn4qn8pmmk";
     };
     meta.homepage = "https://github.com/voldikss/vim-floaterm/";
   };
 
   vim-flutter = buildVimPluginFrom2Nix {
     pname = "vim-flutter";
-    version = "2020-07-08";
+    version = "2020-09-03";
     src = fetchFromGitHub {
       owner = "thosakwe";
       repo = "vim-flutter";
-      rev = "359052369690541a9ede6e897fde4dca867a5109";
-      sha256 = "1303dskqbg1c5n3hczzw7x3gn5kl7hlfha824klwlkx91ga2jhck";
+      rev = "a5ad99680b4c40cfa7477684e50d6c5b36d17601";
+      sha256 = "1zf12nh2sdrh6by3mb2zzhy8dd9xlmj3fa9jykzqa1gvqgp8lg5m";
     };
     meta.homepage = "https://github.com/thosakwe/vim-flutter/";
   };
@@ -4982,12 +4634,12 @@ let
 
   vim-fugitive = buildVimPluginFrom2Nix {
     pname = "vim-fugitive";
-    version = "2020-07-31";
+    version = "2020-08-26";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fugitive";
-      rev = "260182c65cae653ac20e6a69ba8cc6124e7ba6c2";
-      sha256 = "14dmar7d9qajjk2vy223mw7gwdcz548lcj5jg8pg7j4cyc6ffbyp";
+      rev = "511d3035d4da2453a9cb0188b6020ed7bc8fc18f";
+      sha256 = "003k746mqasd64yca0ay4lzbif7jx0p6ivs2g2f3mlnvpwiiim23";
     };
     meta.homepage = "https://github.com/tpope/vim-fugitive/";
   };
@@ -5042,12 +4694,12 @@ let
 
   vim-gitgutter = buildVimPluginFrom2Nix {
     pname = "vim-gitgutter";
-    version = "2020-08-07";
+    version = "2020-08-31";
     src = fetchFromGitHub {
       owner = "airblade";
       repo = "vim-gitgutter";
-      rev = "8005f71aabef13f5872b3ef4802f36503a16c451";
-      sha256 = "0ns33dbkw8lc6rj6mvkgymdsl3i4g8slbh06g8h4rfn8qq5wjxbw";
+      rev = "098b9c82e9ac39b0d203635a8041bb1aceb8426c";
+      sha256 = "1d0shs6q509zwfpp0dqffhh5fm8fr8x6km6w8mf4m9p1fkxyaz1g";
     };
     meta.homepage = "https://github.com/airblade/vim-gitgutter/";
   };
@@ -5078,12 +4730,12 @@ let
 
   vim-go = buildVimPluginFrom2Nix {
     pname = "vim-go";
-    version = "2020-08-19";
+    version = "2020-08-30";
     src = fetchFromGitHub {
       owner = "fatih";
       repo = "vim-go";
-      rev = "7c14e8ae5de7f4562c365249c83abc4d0e0d906c";
-      sha256 = "1l96mlkfvpsa2bw9rc4m8s7abjvcfyy05gsm445rzbijqxigkknk";
+      rev = "bf2dd524a7d7a2c6f50642ec3dae2bc1506b5c94";
+      sha256 = "0d1gnszjppp4p1b39jxa19fdg77iq6baxm5hbjiinidmhgbal35w";
     };
     meta.homepage = "https://github.com/fatih/vim-go/";
   };
@@ -5102,12 +4754,12 @@ let
 
   vim-graphql = buildVimPluginFrom2Nix {
     pname = "vim-graphql";
-    version = "2020-08-17";
+    version = "2020-08-31";
     src = fetchFromGitHub {
       owner = "jparise";
       repo = "vim-graphql";
-      rev = "1b9db5b2089751dc80a5dab9fa976a9750c3066c";
-      sha256 = "14bp6knckqa8rc9xwd5cnd6cnfhi0j6vgv0yl5nin47yzv0navha";
+      rev = "e64fba4ee17fa8dd391405982500c72d68fc50b9";
+      sha256 = "1pf0lpjy88hwmxn3lybjkq10w6s666wmpbzsfkjbp8xmqhzlvaf6";
     };
     meta.homepage = "https://github.com/jparise/vim-graphql/";
   };
@@ -5258,12 +4910,12 @@ let
 
   vim-html-template-literals = buildVimPluginFrom2Nix {
     pname = "vim-html-template-literals";
-    version = "2020-05-17";
+    version = "2020-09-02";
     src = fetchFromGitHub {
       owner = "jonsmithers";
       repo = "vim-html-template-literals";
-      rev = "0959db06cd74408935a589fb59ec63af91a1557b";
-      sha256 = "0vq0y9adx2023p0nqv020921r474216msrkm0lkb5v776xm4mks2";
+      rev = "602dba70bdcfc2e280e0c0503e74a8a92519db49";
+      sha256 = "0x0sbmcig3r058sg78bfj8dv0lwlgdcwvw9kxviynyhk2qkg9zl9";
     };
     meta.homepage = "https://github.com/jonsmithers/vim-html-template-literals/";
   };
@@ -5475,12 +5127,12 @@ let
 
   vim-jsdoc = buildVimPluginFrom2Nix {
     pname = "vim-jsdoc";
-    version = "2020-07-23";
+    version = "2020-08-31";
     src = fetchFromGitHub {
       owner = "heavenshell";
       repo = "vim-jsdoc";
-      rev = "ed31c776d1da96ed8d950aef5ffba3f767f2acb4";
-      sha256 = "1qp5n04igirkqzqh7vfw0jnb31p36h356nc4n1kzna4zyqndzk9s";
+      rev = "5bbe872ee41e50bd5b99bf6204d6147dab39cdc5";
+      sha256 = "0jmmkqzan5mkc0j05243f5layqj7fny92rl1vlj32ipv8wgdmczn";
     };
     meta.homepage = "https://github.com/heavenshell/vim-jsdoc/";
   };
@@ -5667,24 +5319,24 @@ let
 
   vim-lsc = buildVimPluginFrom2Nix {
     pname = "vim-lsc";
-    version = "2020-07-12";
+    version = "2020-08-29";
     src = fetchFromGitHub {
       owner = "natebosch";
       repo = "vim-lsc";
-      rev = "632d49bf7a227e13bea6ef341de35f89e45c55b0";
-      sha256 = "1an37vkr9di0abxfnidlbij37xxy5z1cwnvpcnink4gman1msyzy";
+      rev = "ab952d62a3c57d176e6c63b3f3c95b8ba37b0630";
+      sha256 = "07caiz9k3bx5qn5kg5hbh2a2d77bfvyfg9rx7s7zkavpz312r4kc";
     };
     meta.homepage = "https://github.com/natebosch/vim-lsc/";
   };
 
   vim-lsp = buildVimPluginFrom2Nix {
     pname = "vim-lsp";
-    version = "2020-08-24";
+    version = "2020-09-01";
     src = fetchFromGitHub {
       owner = "prabirshrestha";
       repo = "vim-lsp";
-      rev = "69dc272277da464242bf729eb3b57ad79c5a0aed";
-      sha256 = "0vxkfwdsfsfc91vjhdfbph2287hhr14jr5kzyblk5f1aldgr8901";
+      rev = "a8dd16f59a1f56ee40d0d403a722b6d556fa04e9";
+      sha256 = "1m08v4b0l88ly5jhklr4hx642gdypz315x9yhsni9bnxi9dhhkaa";
     };
     meta.homepage = "https://github.com/prabirshrestha/vim-lsp/";
   };
@@ -5713,6 +5365,18 @@ let
     meta.homepage = "https://github.com/lambdalisue/vim-manpager/";
   };
 
+  vim-markbar = buildVimPluginFrom2Nix {
+    pname = "vim-markbar";
+    version = "2020-08-31";
+    src = fetchFromGitHub {
+      owner = "Yilin-Yang";
+      repo = "vim-markbar";
+      rev = "df13c3abe88c01a716b1099de953dcfa1679e663";
+      sha256 = "1y5w182d57z1nl8c7ng25m88by88pnxqdsxmcnnygdfjmvbv8jl9";
+    };
+    meta.homepage = "https://github.com/Yilin-Yang/vim-markbar/";
+  };
+
   vim-markdown = buildVimPluginFrom2Nix {
     pname = "vim-markdown";
     version = "2020-07-14";
@@ -5749,6 +5413,18 @@ let
     meta.homepage = "https://github.com/samoshkin/vim-mergetool/";
   };
 
+  vim-merginal = buildVimPluginFrom2Nix {
+    pname = "vim-merginal";
+    version = "2020-01-29";
+    src = fetchFromGitHub {
+      owner = "idanarye";
+      repo = "vim-merginal";
+      rev = "02ac69b0468b7aec437df48df07f939558e85c9a";
+      sha256 = "0m5lym56xzp1gnwb79vjmigfi6ar0iqbzaydv2r8c47jj7xyxiz6";
+    };
+    meta.homepage = "https://github.com/idanarye/vim-merginal/";
+  };
+
   vim-metamath = buildVimPluginFrom2Nix {
     pname = "vim-metamath";
     version = "2017-02-10";
@@ -5775,12 +5451,12 @@ let
 
   vim-monokai = buildVimPluginFrom2Nix {
     pname = "vim-monokai";
-    version = "2020-08-08";
+    version = "2020-09-02";
     src = fetchFromGitHub {
       owner = "crusoexia";
       repo = "vim-monokai";
-      rev = "85b18e98a22b17f9e01867988c18cf396316c20f";
-      sha256 = "1vzllvq1ncq4qyqbkp8z26sr4n9kpqv35zkfjas3r2jqbn958a93";
+      rev = "77231afb915b32e1530f48e96a64db5cd0948487";
+      sha256 = "1hb8kqn70vi17mf2wiliqrkyp1n9zc53020kaw961vqvnk5mqsvg";
     };
     meta.homepage = "https://github.com/crusoexia/vim-monokai/";
   };
@@ -6159,12 +5835,12 @@ let
 
   vim-plug = buildVimPluginFrom2Nix {
     pname = "vim-plug";
-    version = "2020-08-08";
+    version = "2020-08-29";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "vim-plug";
-      rev = "13ea184015c30be5160ae285aedc0eaec0c72e6c";
-      sha256 = "19vd5cmshlwrrf5ncgkny9p478d7bhjjwwjv71xb2adyfc9r1rv6";
+      rev = "a9bf5bd72212ff7cf9e9e863c365a3464faa2426";
+      sha256 = "0rrmz7vn3kxgrbwmil3vlddq13sy9wbgmn5kgz1r12wcbwf1sb56";
     };
     meta.homepage = "https://github.com/junegunn/vim-plug/";
   };
@@ -6183,12 +5859,12 @@ let
 
   vim-polyglot = buildVimPluginFrom2Nix {
     pname = "vim-polyglot";
-    version = "2020-08-25";
+    version = "2020-09-01";
     src = fetchFromGitHub {
       owner = "sheerun";
       repo = "vim-polyglot";
-      rev = "f0d6ecff07c88e7a406bc082d1ce98a5282b451c";
-      sha256 = "1a8z7753a4g4zyi9dr24mkwhpi18r2wbnf9djjl4r4hr0hc7qcc1";
+      rev = "63119f09d1390b61155cc0dc3ff497356d2fc7e5";
+      sha256 = "0b04la1i0sawkwbwhb708jzdqflpdxavbf2s0dw8ys65z79z8qzn";
     };
     meta.homepage = "https://github.com/sheerun/vim-polyglot/";
   };
@@ -6411,12 +6087,12 @@ let
 
   vim-ruby = buildVimPluginFrom2Nix {
     pname = "vim-ruby";
-    version = "2020-08-22";
+    version = "2020-08-28";
     src = fetchFromGitHub {
       owner = "vim-ruby";
       repo = "vim-ruby";
-      rev = "35dce70cdc2d7bf3c2031cc5eac2a47ddfb8c17b";
-      sha256 = "0cc36cnqaz2q45287pfdkfxpb91dlhqi5a8kf8ghz61dny2xnv8r";
+      rev = "e367f7b33fe9159c943963f3f839e4d08b74090e";
+      sha256 = "1pngmr6ww4fmn71rshi1npyswp48dq3p7m02s6s703bg83smvmc8";
     };
     meta.homepage = "https://github.com/vim-ruby/vim-ruby/";
   };
@@ -6627,12 +6303,12 @@ let
 
   vim-sneak = buildVimPluginFrom2Nix {
     pname = "vim-sneak";
-    version = "2020-06-29";
+    version = "2020-09-01";
     src = fetchFromGitHub {
       owner = "justinmk";
       repo = "vim-sneak";
-      rev = "afe94543bb3bb95ef9ae2a58eebcbc17d69eb304";
-      sha256 = "0iaksyh77xahg5cp0q9x5c14jdklsrgy9400jp4xjb83qgg6d7qq";
+      rev = "65e5e4668371152c6ef7a6269c6a6b960cef21b4";
+      sha256 = "0bfibshqqa17n9vbdd2g8kalnc78v1ag3hzws9pdacrcsxhsh0ry";
     };
     meta.homepage = "https://github.com/justinmk/vim-sneak/";
   };
@@ -6651,12 +6327,12 @@ let
 
   vim-snippets = buildVimPluginFrom2Nix {
     pname = "vim-snippets";
-    version = "2020-08-19";
+    version = "2020-08-30";
     src = fetchFromGitHub {
       owner = "honza";
       repo = "vim-snippets";
-      rev = "c093074fec6ba83aced4958ea44af11c5e5dff30";
-      sha256 = "0919fhzpg7scm7idq4vh7kqjvlmc4037cn5d24ggsvziybi07k9p";
+      rev = "c609efe753ccc2f2631908149e94febc0b257052";
+      sha256 = "00m2kjkqyz1s36hn2m7qd98ms26cxhcbh1qhpnzbhfldz0wq9dd5";
     };
     meta.homepage = "https://github.com/honza/vim-snippets/";
   };
@@ -6868,12 +6544,12 @@ let
 
   vim-test = buildVimPluginFrom2Nix {
     pname = "vim-test";
-    version = "2020-08-25";
+    version = "2020-09-01";
     src = fetchFromGitHub {
       owner = "vim-test";
       repo = "vim-test";
-      rev = "45c495d78143f73fc034781601ff44ca90e05687";
-      sha256 = "0h3yjc5g8cklq988bilqjp8wv19yb16rmjphjhifa1c2fp23n7nk";
+      rev = "795f16430c568fc13266be9239bf70f19b8ae50f";
+      sha256 = "06j24di1r2p1qpiy86h75ghfsf0lqkfllf7kf64gjas89gbc9i89";
     };
     meta.homepage = "https://github.com/vim-test/vim-test/";
   };
@@ -7070,6 +6746,18 @@ let
     meta.homepage = "https://github.com/lumiliet/vim-twig/";
   };
 
+  vim-twiggy = buildVimPluginFrom2Nix {
+    pname = "vim-twiggy";
+    version = "2019-06-24";
+    src = fetchFromGitHub {
+      owner = "sodapopcan";
+      repo = "vim-twiggy";
+      rev = "962b181f402f05b66641308fe1b3538d5f863ab8";
+      sha256 = "0cqarsvdw9gr8pqp1gjy4rb6aaifjyb7iaaa2g8msr1ps0ihs3gd";
+    };
+    meta.homepage = "https://github.com/sodapopcan/vim-twiggy/";
+  };
+
   vim-unimpaired = buildVimPluginFrom2Nix {
     pname = "vim-unimpaired";
     version = "2020-04-26";
@@ -7144,12 +6832,12 @@ let
 
   vim-vsnip = buildVimPluginFrom2Nix {
     pname = "vim-vsnip";
-    version = "2020-08-23";
+    version = "2020-09-02";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "vim-vsnip";
-      rev = "28867f3dd99efdae7f56b18f6555fc78f30e043b";
-      sha256 = "1av7cvpb8iqnpjbq1cg667k5yhgr8m4vkj6c030a82cy1j49m931";
+      rev = "b4ea93fbcb578250da97722ca825a73a66c3d5c8";
+      sha256 = "0zgy4q2b5fywqiv2chz3fly4liy8br2mdj1kf4m43b6pil77qpbi";
     };
     meta.homepage = "https://github.com/hrsh7th/vim-vsnip/";
   };
@@ -7394,14 +7082,27 @@ let
     meta.homepage = "https://github.com/Shougo/vimshell.vim/";
   };
 
+  vimspector = buildVimPluginFrom2Nix {
+    pname = "vimspector";
+    version = "2020-09-01";
+    src = fetchFromGitHub {
+      owner = "puremourning";
+      repo = "vimspector";
+      rev = "e81be848a112350656e7c273777185c3c1a88e3e";
+      sha256 = "07xfkvhanwi7x5kyw0wzgia33wrxi8xpxxf546xkd06bz0j6kqv4";
+      fetchSubmodules = true;
+    };
+    meta.homepage = "https://github.com/puremourning/vimspector/";
+  };
+
   vimtex = buildVimPluginFrom2Nix {
     pname = "vimtex";
-    version = "2020-08-21";
+    version = "2020-09-02";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "vimtex";
-      rev = "e27836fdf5b919ba8f4357abe16561ca4d0f60b1";
-      sha256 = "1i5w7yijxa37jpn7k4whr3ri2d4nrmlrv94inanlpff006938fdd";
+      rev = "ec219646136de3040356b00d0dc74520950bd761";
+      sha256 = "1329cg02mxplflfpww69avn71pz0sj1ihl3qkwmz9b90whglczmr";
     };
     meta.homepage = "https://github.com/lervag/vimtex/";
   };
@@ -7614,24 +7315,24 @@ let
 
   zenburn = buildVimPluginFrom2Nix {
     pname = "zenburn";
-    version = "2020-08-24";
+    version = "2020-08-31";
     src = fetchFromGitHub {
       owner = "jnurmine";
       repo = "zenburn";
-      rev = "de2cc6c93593938b9628e03eb424e318e5ec7959";
-      sha256 = "17kvlbb49l3alqdd2bf6llvvhs0c9p75qn7i1kb1qavyipxi38a3";
+      rev = "e1f66dd35ec86ee0aec0b9ef1818f97023f914c4";
+      sha256 = "10aizq0xvln917i9jji6fxdxdgfbvcvd041z6qq2m23h5xs232w8";
     };
     meta.homepage = "https://github.com/jnurmine/zenburn/";
   };
 
   zig-vim = buildVimPluginFrom2Nix {
     pname = "zig-vim";
-    version = "2020-07-20";
+    version = "2020-08-30";
     src = fetchFromGitHub {
       owner = "ziglang";
       repo = "zig.vim";
-      rev = "079985534a5f2795bfaf549f276d4a1c213bfcb1";
-      sha256 = "173yx5nv9pnjm1qxcfkgbf4yfbjyifqjn5qvk8ibdvdxrhyvbrdn";
+      rev = "3c95b67a76934959f9124e39e64eb14f65f14dc9";
+      sha256 = "0m152kf9yw7q2slci2bzsqmycl9nxawhhclr4r9k5q87xdrzjqk0";
     };
     meta.homepage = "https://github.com/ziglang/zig.vim/";
   };
diff --git a/pkgs/misc/vim-plugins/overrides.nix b/pkgs/misc/vim-plugins/overrides.nix
index db1fd71d2f418..18515293655ba 100644
--- a/pkgs/misc/vim-plugins/overrides.nix
+++ b/pkgs/misc/vim-plugins/overrides.nix
@@ -14,9 +14,6 @@
 , nodePackages
 , dasht
 
-# coc-go dependency
-, go
-
 # deoplete-khard dependency
 , khard
 
@@ -125,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 = ''
@@ -791,4 +595,47 @@ self: super: {
       ln -s ${maple-bin}/bin/maple $target/bin/maple
     '';
   });
-}
+} // (
+  let
+    nodePackageNames = [
+      "coc-go"
+      "coc-css"
+      "coc-emmet"
+      "coc-eslint"
+      "coc-git"
+      "coc-highlight"
+      "coc-html"
+      "coc-imselect"
+      "coc-java"
+      "coc-jest"
+      "coc-json"
+      "coc-lists"
+      "coc-metals"
+      "coc-pairs"
+      "coc-prettier"
+      "coc-python"
+      "coc-r-lsp"
+      "coc-rls"
+      "coc-rust-analyzer"
+      "coc-smartf"
+      "coc-snippets"
+      "coc-solargraph"
+      "coc-stylelint"
+      "coc-tabnine"
+      "coc-tslint"
+      "coc-tslint-plugin"
+      "coc-tsserver"
+      "coc-vetur"
+      "coc-vimtex"
+      "coc-wxml"
+      "coc-yaml"
+      "coc-yank"
+    ];
+    nodePackage2VimPackage = name: buildVimPluginFrom2Nix {
+      pname = name;
+      inherit (nodePackages.${name}) version meta;
+      src = "${nodePackages.${name}}/lib/node_modules/${name}";
+    };
+  in
+  lib.genAttrs nodePackageNames nodePackage2VimPackage
+)
diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names
index c8b3f9cfa90ab..e2a4b090aaa07 100644
--- a/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/pkgs/misc/vim-plugins/vim-plugin-names
@@ -11,6 +11,7 @@ alx741/vim-stylishask
 amiorin/ctrlp-z
 andrep/vimacs
 andreshazard/vim-logreview
+AndrewRadev/sideways.vim
 AndrewRadev/splitjoin.vim
 andsild/peskcolor.vim
 andviro/flake8-vim
@@ -53,7 +54,6 @@ 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
@@ -102,7 +102,6 @@ ensime/ensime-vim
 ervandew/supertab
 esneider/YUNOcommit.vim
 fannheyward/coc-markdownlint
-fannheyward/coc-rust-analyzer
 farmergreg/vim-lastplace
 fatih/vim-go
 fcpg/vim-osc52
@@ -155,6 +154,7 @@ hsitz/VimOrganizer
 iamcco/coc-spell-checker
 iamcco/coc-vimlsp
 ianks/vim-tsx
+idanarye/vim-merginal
 idris-hackers/idris-vim
 ihsanturk/neuron.vim
 Inazuma110/deoplete-greek
@@ -188,7 +188,6 @@ jnurmine/zenburn
 jonbri/vim-colorstepper
 jonsmithers/vim-html-template-literals
 joonty/vim-xdebug
-josa42/coc-go
 joshdick/onedark.vim
 jpalardy/vim-slime
 jparise/vim-graphql
@@ -205,6 +204,7 @@ 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
@@ -345,43 +345,14 @@ 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
@@ -426,6 +397,7 @@ preservim/nerdcommenter
 preservim/nerdtree
 psliwka/vim-smoothie
 ptzz/lf.vim
+puremourning/vimspector
 purescript-contrib/purescript-vim
 python-mode/python-mode
 qnighy/lalrpop.vim
@@ -442,6 +414,7 @@ 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
@@ -493,6 +466,7 @@ sjl/gundo.vim
 sjl/splice.vim
 sk1418/last256
 slashmili/alchemist.vim
+sodapopcan/vim-twiggy
 solarnz/arcanist.vim
 sonph/onehalf
 stefandtw/quickfix-reflector.vim
@@ -631,6 +605,7 @@ xolox/vim-misc
 xuhdev/vim-latex-live-preview
 ycm-core/YouCompleteMe
 Yggdroot/indentLine
+Yilin-Yang/vim-markbar
 yuki-ycino/ncm2-dictionary
 zah/nim.vim
 ziglang/zig.vim
diff --git a/pkgs/os-specific/darwin/yabai/default.nix b/pkgs/os-specific/darwin/yabai/default.nix
index 448e6865e18b7..742a3948707ea 100644
--- a/pkgs/os-specific/darwin/yabai/default.nix
+++ b/pkgs/os-specific/darwin/yabai/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "yabai";
-  version = "3.2.1";
+  version = "3.3.0";
 
   src = fetchFromGitHub {
     owner = "koekeishiya";
     repo = pname;
     rev = "v${version}";
-    sha256 = "11rsi6z2z7ynfqs1xq3bvf187k5xnwm0d45a8ai9hrqdsf3f1j19";
+    sha256 = "0y4idivqkmi3xsc8yjdzh1b15qzgyqlw7ifs26v3dc91lkjhfc4x";
   };
 
   buildInputs = [ Carbon Cocoa ScriptingBridge xxd ];
diff --git a/pkgs/os-specific/linux/bcc/default.nix b/pkgs/os-specific/linux/bcc/default.nix
index f8e9a4135a395..de02ffb30a39e 100644
--- a/pkgs/os-specific/linux/bcc/default.nix
+++ b/pkgs/os-specific/linux/bcc/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchurl, makeWrapper, cmake, llvmPackages, kernel
+{ stdenv, fetchurl, fetchpatch
+, makeWrapper, cmake, llvmPackages, kernel
 , flex, bison, elfutils, python, luajit, netperf, iperf, libelf
 , systemtap, bash
 }:
@@ -23,6 +24,12 @@ python.pkgs.buildPythonApplication rec {
     # This is needed until we fix
     # https://github.com/NixOS/nixpkgs/issues/40427
     ./fix-deadlock-detector-import.patch
+
+    # This is already upstream; remove it on the next release
+    (fetchpatch {
+      url = "https://github.com/iovisor/bcc/commit/60de17161fe7f44b534a8da343edbad2427220e3.patch";
+      sha256 = "0pd5b4vgpdxbsrjwrw2kmn4l9hpj0rwdm3hvwvk7dsr3raz7w4b3";
+    })
   ];
 
   propagatedBuildInputs = [ python.pkgs.netaddr ];
diff --git a/pkgs/os-specific/linux/bpftrace/default.nix b/pkgs/os-specific/linux/bpftrace/default.nix
index 0c360e60b7e0a..fc7c8ecba2da8 100644
--- a/pkgs/os-specific/linux/bpftrace/default.nix
+++ b/pkgs/os-specific/linux/bpftrace/default.nix
@@ -1,17 +1,18 @@
 { stdenv, fetchFromGitHub
 , cmake, pkgconfig, flex, bison
-, llvmPackages, kernel, elfutils, libelf, bcc
+, llvmPackages, kernel, elfutils
+, libelf, libbfd, libbpf, libopcodes, bcc
 }:
 
 stdenv.mkDerivation rec {
   pname = "bpftrace";
-  version = "0.9.4";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner  = "iovisor";
     repo   = "bpftrace";
     rev    = "refs/tags/v${version}";
-    sha256 = "00fvkq3razwacnpb82zkpv63dgyigbqx3gj6g0ka94nwa74i5i77";
+    sha256 = "02f2r731yj3fdc8341id1ksk4dma9rwm2765n2xgx2ldrrz5823y";
   };
 
   enableParallelBuilding = true;
@@ -19,6 +20,7 @@ stdenv.mkDerivation rec {
   buildInputs = with llvmPackages;
     [ llvm clang-unwrapped
       kernel elfutils libelf bcc
+      libbpf libbfd libopcodes
     ];
 
   nativeBuildInputs = [ cmake pkgconfig flex bison ]
@@ -41,7 +43,7 @@ stdenv.mkDerivation rec {
   #
   cmakeFlags =
     [ "-DBUILD_TESTING=FALSE"
-      "-DLIBBCC_INCLUDE_DIRS=${bcc}/include/bcc"
+      "-DLIBBCC_INCLUDE_DIRS=${bcc}/include"
     ];
 
   # nuke the example/reference output .txt files, for the included tools,
diff --git a/pkgs/os-specific/linux/deepin-anything/default.nix b/pkgs/os-specific/linux/deepin-anything/default.nix
deleted file mode 100644
index 4139cc153cddc..0000000000000
--- a/pkgs/os-specific/linux/deepin-anything/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ stdenv, deepin, kernel }:
-
-stdenv.mkDerivation {
-  pname = "deepin-anything-module";
-  version = "${deepin.deepin-anything.version}-${kernel.version}";
-  src = deepin.deepin-anything.modsrc;
-
-  nativeBuildInputs = kernel.moduleBuildDependencies;
-
-  buildPhase = ''
-    make -C src/deepin-anything-0.0 kdir=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build
-  '';
-
-  installPhase = ''
-     install -m 644 -D -t $out/lib/modules/${kernel.modDirVersion}/extra src/deepin-anything-0.0/*.ko
-  '';
-
-  meta = deepin.deepin-anything.meta // {
-    description = deepin.deepin-anything.meta.description + " (kernel modules)";
-    badPlatforms = [ "aarch64-linux" ];  # the kernel module is not building
-  };
-}
diff --git a/pkgs/os-specific/linux/kernel/hardened/patches.json b/pkgs/os-specific/linux/kernel/hardened/patches.json
index 824eb1a696682..060d747e763d4 100644
--- a/pkgs/os-specific/linux/kernel/hardened/patches.json
+++ b/pkgs/os-specific/linux/kernel/hardened/patches.json
@@ -1,22 +1,22 @@
 {
     "4.14": {
-        "name": "linux-hardened-4.14.194.a.patch",
-        "sha256": "07z3lr3mbm6c95d7fra2qp071n1c45f9241cl19zs63g00avi11p",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.194.a/linux-hardened-4.14.194.a.patch"
+        "name": "linux-hardened-4.14.195.a.patch",
+        "sha256": "1a1g9q750gbnkcycqnzafb22f7250ck8dvzx6jqkz669wdg2pd7z",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.195.a/linux-hardened-4.14.195.a.patch"
     },
     "4.19": {
-        "name": "linux-hardened-4.19.141.a.patch",
-        "sha256": "0yiqkkp17pf9r6nakpnqhvmf8awpzp5n27cmh15ril7vn1y71sxw",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.141.a/linux-hardened-4.19.141.a.patch"
+        "name": "linux-hardened-4.19.142.a.patch",
+        "sha256": "1gwvacr23lp8qryfhnqn89pn9ly9d8c42rirvkz5psfmvnm7vxbn",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.142.a/linux-hardened-4.19.142.a.patch"
     },
     "5.4": {
-        "name": "linux-hardened-5.4.60.a.patch",
-        "sha256": "138kms73rlj5zmsb2ivjzz1jr5aa8y8pmwzx02c7j1qk08v82823",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.60.a/linux-hardened-5.4.60.a.patch"
+        "name": "linux-hardened-5.4.61.a.patch",
+        "sha256": "1sgysrkycca860m2h7vrnfkplbsari6blcrkbsn285s5d0fsicnc",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.61.a/linux-hardened-5.4.61.a.patch"
     },
     "5.7": {
-        "name": "linux-hardened-5.7.17.a.patch",
-        "sha256": "181b473y0hkw076hsndw6nfynr2yhcaypj48iqnk25hzcj40nnaz",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.7.17.a/linux-hardened-5.7.17.a.patch"
+        "name": "linux-hardened-5.7.19.a.patch",
+        "sha256": "1lydlh499aj3ck5cnv8q2271y4klvp17zm7j7qni16am14bld936",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.7.19.a/linux-hardened-5.7.19.a.patch"
     }
 }
diff --git a/pkgs/os-specific/linux/kernel/linux-4.14.nix b/pkgs/os-specific/linux/kernel/linux-4.14.nix
index 04d121de30714..05fc466f0f97d 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.14.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.14.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "4.14.195";
+  version = "4.14.196";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "08d08la3h48fbdlr3h8zbvdghydx3x9cwb4yrnm0n93hhrwjhkrr";
+    sha256 = "16mhqymwkgqi8zalcij5c754smc8ysvfw6l2cwshr4scipsv4qay";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.19.nix b/pkgs/os-specific/linux/kernel/linux-4.19.nix
index 2eb697be6844c..c683b222f0c76 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.19.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.19.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "4.19.142";
+  version = "4.19.143";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "19372sri4962dqf5rbr211lrfpckmj11kxsginfcwwid4hfdn4k9";
+    sha256 = "1383yfwb962mhn25b3b3zqrwnpyp01g5xclsv14wra0fdz33ahra";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.4.nix b/pkgs/os-specific/linux/kernel/linux-4.4.nix
index 0be1f1bef7b5c..0fccc800c0730 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.4.nix
@@ -1,11 +1,11 @@
 { stdenv, buildPackages, fetchurl, perl, buildLinux, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.4.234";
+  version = "4.4.235";
   extraMeta.branch = "4.4";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "123354h05fip161rzlxc8h0cn5lh0d1gz06gc5b7zyz9i2lxv539";
+    sha256 = "0w5pkv936zb0shjgnpv17gcp5n8f91djznzq54p6j1bl5q2qdyqd";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.9.nix b/pkgs/os-specific/linux/kernel/linux-4.9.nix
index 8ec9b8e51a346..75af5a09d4d67 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.9.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.9.nix
@@ -1,11 +1,11 @@
 { stdenv, buildPackages, fetchurl, perl, buildLinux, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.9.234";
+  version = "4.9.235";
   extraMeta.branch = "4.9";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1qw26x2qc29yr094c7scw68m9yz4j0b2c4f92rvi3s31s928avvm";
+    sha256 = "1hqcb3zw4546h6x5xy2mywdznha8813lx15mxbgfbvwm4qhsc9g6";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.4.nix b/pkgs/os-specific/linux/kernel/linux-5.4.nix
index 4c5d4bcd8e877..24bff32186908 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.4.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "5.4.61";
+  version = "5.4.62";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "197y2yb60m1k8i7mig4pa9wsrklfxq81ba3zfahwb2b31w2kvwc6";
+    sha256 = "0w49y8lymz23x4mr5byaxnrkhm56lwfhnqkra07hqyfr5y63v216";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.7.nix b/pkgs/os-specific/linux/kernel/linux-5.7.nix
index 187bb0dd6bba4..4f721d8b0e4de 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.7.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.7.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "5.7.18";
+  version = "5.7.19";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "0p54icpxacrx8k09qam2hx22azh9xz9fzyif2z73qagk3syz5pd4";
+    sha256 = "1rwzp51ddlkdzanj6i8jqj5yh0njpzn7ly4r8nnzwkdfp5465721";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.8.nix b/pkgs/os-specific/linux/kernel/linux-5.8.nix
index 5d545f184f32b..5ea15aa5a1bc3 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.8.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.8.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "5.8.4";
+  version = "5.8.6";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "15hyz92wsk6fxqr1rq0k77qw76jka2igpc9xviwa0j4a5qrr43fv";
+    sha256 = "180bka8a0f2ykaifgb323pzgh0n909mlrsk08l08zmifggnh19cc";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix b/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix
new file mode 100644
index 0000000000000..b59a367c4ad33
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix
@@ -0,0 +1,41 @@
+{ lib, buildLinux, fetchurl
+, kernelPatches ? [ ]
+, structuredExtraConfig ? {}
+, extraMeta ? {}
+, argsOverride ? {}
+, ... } @ args:
+
+let
+  version = "5.4.61-rt37"; # updated by ./update-rt.sh
+  branch = lib.versions.majorMinor version;
+  kversion = builtins.elemAt (lib.splitString "-" version) 0;
+in buildLinux (args // {
+  inherit version;
+
+  src = fetchurl {
+    url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz";
+    sha256 = "197y2yb60m1k8i7mig4pa9wsrklfxq81ba3zfahwb2b31w2kvwc6";
+  };
+
+  kernelPatches = let rt-patch = {
+    name = "rt";
+    patch = fetchurl {
+      url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
+      sha256 = "1qgd55x62pczgmxcxbigkg6f622ma5a6mz4gi55a8mlbxzh2pddj";
+    };
+  }; in [ rt-patch ] ++ lib.remove rt-patch kernelPatches;
+
+  structuredExtraConfig = with lib.kernel; {
+    PREEMPT_RT = yes;
+    # Fix error: unused option: PREEMPT_RT.
+    EXPERT = yes; # PREEMPT_RT depends on it (in kernel/Kconfig.preempt)
+    # Fix error: option not set correctly: PREEMPT_VOLUNTARY (wanted 'y', got 'n').
+    PREEMPT_VOLUNTARY = lib.mkForce no; # PREEMPT_RT deselects it.
+    # Fix error: unused option: RT_GROUP_SCHED.
+    RT_GROUP_SCHED = lib.mkForce (option no); # Removed by sched-disable-rt-group-sched-on-rt.patch.
+  } // structuredExtraConfig;
+
+  extraMeta = extraMeta // {
+    inherit branch;
+  };
+} // argsOverride)
diff --git a/pkgs/os-specific/linux/kernel/linux-rt-5.6.nix b/pkgs/os-specific/linux/kernel/linux-rt-5.6.nix
new file mode 100644
index 0000000000000..7c77454040d5c
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/linux-rt-5.6.nix
@@ -0,0 +1,41 @@
+{ lib, buildLinux, fetchurl
+, kernelPatches ? [ ]
+, structuredExtraConfig ? {}
+, extraMeta ? {}
+, argsOverride ? {}
+, ... } @ args:
+
+let
+  version = "5.6.19-rt12"; # updated by ./update-rt.sh
+  branch = lib.versions.majorMinor version;
+  kversion = builtins.elemAt (lib.splitString "-" version) 0;
+in buildLinux (args // {
+  inherit version;
+
+  src = fetchurl {
+    url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz";
+    sha256 = "1s0yc1138sglbm4vyizl4r7hnc1l7nykdjp4063ad67yayr2ylv2";
+  };
+
+  kernelPatches = let rt-patch = {
+    name = "rt";
+    patch = fetchurl {
+      url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
+      sha256 = "0ia8rx0615x0z2s4ppw1244crg7c5ak07c9n3wbnz7y8bk8hyxws";
+    };
+  }; in [ rt-patch ] ++ lib.remove rt-patch kernelPatches;
+
+  structuredExtraConfig = with lib.kernel; {
+    PREEMPT_RT = yes;
+    # Fix error: unused option: PREEMPT_RT.
+    EXPERT = yes; # PREEMPT_RT depends on it (in kernel/Kconfig.preempt)
+    # Fix error: option not set correctly: PREEMPT_VOLUNTARY (wanted 'y', got 'n').
+    PREEMPT_VOLUNTARY = lib.mkForce no; # PREEMPT_RT deselects it.
+    # Fix error: unused option: RT_GROUP_SCHED.
+    RT_GROUP_SCHED = lib.mkForce (option no); # Removed by sched-disable-rt-group-sched-on-rt.patch.
+  } // structuredExtraConfig;
+
+  extraMeta = extraMeta // {
+    inherit branch;
+  };
+} // argsOverride)
diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix
index cf2ca99f6f59a..a78d853bb7ff1 100644
--- a/pkgs/os-specific/linux/kernel/linux-testing.nix
+++ b/pkgs/os-specific/linux/kernel/linux-testing.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "5.9-rc2";
+  version = "5.9-rc3";
   extraMeta.branch = "5.9";
 
   # modDirVersion needs to be x.y.z, will always add .0
@@ -11,7 +11,7 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "https://git.kernel.org/torvalds/t/linux-${version}.tar.gz";
-    sha256 = "0mdh6gsd305kcgfqzyfgl5m886asjm5030ahg63gyias3ywzn5wd";
+    sha256 = "1byckdxy0y5i3lgw3f3n7b4r3v1xb4g1z3ffiq3hp4ga4nf5xzw3";
   };
 
   # Should the testing kernels ever be built on Hydra?
diff --git a/pkgs/os-specific/linux/kernel/linux-zen.nix b/pkgs/os-specific/linux/kernel/linux-zen.nix
index c7d14a45068ac..8dea4c1709255 100644
--- a/pkgs/os-specific/linux/kernel/linux-zen.nix
+++ b/pkgs/os-specific/linux/kernel/linux-zen.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, buildLinux, ... } @ args:
 
 let
-  version = "5.8.1";
+  version = "5.8.7";
 in
 
 buildLinux (args // {
@@ -12,7 +12,7 @@ buildLinux (args // {
     owner = "zen-kernel";
     repo = "zen-kernel";
     rev = "v${version}-zen1";
-    sha256 = "122q09d0sybi9lqlaxpq6ffc0ha9127bg3wzjync256lbj5394b7";
+    sha256 = "06s7dpfxvwqfyh8qm8krcaxy98ki26cgh67k12g734bclg4bqsc5";
   };
 
   extraMeta = {
diff --git a/pkgs/os-specific/linux/kernel/update-rt.sh b/pkgs/os-specific/linux/kernel/update-rt.sh
new file mode 100755
index 0000000000000..bcfa494d7e7ab
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/update-rt.sh
@@ -0,0 +1,77 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+# To update all rt kernels run: ./update-rt.sh
+
+# To update just one ./linux-rt-5.X.nix run: ./update-rt.sh ./linux-rt-5.X.nix
+
+# To add a new kernel branch 5.Y run: ./update-rt.sh ./linux-rt-5.Y.nix
+# (with nonexistent .nix file) and update all-packages.nix.
+
+# To commit run with: env COMMIT=1
+
+mirror=https://kernel.org/pub/linux/kernel
+
+main() {
+    if [ $# -ge 1 ]; then
+        update-if-needed "$1"
+    else
+        update-all-if-needed
+    fi
+}
+
+update-all-if-needed() {
+    for f in "$(dirname "$0")"/linux-rt-*.nix; do
+        update-if-needed "$f"
+    done
+}
+
+file-version() {
+    file="$1" # e.g. ./linux-rt-5.4.nix
+    if [ -e "$file" ]; then
+        grep ' version = ' "$file" | grep -o '[0-9].[^"]*'
+    fi
+}
+
+latest-rt-version() {
+    branch="$1" # e.g. 5.4
+    curl -sL "$mirror/projects/rt/$branch/sha256sums.asc" |
+        sed -ne '/.patch.xz/ { s/.*patch-\(.*\).patch.xz/\1/; p; q }'
+}
+
+update-if-needed() {
+    file="$1" # e.g. ./linux-rt-5.4.nix (created if does not exist)
+    branch=$(basename "$file" .nix) # e.g. linux-rt-5.4
+    branch=${branch#linux-rt-} # e.g. 5.4
+    cur=$(file-version "$file") # e.g. 5.4.59-rt36 or empty
+    new=$(latest-rt-version "$branch") # e.g. 5.4.61-rt37
+    kversion=${new%-*} # e.g. 5.4.61
+    major=${branch%.*} # e.g 5
+    nixattr="linux-rt_${branch/./_}"
+    if [ "$new" = "$cur" ]; then
+        echo "$nixattr: $cur (up-to-date)"
+        return
+    fi
+    khash=$(nix-prefetch-url "$mirror/v${major}.x/linux-${kversion}.tar.xz")
+    phash=$(nix-prefetch-url "$mirror/projects/rt/${branch}/older/patch-${new}.patch.xz")
+    if [ "$cur" ]; then
+        msg="$nixattr: $cur -> $new"
+    else
+        msg="$nixattr: init at $new"
+        prev=$(ls "$(dirname "$0")"/linux-rt-*.nix | tail -1)
+        cp "$prev" "$file"
+        cur=$(file-version "$file")
+    fi
+    echo "$msg"
+    sed -i "$file" \
+        -e "s/$cur/$new/" \
+        -e "s|kernel/v[0-9]*|kernel/v$major|" \
+        -e "1,/.patch.xz/ s/sha256 = .*/sha256 = \"$khash\";/" \
+        -e "1,/.patch.xz/! s/sha256 = .*/sha256 = \"$phash\";/"
+    if [ "${COMMIT:-}" ]; then
+        git add "$file"
+        git commit -m "$msg"
+    fi
+}
+
+return 2>/dev/null || main "$@"
diff --git a/pkgs/os-specific/linux/kernel/update.sh b/pkgs/os-specific/linux/kernel/update.sh
index 55fdce06c9732..560edced36ead 100755
--- a/pkgs/os-specific/linux/kernel/update.sh
+++ b/pkgs/os-specific/linux/kernel/update.sh
@@ -58,6 +58,9 @@ ls $NIXPKGS/pkgs/os-specific/linux/kernel | while read FILE; do
   echo "Updated $OLDVER -> $V"
 done
 
+# Update linux-rt
+COMMIT=1 $NIXPKGS/pkgs/os-specific/linux/kernel/update-rt.sh
+
 # Update linux-libre
 COMMIT=1 $NIXPKGS/pkgs/os-specific/linux/kernel/update-libre.sh
 
diff --git a/pkgs/os-specific/linux/libbpf/default.nix b/pkgs/os-specific/linux/libbpf/default.nix
index 0a98475384d72..0f2f9aa86f424 100644
--- a/pkgs/os-specific/linux/libbpf/default.nix
+++ b/pkgs/os-specific/linux/libbpf/default.nix
@@ -6,13 +6,13 @@ with builtins;
 
 stdenv.mkDerivation rec {
   pname = "libbpf";
-  version = "0.0.9";
+  version = "0.1.0";
 
   src = fetchFromGitHub {
-    owner = "libbpf";
-    repo = "libbpf";
-    rev = "v${version}";
-    sha256 = "18l0gff7nm841mwhr7bc7x863xcyvwh58zl7mc0amnsjqlbrvqg7";
+    owner  = "libbpf";
+    repo   = "libbpf";
+    rev    = "v${version}";
+    sha256 = "1wi3a795jq0smqg1c5ml2ghai47n1m5ijmch017wscybx4jdlynv";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/os-specific/linux/microcode/amd.nix b/pkgs/os-specific/linux/microcode/amd.nix
index a1a37db9dd6fe..135187c9a108b 100644
--- a/pkgs/os-specific/linux/microcode/amd.nix
+++ b/pkgs/os-specific/linux/microcode/amd.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
 
   meta = with stdenv.lib; {
     description = "AMD Processor microcode patch";
-    homepage = "http://www.amd64.org/support/microcode.html";
+    homepage = "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git";
     license = licenses.unfreeRedistributableFirmware;
     platforms = platforms.linux;
   };
diff --git a/pkgs/os-specific/linux/numworks-udev-rules/50-numworks-calculator.rules b/pkgs/os-specific/linux/numworks-udev-rules/50-numworks-calculator.rules
new file mode 100644
index 0000000000000..ab07de99718b1
--- /dev/null
+++ b/pkgs/os-specific/linux/numworks-udev-rules/50-numworks-calculator.rules
@@ -0,0 +1,2 @@
+SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="a291", TAG+="uaccess"
+SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="df11", TAG+="uaccess"
diff --git a/pkgs/os-specific/linux/numworks-udev-rules/default.nix b/pkgs/os-specific/linux/numworks-udev-rules/default.nix
new file mode 100644
index 0000000000000..4a123b202730b
--- /dev/null
+++ b/pkgs/os-specific/linux/numworks-udev-rules/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "numworks-udev-rules";
+  version = "unstable-2020-08-31";
+
+  udevRules = ./50-numworks-calculator.rules;
+  dontUnpack = true;
+
+  installPhase = ''
+    install -Dm 644 "${udevRules}" "$out/lib/udev/rules.d/50-numworks-calculator.rules"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Udev rules for Numworks calculators";
+    homepage = "https://numworks.com";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ shamilton ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/numworks-udev-rules/update.sh b/pkgs/os-specific/linux/numworks-udev-rules/update.sh
new file mode 100755
index 0000000000000..3949f6fd8f418
--- /dev/null
+++ b/pkgs/os-specific/linux/numworks-udev-rules/update.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+wget -O 50-numworks-calculator.rules "https://workshop.numworks.com/files/drivers/linux/50-numworks-calculator.rules"
diff --git a/pkgs/applications/virtualization/oci-seccomp-bpf-hook/default.nix b/pkgs/os-specific/linux/oci-seccomp-bpf-hook/default.nix
index 0e97a7c36464d..3247e8c4eda56 100644
--- a/pkgs/applications/virtualization/oci-seccomp-bpf-hook/default.nix
+++ b/pkgs/os-specific/linux/oci-seccomp-bpf-hook/default.nix
@@ -3,9 +3,9 @@
 , fetchFromGitHub
 , go-md2man
 , installShellFiles
-, libseccomp
-, linuxPackages
 , pkg-config
+, bcc
+, libseccomp
 }:
 
 buildGoModule rec {
@@ -27,8 +27,8 @@ buildGoModule rec {
     pkg-config
   ];
   buildInputs = [
+    bcc
     libseccomp
-    linuxPackages.bcc
   ];
 
   buildPhase = ''
diff --git a/pkgs/os-specific/linux/tiscamera/default.nix b/pkgs/os-specific/linux/tiscamera/default.nix
index fb2773b4d3adc..f9196fc16864d 100644
--- a/pkgs/os-specific/linux/tiscamera/default.nix
+++ b/pkgs/os-specific/linux/tiscamera/default.nix
@@ -2,7 +2,7 @@
 , stdenv
 , fetchFromGitHub
 , cmake
-, pkgconfig
+, pkg-config
 , pcre
 , tinyxml
 , libusb1
@@ -12,7 +12,6 @@
 , gst_all_1
 , libwebcam
 , libunwind
-, gstreamer
 , elfutils
 , orc
 , python3
@@ -32,7 +31,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     cmake
-    pkgconfig
+    pkg-config
   ];
 
   buildInputs = [
@@ -46,54 +45,37 @@ stdenv.mkDerivation rec {
     gst_all_1.gst-plugins-base
     libwebcam
     libunwind
-    gstreamer
     elfutils
     orc
     python3
     libuuid
   ];
 
-
   cmakeFlags = [
     "-DBUILD_ARAVIS=OFF" # For GigE support. Won't need it as our camera is usb.
     "-DBUILD_GST_1_0=ON"
     "-DBUILD_TOOLS=ON"
     "-DBUILD_V4L2=ON"
     "-DBUILD_LIBUSB=ON"
+    "-DTCAM_INSTALL_UDEV=${placeholder "out"}/lib/udev/rules.d"
+    "-DTCAM_INSTALL_UVCDYNCTRL=${placeholder "out"}/share/uvcdynctrl/data/199e"
+    "-DTCAM_INSTALL_GST_1_0=${placeholder "out"}/lib/gstreamer-1.0"
+    "-DTCAM_INSTALL_GIR=${placeholder "out"}/share/gir-1.0"
+    "-DTCAM_INSTALL_TYPELIB=${placeholder "out"}/lib/girepository-1.0"
+    "-DTCAM_INSTALL_SYSTEMD=${placeholder "out"}/etc/systemd/system"
+    # There are gobject introspection commands launched as part of the build. Those have a runtime
+    # dependency on `libtcam` (which itself is built as part of this build). In order to allow
+    # that, we set the dynamic linker's path to point on the build time location of the library.
+    "-DCMAKE_SKIP_BUILD_RPATH=OFF"
   ];
 
   postPatch = ''
-    substituteInPlace ./data/udev/80-theimagingsource-cameras.rules.in \
-      --replace "/usr/bin/uvcdynctrl" "${libwebcam}/bin/uvcdynctrl" \
-      --replace "/path/to/tiscamera/uvc-extensions" "$out/share/uvcdynctrl/data/199e"
-
     substituteInPlace ./src/BackendLoader.cpp \
       --replace '"libtcam-v4l2.so"' "\"$out/lib/tcam-0/libtcam-v4l2.so\"" \
       --replace '"libtcam-aravis.so"' "\"$out/lib/tcam-0/libtcam-aravis.so\"" \
       --replace '"libtcam-libusb.so"' "\"$out/lib/tcam-0/libtcam-libusb.so\""
   '';
 
-  preConfigure = ''
-    cmakeFlagsArray=(
-      $cmakeFlagsArray
-      "-DCMAKE_INSTALL_PREFIX=$out"
-      "-DTCAM_INSTALL_UDEV=$out/lib/udev/rules.d"
-      "-DTCAM_INSTALL_UVCDYNCTRL=$out/share/uvcdynctrl/data/199e"
-      "-DTCAM_INSTALL_GST_1_0=$out/lib/gstreamer-1.0"
-      "-DTCAM_INSTALL_GIR=$out/share/gir-1.0"
-      "-DTCAM_INSTALL_TYPELIB=$out/lib/girepository-1.0"
-      "-DTCAM_INSTALL_SYSTEMD=$out/etc/systemd/system"
-    )
-  '';
-
-
-  # There are gobject introspection commands launched as part of the build. Those have a runtime
-  # dependency on `libtcam` (which itself is built as part of this build). In order to allow
-  # that, we set the dynamic linker's path to point on the build time location of the library.
-  preBuild = ''
-    export LD_LIBRARY_PATH=$PWD/src''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH
-  '';
-
   meta = with lib; {
     description = "The Linux sources and UVC firmwares for The Imaging Source cameras";
     homepage = "https://github.com/TheImagingSource/tiscamera";
diff --git a/pkgs/os-specific/linux/zenmonitor/default.nix b/pkgs/os-specific/linux/zenmonitor/default.nix
index ac6e85b8049b3..23acaaa3e231d 100644
--- a/pkgs/os-specific/linux/zenmonitor/default.nix
+++ b/pkgs/os-specific/linux/zenmonitor/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zenmonitor";
-  version = "1.4.1";
+  version = "1.4.2";
 
   src = fetchFromGitHub {
     owner = "ocerman";
     repo = "zenmonitor";
     rev = "v${version}";
-    sha256 = "1g6sk2mcd7znjq6zmbf2fgn02a0yimyv2dw2143aciq2pxqjawmp";
+    sha256 = "0smv94vi36hziw42gasivyw25h5n1sgwwk1cv78id5g85w0kw246";
   };
 
   buildInputs = [ gtk3 ];
diff --git a/pkgs/servers/bazarr/default.nix b/pkgs/servers/bazarr/default.nix
index 08b05084e9eb0..92ca263f46fe0 100644
--- a/pkgs/servers/bazarr/default.nix
+++ b/pkgs/servers/bazarr/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bazarr";
-  version = "0.9";
+  version = "0.9.0.2";
 
   src = fetchurl {
     url = "https://github.com/morpheus65535/bazarr/archive/v${version}.tar.gz";
-    sha256 = "106f0gagq81rwykppyfjc7q8ibq3j89lp08hqgbmcv26hxb89rbj";
+    sha256 = "1lvldklj61hg9h1m0ixaa4zcf4ggdj6wf4myhwwampq4bmr2havj";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/dgraph/default.nix b/pkgs/servers/dgraph/default.nix
index 9a05f71817cfd..c1657dbfec4ea 100644
--- a/pkgs/servers/dgraph/default.nix
+++ b/pkgs/servers/dgraph/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "dgraph";
-  version = "20.03.4";
+  version = "20.07.0";
 
   src = fetchFromGitHub {
     owner = "dgraph-io";
     repo = "dgraph";
     rev = "v${version}";
-    sha256 = "1i098wimzwna62q4wp8ipx8qjrmhrdv48kklm1jdi2sfiz18c9sc";
+    sha256 = "0jcr3imv6vy40c8zdahsfph5mdxkmp2yqapl5982cf0a61gj7brp";
   };
 
-  vendorSha256 = "0n442nsa2whwb22dl0cjxspl8dc00rqv29zivcw9liwdzara81bw";
+  vendorSha256 = "0fb8ba2slav6jk93qwaw715myanivrpajfjwi654n0psr57vc7gf";
 
   doCheck = false;
 
diff --git a/pkgs/servers/dns/knot-dns/default.nix b/pkgs/servers/dns/knot-dns/default.nix
index 6a602883b35c7..d546b07148b29 100644
--- a/pkgs/servers/dns/knot-dns/default.nix
+++ b/pkgs/servers/dns/knot-dns/default.nix
@@ -5,14 +5,13 @@
 
 let inherit (stdenv.lib) optional optionals; in
 
-# Note: ATM only the libraries have been tested in nixpkgs.
 stdenv.mkDerivation rec {
   pname = "knot-dns";
-  version = "2.9.5";
+  version = "2.9.6";
 
   src = fetchurl {
     url = "https://secure.nic.cz/files/knot-dns/knot-${version}.tar.xz";
-    sha256 = "1109a8ba212ff8ddfdbaf44a6f8fc13a2b880a98a9e54c19112ba72a1aacbf76";
+    sha256 = "bf742883c6825b54f19f2dadca2c94fec1ff8bdcf0a52388e2e167937594b2e7";
   };
 
   outputs = [ "bin" "out" "dev" ];
diff --git a/pkgs/servers/etcd/default.nix b/pkgs/servers/etcd/default.nix
index 4c0df659f3ed8..53ad0d6ed240f 100644
--- a/pkgs/servers/etcd/default.nix
+++ b/pkgs/servers/etcd/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "etcd";
-  version = "3.3.22";
+  version = "3.3.25";
 
   goPackagePath = "github.com/coreos/etcd";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "etcd-io";
     repo = "etcd";
     rev = "v${version}";
-    sha256 = "1rd390qfx9k20j9gh1wp1g9ygc571f2kv1dg2wvqij3kwydhymcj";
+    sha256 = "10cyy6jr2xzmla5yyn850cv323ixrk70fjpk8lxjjjvy0ffmb6hj";
   };
 
   buildPhase = ''
@@ -24,10 +24,7 @@ buildGoPackage rec {
     install -Dm755 bin/* bin/functional/cmd/* -t $out/bin
   '';
 
-  passthru.tests = with nixosTests; {
-    etcd = etcd;
-    etcd-cluster = etcd-cluster;
-  };
+  passthru.tests = { inherit (nixosTests) etcd etcd-cluster; };
 
   meta = with lib; {
     description = "Distributed reliable key-value store for the most critical data of a distributed system";
diff --git a/pkgs/servers/hasura/cli.nix b/pkgs/servers/hasura/cli.nix
index 88b6b418dd9bd..af2f6f2a11f3f 100644
--- a/pkgs/servers/hasura/cli.nix
+++ b/pkgs/servers/hasura/cli.nix
@@ -9,7 +9,7 @@ buildGoModule rec {
 
   subPackages = [ "cmd/hasura" ];
 
-  vendorSha256 = "0a3mlkl00r680v8x3hy24ykggq5qm7k3101krlyfrb5y4karp75a";
+  vendorSha256 = "sha256-Fp6o3xZ/964q8yzJJFrqWZtQ5zYNy6Wreh42YxWjNbU=";
 
   doCheck = false;
 
diff --git a/pkgs/servers/hasura/default.nix b/pkgs/servers/hasura/default.nix
deleted file mode 100644
index 0852746603514..0000000000000
--- a/pkgs/servers/hasura/default.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-{ haskell }:
-
-with haskell.lib;
-
-let
-  # version in cabal file is invalid
-  version = "1.2.1";
-
-  pkgs = haskell.packages.ghc865.override {
-    overrides = self: super: {
-      # cabal2nix  --subpath server --maintainer offline --no-check --revision 1.2.1 https://github.com/hasura/graphql-engine.git
-      hasura-graphql-engine = justStaticExecutables
-        ((self.callPackage ./graphql-engine.nix { }).overrideDerivation (d: {
-          name = "graphql-engine-${version}";
-
-          inherit version;
-
-          # hasura needs VERSION env exported during build
-          preBuild = "export VERSION=${version}";
-        }));
-
-      hasura-cli = self.callPackage ./cli.nix {
-        hasura-graphql-engine = self.hasura-graphql-engine // {
-          inherit version;
-        };
-      };
-
-      # internal dependencies, non published on hackage (find revisions in cabal.project file)
-      # cabal2nix --revision <rev> https://github.com/hasura/ci-info-hs.git
-      ci-info = self.callPackage ./ci-info.nix { };
-      # cabal2nix --revision <rev> https://github.com/hasura/graphql-parser-hs.git
-      graphql-parser = self.callPackage ./graphql-parser.nix { };
-      # cabal2nix --revision <rev> https://github.com/hasura/pg-client-hs.git
-      pg-client = self.callPackage ./pg-client.nix { };
-
-      # version constrained dependencies, without these hasura will not build,
-      # find versions in graphql-engine.cabal
-      # cabal2nix cabal://dependent-map-0.2.4.0
-      dependent-map = self.callPackage ./dependent-map.nix { };
-      # cabal2nix cabal://dependent-sum-0.4
-      dependent-sum = self.callPackage ./dependent-sum.nix { };
-      # cabal2nix cabal://these-0.7.6
-      these = doJailbreak (self.callPackage ./these.nix { });
-      # cabal2nix cabal://immortal-0.2.2.1
-      immortal = self.callPackage ./immortal.nix { };
-      # cabal2nix cabal://network-uri-2.6.1.0
-      network-uri = self.callPackage ./network-uri.nix { };
-      # cabal2nix cabal://ghc-heap-view-0.6.0
-      ghc-heap-view = disableLibraryProfiling (self.callPackage ./ghc-heap-view.nix { });
-
-      # unmark broewn packages and do required modifications
-      stm-hamt = doJailbreak (unmarkBroken super.stm-hamt);
-      superbuffer = dontCheck (doJailbreak (unmarkBroken super.superbuffer));
-      Spock-core = dontCheck (unmarkBroken super.Spock-core);
-      stm-containers = dontCheck (unmarkBroken super.stm-containers);
-      ekg-json = unmarkBroken super.ekg-json;
-      list-t = dontCheck (unmarkBroken super.list-t);
-      primitive-extras = unmarkBroken super.primitive-extras;
-    };
-  };
-in {
-  inherit (pkgs) hasura-graphql-engine hasura-cli;
-}
diff --git a/pkgs/servers/hasura/dependent-map.nix b/pkgs/servers/hasura/dependent-map.nix
deleted file mode 100644
index 68ebb616b5f6f..0000000000000
--- a/pkgs/servers/hasura/dependent-map.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ mkDerivation, base, containers, dependent-sum, stdenv }:
-mkDerivation {
-  pname = "dependent-map";
-  version = "0.2.4.0";
-  sha256 = "5db396bdb5d156434af920c074316c3b84b4d39ba8e1cd349c7bb6679cb28246";
-  revision = "1";
-  editedCabalFile = "0a5f35d1sgfq1cl1r5bgb5pwfjniiycxiif4ycxglaizp8g5rlr1";
-  libraryHaskellDepends = [ base containers dependent-sum ];
-  homepage = "https://github.com/mokus0/dependent-map";
-  description = "Dependent finite maps (partial dependent products)";
-  license = "unknown";
-  hydraPlatforms = stdenv.lib.platforms.none;
-}
diff --git a/pkgs/servers/hasura/dependent-sum.nix b/pkgs/servers/hasura/dependent-sum.nix
deleted file mode 100644
index 90717b8736604..0000000000000
--- a/pkgs/servers/hasura/dependent-sum.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ mkDerivation, base, stdenv }:
-mkDerivation {
-  pname = "dependent-sum";
-  version = "0.4";
-  sha256 = "a8deecb4153a1878173f8d0a18de0378ab068bc15e5035b9e4cb478e8e4e1a1e";
-  libraryHaskellDepends = [ base ];
-  homepage = "https://github.com/mokus0/dependent-sum";
-  description = "Dependent sum type";
-  license = stdenv.lib.licenses.publicDomain;
-}
diff --git a/pkgs/servers/hasura/ghc-heap-view.nix b/pkgs/servers/hasura/ghc-heap-view.nix
deleted file mode 100644
index 54c873baee4bd..0000000000000
--- a/pkgs/servers/hasura/ghc-heap-view.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ mkDerivation, base, binary, bytestring, Cabal, containers
-, deepseq, filepath, ghc-heap, stdenv, template-haskell
-, transformers
-}:
-mkDerivation {
-  pname = "ghc-heap-view";
-  version = "0.6.0";
-  sha256 = "99ed6034d02a7a942e1b6ed970e9f7028dcdfd5b5d29fd8a0fb89f1a5e7c5ec8";
-  enableSeparateDataOutput = true;
-  setupHaskellDepends = [ base Cabal filepath ];
-  libraryHaskellDepends = [
-    base binary bytestring containers ghc-heap template-haskell
-    transformers
-  ];
-  testHaskellDepends = [ base deepseq ];
-  description = "Extract the heap representation of Haskell values and thunks";
-  license = stdenv.lib.licenses.bsd3;
-}
diff --git a/pkgs/servers/hasura/immortal.nix b/pkgs/servers/hasura/immortal.nix
deleted file mode 100644
index c53f0f18709ca..0000000000000
--- a/pkgs/servers/hasura/immortal.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ mkDerivation, base, lifted-base, monad-control, stdenv, stm
-, tasty, tasty-hunit, transformers, transformers-base
-}:
-mkDerivation {
-  pname = "immortal";
-  version = "0.2.2.1";
-  sha256 = "ed4aa1a2883a693a73fec47c8c2d5332d61a0626a2013403e1a8fb25cc6c8d8e";
-  libraryHaskellDepends = [
-    base lifted-base monad-control stm transformers-base
-  ];
-  testHaskellDepends = [
-    base lifted-base stm tasty tasty-hunit transformers
-  ];
-  homepage = "https://github.com/feuerbach/immortal";
-  description = "Spawn threads that never die (unless told to do so)";
-  license = stdenv.lib.licenses.mit;
-}
diff --git a/pkgs/servers/hasura/network-uri.nix b/pkgs/servers/hasura/network-uri.nix
deleted file mode 100644
index 45016d470a8d1..0000000000000
--- a/pkgs/servers/hasura/network-uri.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ mkDerivation, base, deepseq, HUnit, parsec, stdenv
-, test-framework, test-framework-hunit, test-framework-quickcheck2
-}:
-mkDerivation {
-  pname = "network-uri";
-  version = "2.6.1.0";
-  sha256 = "423e0a2351236f3fcfd24e39cdbc38050ec2910f82245e69ca72a661f7fc47f0";
-  revision = "1";
-  editedCabalFile = "141nj7q0p9wkn5gr41ayc63cgaanr9m59yym47wpxqr3c334bk32";
-  libraryHaskellDepends = [ base deepseq parsec ];
-  testHaskellDepends = [
-    base HUnit test-framework test-framework-hunit
-    test-framework-quickcheck2
-  ];
-  homepage = "https://github.com/haskell/network-uri";
-  description = "URI manipulation";
-  license = stdenv.lib.licenses.bsd3;
-}
diff --git a/pkgs/servers/hasura/these.nix b/pkgs/servers/hasura/these.nix
deleted file mode 100644
index 396f9e2a28248..0000000000000
--- a/pkgs/servers/hasura/these.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ mkDerivation, aeson, base, base-compat, bifunctors, binary
-, containers, data-default-class, deepseq, hashable, keys, lens
-, mtl, QuickCheck, quickcheck-instances, semigroupoids, stdenv
-, tasty, tasty-quickcheck, transformers, transformers-compat
-, unordered-containers, vector, vector-instances
-}:
-mkDerivation {
-  pname = "these";
-  version = "0.7.6";
-  sha256 = "9464b83d98e626360a8ad9836ba77e5201cd1e9c89b95b1b11a28ef3c23ac746";
-  libraryHaskellDepends = [
-    aeson base base-compat bifunctors binary containers
-    data-default-class deepseq hashable keys lens mtl QuickCheck
-    semigroupoids transformers transformers-compat unordered-containers
-    vector vector-instances
-  ];
-  testHaskellDepends = [
-    aeson base base-compat bifunctors binary containers hashable lens
-    QuickCheck quickcheck-instances tasty tasty-quickcheck transformers
-    unordered-containers vector
-  ];
-  homepage = "https://github.com/isomorphism/these";
-  description = "An either-or-both data type & a generalized 'zip with padding' typeclass";
-  license = stdenv.lib.licenses.bsd3;
-}
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index 4a6989989aeb6..3342c488c9359 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -755,7 +755,7 @@
     "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
+    "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
@@ -931,7 +931,7 @@
     "yamaha_musiccast" = ps: with ps; [ ]; # missing inputs: pymusiccast
     "yandex_transport" = ps: with ps; [ ]; # missing inputs: aioymaps
     "yandextts" = ps: with ps; [ ];
-    "yeelight" = ps: with ps; [ aiohttp-cors netdisco zeroconf ]; # missing inputs: yeelight
+    "yeelight" = ps: with ps; [ aiohttp-cors netdisco yeelight zeroconf ];
     "yeelightsunflower" = ps: with ps; [ ]; # missing inputs: yeelightsunflower
     "yessssms" = ps: with ps; [ ]; # missing inputs: YesssSMS
     "yi" = ps: with ps; [ aioftp ha-ffmpeg ];
diff --git a/pkgs/servers/irc/robustirc-bridge/default.nix b/pkgs/servers/irc/robustirc-bridge/default.nix
new file mode 100644
index 0000000000000..84b80203f57cc
--- /dev/null
+++ b/pkgs/servers/irc/robustirc-bridge/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, buildGoModule, fetchFromGitHub, nixosTests }:
+
+buildGoModule rec {
+  pname = "robustirc-bridge";
+  version = "1.8";
+
+  src = fetchFromGitHub {
+    owner = "robustirc";
+    repo = "bridge";
+    rev = "v${version}";
+    sha256 = "12jzil97147f978shdgm6whz7699db0shh0c1fzgrjh512dw502c";
+  };
+
+  vendorSha256 = "0lm8j2iz0yysgi0bbh78ca629kb6sxvyy9al3aj2587hpvy79q85";
+
+  postInstall = ''
+    install -D robustirc-bridge.1 $out/share/man/man1/robustirc-bridge.1
+  '';
+
+  passthru.tests.robustirc-bridge = nixosTests.robustirc-bridge;
+
+  meta = with stdenv.lib; {
+    description = "Bridge to robustirc.net-IRC-Network";
+    homepage = "https://robustirc.net/";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.hax404 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/servers/jackett/default.nix b/pkgs/servers/jackett/default.nix
index 0306fb4dfab24..e76fd0eae91cb 100644
--- a/pkgs/servers/jackett/default.nix
+++ b/pkgs/servers/jackett/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "jackett";
-  version = "0.16.998";
+  version = "0.16.1057";
 
   src = fetchurl {
     url = "https://github.com/Jackett/Jackett/releases/download/v${version}/Jackett.Binaries.Mono.tar.gz";
-    sha256 = "16f8ipw4sbdxwv79zjhr5ihd3m6biyhj1gj7cqpjr34ad7zqna3c";
+    sha256 = "0scc7xjyr7igbnmkg67lmzijvkgv3si1r502npnxamiflic59rnx";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/jellyfin/default.nix b/pkgs/servers/jellyfin/default.nix
index 3e0533fc9bd29..afa5375c9fdcc 100644
--- a/pkgs/servers/jellyfin/default.nix
+++ b/pkgs/servers/jellyfin/default.nix
@@ -18,12 +18,12 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "jellyfin";
-  version = "10.6.3";
+  version = "10.6.4";
 
   # Impossible to build anything offline with dotnet
   src = fetchurl {
-    url = "https://repo.jellyfin.org/releases/server/portable/stable/combined/jellyfin_${version}.tar.gz";
-    sha256 = "bqGIXS+T82jGMObMPMyYSjzQ+qZnACW4Q7WpV948crc=";
+    url = "https://repo.jellyfin.org/releases/server/portable/versions/stable/combined/${version}/jellyfin_${version}.tar.gz";
+    sha256 = "OqN070aUKPk0dXAy8R/lKUnSWen+si/AJ6tkYh5ibqo=";
   };
 
   buildInputs = [
diff --git a/pkgs/servers/limesurvey/default.nix b/pkgs/servers/limesurvey/default.nix
index 2186301808766..5f5db310bf3fe 100644
--- a/pkgs/servers/limesurvey/default.nix
+++ b/pkgs/servers/limesurvey/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchFromGitHub, writeText }:
+{ stdenv, fetchFromGitHub, writeText, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "limesurvey";
-  version = "3.17.12+190823";
+  version = "3.23.0+200813";
 
   src = fetchFromGitHub {
     owner = "LimeSurvey";
     repo = "LimeSurvey";
     rev = version;
-    sha256 = "1i7jpxndrbya5ggl4babscwzmxx4c0jwri5kpl7h2ihqrn90m4b5";
+    sha256 = "0r260z40g6b2bsfzxgfwdffbs17bl784xsc67n7q8222rs601hxf";
   };
 
   phpConfig = writeText "config.php" ''
@@ -27,6 +27,10 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
+  passthru.tests = {
+    smoke-test = nixosTests.limesurvey;
+  };
+
   meta = with stdenv.lib; {
     description = "Open source survey application";
     license = licenses.gpl2;
diff --git a/pkgs/servers/mautrix-whatsapp/default.nix b/pkgs/servers/mautrix-whatsapp/default.nix
index 813d1f18e8b70..a63d75552cc08 100644
--- a/pkgs/servers/mautrix-whatsapp/default.nix
+++ b/pkgs/servers/mautrix-whatsapp/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "mautrix-whatsapp";
-  version = "0.1.3";
+  version = "0.1.4";
 
   src = fetchFromGitHub {
     owner = "tulir";
     repo = "mautrix-whatsapp";
     rev = "v${version}";
-    sha256 = "1qagp6jnc4n368pg4h3jr9bzpwpbnva1xyl1b1k2a7q4b5fm5yww";
+    sha256 = "1c77f3ffm6m9j8q9p1hb9i8zrqqpvfkr9ffamly44gs7xddmv9sv";
   };
 
   buildInputs = [ olm ];
 
-  vendorSha256 = "1dmlqhhwmc0k9nbab5j8sl20b8d6b5yrmcdf7ibaiqh7i16zrp3s";
+  vendorSha256 = "01yr5321paqifmgzz235lknsa0w4hbs3182y6pxw8hqsvh18c48b";
 
   doCheck = false;
 
diff --git a/pkgs/servers/metabase/default.nix b/pkgs/servers/metabase/default.nix
index 6b3bcdf72d18a..2298ecc84ce06 100644
--- a/pkgs/servers/metabase/default.nix
+++ b/pkgs/servers/metabase/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "metabase";
-  version = "0.36.2";
+  version = "0.36.4";
 
   src = fetchurl {
     url = "http://downloads.metabase.com/v${version}/metabase.jar";
-    sha256 = "1m3wafv6fh3ivxi474bf0in3wryyimv27pqv3920ryvwkawz7gyi";
+    sha256 = "1k6f22ii9vga8j9jxipl1r55msxgag0lbkjxw7vf285z1hdhwylq";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/monitoring/loki/default.nix b/pkgs/servers/monitoring/loki/default.nix
index 4e5c74c2a606b..ec9d56f2cbb7f 100644
--- a/pkgs/servers/monitoring/loki/default.nix
+++ b/pkgs/servers/monitoring/loki/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, buildGoPackage, fetchFromGitHub, makeWrapper, systemd }:
 
 buildGoPackage rec {
-  version = "1.6.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 = "0i1m9aaqbq5p99fysrnhl1vxj97cq59gbdkcwkq4hkylqxlaxkyk";
+    sha256 = "0bakskzizazc5cd6km3n6facc5val5567zinnxg3yjy29xdi64ww";
   };
 
   postPatch = ''
diff --git a/pkgs/servers/monitoring/sensu-go/default.nix b/pkgs/servers/monitoring/sensu-go/default.nix
index 6d04d8609b8e1..7af9970b507da 100644
--- a/pkgs/servers/monitoring/sensu-go/default.nix
+++ b/pkgs/servers/monitoring/sensu-go/default.nix
@@ -4,14 +4,14 @@ let
   generic = { subPackages, pname, postInstall ? "" }:
     buildGoModule rec {
       inherit pname;
-      version = "5.21.1";
+      version = "5.21.2";
       shortRev = "3a1ac58"; # for internal version info
 
       src = fetchFromGitHub {
         owner = "sensu";
         repo = "sensu-go";
         rev = "v${version}";
-        sha256 = "1vgb25d546dh5sassclym077vmvvl1wj4ndd2084ngvify7dp1a9";
+        sha256 = "1hsvdqz0ckk8d1yxinqwylw97jd3gnf7c63zkjly87vasg98qk9x";
       };
 
       inherit subPackages postInstall;
diff --git a/pkgs/servers/monitoring/zabbix/versions.nix b/pkgs/servers/monitoring/zabbix/versions.nix
index f867c819d07f0..2552964fe8804 100644
--- a/pkgs/servers/monitoring/zabbix/versions.nix
+++ b/pkgs/servers/monitoring/zabbix/versions.nix
@@ -1,12 +1,12 @@
 generic: {
   v50 = generic {
-    version = "5.0.2";
-    sha256 = "1cnns7ixqi7ank3cbvcs7d8rb5zh9qiqbmgivazr83jnz81qg46w";
+    version = "5.0.3";
+    sha256 = "1dc3fb9pa2cr6mfwgfyy1hpx26pbrws7989wj2kiiilmvimvrz1l";
   };
 
   v40 = generic {
-    version = "4.0.20";
-    sha256 = "0h6qx4imrf5inmmczxir81a9xhra8a1dxxv538mqhxhbpqn1yh3w";
+    version = "4.0.24";
+    sha256 = "01nm0pqsb168qawm1j7b3lixbwkz6hi8hd2052q6dlzqm7s2mi2s";
   };
 
   v30 = generic {
diff --git a/pkgs/servers/nosql/arangodb/default.nix b/pkgs/servers/nosql/arangodb/default.nix
index 54d5e8484bcb9..4d5c24c730465 100644
--- a/pkgs/servers/nosql/arangodb/default.nix
+++ b/pkgs/servers/nosql/arangodb/default.nix
@@ -32,15 +32,9 @@ let
       # do not set GCC's -march=xxx based on builder's /proc/cpuinfo
       "-DUSE_OPTIMIZE_FOR_ARCHITECTURE=OFF"
       # also avoid using builder's /proc/cpuinfo
-    ] ++
-    { westmere       = [ "-DHAVE_SSE42=ON" "-DASM_OPTIMIZATIONS=ON" ];
-      sandybridge    = [ "-DHAVE_SSE42=ON" "-DASM_OPTIMIZATIONS=ON" ];
-      ivybridge      = [ "-DHAVE_SSE42=ON" "-DASM_OPTIMIZATIONS=ON" ];
-      haswell        = [ "-DHAVE_SSE42=ON" "-DASM_OPTIMIZATIONS=ON" ];
-      broadwell      = [ "-DHAVE_SSE42=ON" "-DASM_OPTIMIZATIONS=ON" ];
-      skylake        = [ "-DHAVE_SSE42=ON" "-DASM_OPTIMIZATIONS=ON" ];
-      skylake-avx512 = [ "-DHAVE_SSE42=ON" "-DASM_OPTIMIZATIONS=ON" ];
-    }.${stdenv.hostPlatform.platform.gcc.arch or ""} or [ "-DHAVE_SSE42=OFF" "-DASM_OPTIMIZATIONS=OFF" ];
+      "-DHAVE_SSE42=${if stdenv.hostPlatform.sse4_2Support then "ON" else "OFF"}"
+      "-DASM_OPTIMIZATIONS=${if stdenv.hostPlatform.sse4_2Support then "ON" else "OFF"}"
+    ];
 
     enableParallelBuilding = true;
 
diff --git a/pkgs/servers/nosql/influxdb/default.nix b/pkgs/servers/nosql/influxdb/default.nix
index 8d4cd5b3b2c7d..db07bdc96a4b7 100644
--- a/pkgs/servers/nosql/influxdb/default.nix
+++ b/pkgs/servers/nosql/influxdb/default.nix
@@ -2,13 +2,13 @@
 
 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";
diff --git a/pkgs/servers/nosql/victoriametrics/default.nix b/pkgs/servers/nosql/victoriametrics/default.nix
index c470dcf1fd09d..b41861768d867 100644
--- a/pkgs/servers/nosql/victoriametrics/default.nix
+++ b/pkgs/servers/nosql/victoriametrics/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "VictoriaMetrics";
-  version = "1.37.4";
+  version = "1.40.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "02jr0qz130jz7ncfch1jry0prd00669j53mlmpb6ky0xiz5y2zq1";
+    sha256 = "0dnzc7yrd91g67wkx0g1b0gi7918pi1hqv4mjlxi2ccs8phxkk7l";
   };
 
   goPackagePath = "github.com/VictoriaMetrics/VictoriaMetrics";
diff --git a/pkgs/servers/pinnwand/default.nix b/pkgs/servers/pinnwand/default.nix
index 360e39ab685d2..a2f417d88fae7 100644
--- a/pkgs/servers/pinnwand/default.nix
+++ b/pkgs/servers/pinnwand/default.nix
@@ -14,14 +14,14 @@ let
   };
 in with python.pkgs; buildPythonApplication rec {
   pname = "pinnwand";
-  version = "1.2.1";
+  version = "1.2.2";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "supakeen";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1rk7rpyb4vmqxqqv8k9jpjmgakr3mn1iaqxyj34r74p1n5vfzimq";
+    sha256 = "0cxdpc3lxgzakzgvdyyrn234380dm05svnwr8av5nrjp4nm9s8z4";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/servers/plex/raw.nix b/pkgs/servers/plex/raw.nix
index bc429e3950164..48f786c137299 100644
--- a/pkgs/servers/plex/raw.nix
+++ b/pkgs/servers/plex/raw.nix
@@ -8,13 +8,13 @@
 # server, and the FHS userenv and corresponding NixOS module should
 # automatically pick up the changes.
 stdenv.mkDerivation rec {
-  version = "1.19.5.3112-b23ab3896";
+  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 = "0lh0yqpp1xyhb3bkc8wqg1afdyvaqhv3bmbyjqalpj2ikkk5lxwk";
+    sha256 = "0z50c6kgsxz1pj8d65ibliqd4xbkwjlmim76j8rjid3amhj50jmx";
   };
 
   outputs = [ "out" "basedb" ];
diff --git a/pkgs/servers/pounce/default.nix b/pkgs/servers/pounce/default.nix
index 4ab3a4ee16771..a418417ce2fe3 100644
--- a/pkgs/servers/pounce/default.nix
+++ b/pkgs/servers/pounce/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pounce";
-  version = "1.3p1";
+  version = "1.4p2";
 
   src = fetchzip {
     url = "https://git.causal.agency/pounce/snapshot/pounce-${version}.tar.gz";
-    sha256 = "1ab4pz7gyvlms00hcarcmsljkn0whwqxfck8b343l4riai2rj9xv";
+    sha256 = "0fpnj9yvmj4gbbfpya4i0lyin56r782pz19z3pgd8xgs22gd48cc";
   };
 
   buildInputs = [ libressl ];
diff --git a/pkgs/servers/radicale/3.x.nix b/pkgs/servers/radicale/3.x.nix
index 7b42bd3be34fb..4b49b1e40c822 100644
--- a/pkgs/servers/radicale/3.x.nix
+++ b/pkgs/servers/radicale/3.x.nix
@@ -2,14 +2,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "radicale";
-  version = "3.0.3";
+  version = "3.0.5";
 
   # No tests in PyPI tarball
   src = fetchFromGitHub {
     owner = "Kozea";
     repo = "Radicale";
     rev = version;
-    sha256 = "170mqxlnfzx15img4wb71axq9cnxwllk5cabsv8i008q7wyjqp0n";
+    sha256 = "0w8qkjm7b62cr49dbis41kvv3179sfmvvzlhlc0rbqss6vmwbq4p";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/servers/search/solr/default.nix b/pkgs/servers/search/solr/default.nix
index 88a84dd619122..b5390d1537d27 100644
--- a/pkgs/servers/search/solr/default.nix
+++ b/pkgs/servers/search/solr/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "solr";
-  version = "8.5.2";
+  version = "8.6.1";
 
   src = fetchurl {
     url = "mirror://apache/lucene/${pname}/${version}/${pname}-${version}.tgz";
-    sha256 = "1kvd0vfic9h3glhz8dz5c1n8mmb9yv339pz1878wlh9j4k3xcmy4";
+    sha256 = "0ds6zjsnwgpcmivzi7d6yqdmyn2mhf3k8g7xp26yfpm7f12gpq4g";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/ser2net/default.nix b/pkgs/servers/ser2net/default.nix
index 9f82a76c323eb..ef592420b1180 100644
--- a/pkgs/servers/ser2net/default.nix
+++ b/pkgs/servers/ser2net/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ser2net";
-  version = "4.2.0";
+  version = "4.2.1";
 
   src = fetchFromGitHub {
     owner = "cminyard";
     repo = "${pname}";
     rev = "v${version}";
-    sha256 = "154sc7aa74c2vwfwan41qwqxckp36lw9wf3qydamsyvd9ampjf5x";
+    sha256 = "01w82nrgffsfz2c80p4cyppg3bz56d90jm6i6356j0nva3784haw";
   };
 
   buildInputs = [ pkgconfig autoreconfHook gensio libyaml ];
diff --git a/pkgs/servers/sickbeard/sickgear.nix b/pkgs/servers/sickbeard/sickgear.nix
index b04675d64f47a..a382c969da86e 100644
--- a/pkgs/servers/sickbeard/sickgear.nix
+++ b/pkgs/servers/sickbeard/sickgear.nix
@@ -4,13 +4,13 @@ let
   pythonEnv = python2.withPackages(ps: with ps; [ cheetah ]);
 in stdenv.mkDerivation rec {
   pname = "sickgear";
-  version = "0.21.36";
+  version = "0.21.42";
 
   src = fetchFromGitHub {
     owner = "SickGear";
     repo = "SickGear";
     rev = "release_${version}";
-    sha256 = "0kssz44agvb5zxjq2i566f4xk9924372hjpj0czjckrrjvzjqvci";
+    sha256 = "0a18vn1vy4zdp40iizgg3yji6k74r54rb7d7gn5byz1zj28g5c5c";
   };
 
   dontBuild = true;
diff --git a/pkgs/servers/sql/cockroachdb/default.nix b/pkgs/servers/sql/cockroachdb/default.nix
index 852f1ea61ddcc..a5071efb486f3 100644
--- a/pkgs/servers/sql/cockroachdb/default.nix
+++ b/pkgs/servers/sql/cockroachdb/default.nix
@@ -14,13 +14,13 @@ let
 in
 buildGoPackage rec {
   pname = "cockroach";
-  version = "20.1.3";
+  version = "20.1.4";
 
   goPackagePath = "github.com/cockroachdb/cockroach";
 
   src = fetchurl {
     url = "https://binaries.cockroachdb.com/cockroach-v${version}.src.tgz";
-    sha256 = "0bg60rcfn2d4awg5al8d5xvk8h7bab986qlbpl9bkv6zpw9wipfb";
+    sha256 = "1m82m776axyf7b5f1lzlv5y7zslyhikfxjgagqy7ci5zwn8j4i0n";
   };
 
   NIX_CFLAGS_COMPILE = stdenv.lib.optionals stdenv.cc.isGNU [ "-Wno-error=deprecated-copy" "-Wno-error=redundant-move" "-Wno-error=pessimizing-move" ];
diff --git a/pkgs/servers/sql/postgresql/ext/age.nix b/pkgs/servers/sql/postgresql/ext/age.nix
new file mode 100644
index 0000000000000..09021317cd13b
--- /dev/null
+++ b/pkgs/servers/sql/postgresql/ext/age.nix
@@ -0,0 +1,65 @@
+{ stdenv, fetchFromGitHub, bison, flex, postgresql }:
+
+stdenv.mkDerivation rec {
+  pname = "age";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "bitnine-oss";
+    repo = "AgensGraph-Extension";
+    rev = "v${version}";
+    sha256 = "0way59lj30727jlz2qz6rnw4fsxcd5028xcwgrwk7jxcaqi5fa17";
+  };
+
+  buildInputs = [ postgresql ];
+
+  makeFlags = [
+    "BISON=${bison}/bin/bison"
+    "FLEX=${flex}/bin/flex"
+  ];
+
+  installPhase = ''
+    install -D -t $out/lib *.so
+    install -D -t $out/share/postgresql/extension *.sql
+    install -D -t $out/share/postgresql/extension *.control
+  '';
+
+  passthru.tests = stdenv.mkDerivation {
+    inherit version src;
+
+    pname = "age-regression";
+
+    dontConfigure = true;
+
+    buildPhase = let
+      postgresqlAge = postgresql.withPackages (ps: [ ps.age ]);
+    in ''
+      # The regression tests need to be run in the order specified in the Makefile.
+      echo -e "include Makefile\nfiles:\n\t@echo \$(REGRESS)" > Makefile.regress
+      REGRESS_TESTS=$(make -f Makefile.regress files)
+
+      ${postgresql}/lib/pgxs/src/test/regress/pg_regress \
+        --inputdir=./ \
+        --bindir='${postgresqlAge}/bin' \
+        --encoding=UTF-8 \
+        --load-extension=age \
+        --inputdir=./regress --outputdir=./regress --temp-instance=./regress/instance \
+        --port=61958 --dbname=contrib_regression \
+        $REGRESS_TESTS
+    '';
+
+    installPhase = ''
+      touch $out
+    '';
+  };
+
+  meta = with stdenv.lib; {
+    description = "A graph database extension for PostgreSQL";
+    homepage = "https://github.com/bitnine-oss/AgensGraph-Extension";
+    changelog = "https://github.com/bitnine-oss/AgensGraph-Extension/releases/tag/v${version}";
+    maintainers = with maintainers; [ danieldk ];
+    platforms = postgresql.meta.platforms;
+    license = licenses.asl20;
+    broken = versionOlder postgresql.version "11.0";
+  };
+}
diff --git a/pkgs/servers/sql/postgresql/packages.nix b/pkgs/servers/sql/postgresql/packages.nix
index 44e560a5f8375..6dbb7a8ed11ab 100644
--- a/pkgs/servers/sql/postgresql/packages.nix
+++ b/pkgs/servers/sql/postgresql/packages.nix
@@ -1,5 +1,7 @@
 self: super: {
 
+    age = super.callPackage ./ext/age.nix { };
+
     periods = super.callPackage ./ext/periods.nix { };
 
     postgis = super.callPackage ./ext/postgis.nix {
diff --git a/pkgs/servers/squid/default.nix b/pkgs/servers/squid/default.nix
index d14252da999fe..ad7d534103cfd 100644
--- a/pkgs/servers/squid/default.nix
+++ b/pkgs/servers/squid/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "squid";
-  version = "4.12";
+  version = "4.13";
 
   src = fetchurl {
     url = "http://www.squid-cache.org/Versions/v4/${pname}-${version}.tar.xz";
-    sha256 = "05z34ysy2zn7as11vd365xxhh36bm1ysiwcbr0i0f0nwng406apl";
+    sha256 = "1q1ywpic6s7dfjj3cwzcfgscc4zq0aih462gyas7j1z683ss14b8";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/servers/sslh/default.nix b/pkgs/servers/sslh/default.nix
index 5be4805909daa..578d280afd9a8 100644
--- a/pkgs/servers/sslh/default.nix
+++ b/pkgs/servers/sslh/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "sslh";
-  version = "1.21";
+  version = "1.21c";
 
   src = fetchurl {
     url = "https://www.rutschle.net/tech/sslh/sslh-v${version}.tar.gz";
-    sha256 = "1am63nslvv9xkbn9xavpf1zl6f7g1snz8cvnzlya7dq4la4y97d7";
+    sha256 = "01p7w74ppszxgz6n41lqd6xqvc7bjk2dsc769dd1yb7q4qvpiziv";
   };
 
   postPatch = "patchShebangs *.sh";
diff --git a/pkgs/servers/tailscale/default.nix b/pkgs/servers/tailscale/default.nix
index 863dc505032e8..32c0c84dd0872 100644
--- a/pkgs/servers/tailscale/default.nix
+++ b/pkgs/servers/tailscale/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "tailscale";
-  version = "1.0.3";
+  version = "1.0.5";
 
   src = fetchFromGitHub {
     owner = "tailscale";
     repo = "tailscale";
     rev = "v${version}";
-    sha256 = "1m3cfq4qyg2l0hpk8s7nr8cw2j7akiga7x8bwyhdjifnkwsyz6x7";
+    sha256 = "0ib2s694kf5iz5hvrlzfs80z0931dhva7yir80crq0pji9y4rp7b";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/xmpp/biboumi/default.nix b/pkgs/servers/xmpp/biboumi/default.nix
index e1cec51e4ab0a..257d94f4a733c 100644
--- a/pkgs/servers/xmpp/biboumi/default.nix
+++ b/pkgs/servers/xmpp/biboumi/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "biboumi";
-  version = "8.3";
+  version = "8.5";
 
   src = fetchurl {
     url = "https://git.louiz.org/biboumi/snapshot/biboumi-${version}.tar.xz";
-    sha256 = "0896f52nh8vd0idkdznv3gj6wqh1nqhjbwv0m560f0h62f01vm7k";
+    sha256 = "0rn9p99iqdyvxjzjq9w0ra7pkk0mngjy65nlg3hqfdw8kq9mv5qf";
   };
 
   louiz_catch = fetchgit {
@@ -24,10 +24,7 @@ stdenv.mkDerivation rec {
 
   preConfigure = ''
     substituteInPlace CMakeLists.txt --replace /etc/biboumi $out/etc/biboumi
-    substituteInPlace unit/biboumi.service.cmake --replace /bin/kill ${coreutils}/bin/kill
     cp $louiz_catch/single_include/catch.hpp tests/
-    # echo "policy_directory=$out/etc/biboumi" >> conf/biboumi.cfg
-    # TODO include conf/biboumi.cfg as example somewhere
   '';
 
   enableParallelBuilding = true;
diff --git a/pkgs/servers/zigbee2mqtt/default.nix b/pkgs/servers/zigbee2mqtt/default.nix
index ad351c89a668f..7680bfe2e4178 100644
--- a/pkgs/servers/zigbee2mqtt/default.nix
+++ b/pkgs/servers/zigbee2mqtt/default.nix
@@ -3,7 +3,7 @@ let
   package = (import ./node.nix { inherit pkgs system; }).package;
 in
 package.override rec {
-  version = "1.14.2";
+  version = "1.14.3";
   reconstructLock = true;
 
   postInstall = ''
@@ -20,7 +20,7 @@ package.override rec {
     owner = "Koenkk";
     repo = "zigbee2mqtt";
     rev = version;
-    sha256 = "0yv51rds28az5pqzgkprhrzwmky29l1mvqb73l7dbs8qlx8x1x52";
+    sha256 = "164ddb8i4r6rjahjic09sd24xbms4d6b6bnwx0d9fh8sn3ib4v06";
   };
 
   passthru.tests.zigbee2mqtt = nixosTests.zigbee2mqtt;
diff --git a/pkgs/servers/zigbee2mqtt/node-packages.nix b/pkgs/servers/zigbee2mqtt/node-packages.nix
index df818634036a3..62cc54c86364f 100644
--- a/pkgs/servers/zigbee2mqtt/node-packages.nix
+++ b/pkgs/servers/zigbee2mqtt/node-packages.nix
@@ -4,13 +4,13 @@
 
 let
   sources = {
-    "@babel/cli-7.10.4" = {
+    "@babel/cli-7.10.5" = {
       name = "_at_babel_slash_cli";
       packageName = "@babel/cli";
-      version = "7.10.4";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/cli/-/cli-7.10.4.tgz";
-        sha512 = "xX99K4V1BzGJdQANK5cwK+EpF1vP9gvqhn+iWvG+TubCjecplW7RSQimJ2jcCvu6fnK5pY6mZMdu6EWTj32QVA==";
+        url = "https://registry.npmjs.org/@babel/cli/-/cli-7.10.5.tgz";
+        sha512 = "j9H9qSf3kLdM0Ao3aGPbGZ73mEA9XazuupcS6cDGWuiyAcANoguhP0r2Lx32H5JGw4sSSoHG3x/mxVnHgvOoyA==";
       };
     };
     "@babel/code-frame-7.10.4" = {
@@ -22,49 +22,31 @@ let
         sha512 = "vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==";
       };
     };
-    "@babel/compat-data-7.10.4" = {
+    "@babel/compat-data-7.11.0" = {
       name = "_at_babel_slash_compat-data";
       packageName = "@babel/compat-data";
-      version = "7.10.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.4.tgz";
-        sha512 = "t+rjExOrSVvjQQXNp5zAIYDp00KjdvGl/TpDX5REPr0S9IAIPQMTilcfG6q8c0QFmj9lSTVySV2VTsyggvtNIw==";
-      };
-    };
-    "@babel/core-7.10.4" = {
-      name = "_at_babel_slash_core";
-      packageName = "@babel/core";
-      version = "7.10.4";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/core/-/core-7.10.4.tgz";
-        sha512 = "3A0tS0HWpy4XujGc7QtOIHTeNwUgWaZc/WuS5YQrfhU67jnVmsD6OGPc1AKHH0LJHQICGncy3+YUjIhVlfDdcA==";
+        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.11.0.tgz";
+        sha512 = "TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ==";
       };
     };
-    "@babel/core-7.10.5" = {
+    "@babel/core-7.11.1" = {
       name = "_at_babel_slash_core";
       packageName = "@babel/core";
-      version = "7.10.5";
+      version = "7.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/core/-/core-7.10.5.tgz";
-        sha512 = "O34LQooYVDXPl7QWCdW9p4NR+QlzOr7xShPPJz8GsuCU3/8ua/wqTr7gmnxXv+WBESiGU/G5s16i6tUvHkNb+w==";
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.11.1.tgz";
+        sha512 = "XqF7F6FWQdKGGWAzGELL+aCO1p+lRY5Tj5/tbT3St1G8NaH70jhhDIKknIZaDans0OQBG5wRAldROLHSt44BgQ==";
       };
     };
-    "@babel/generator-7.10.4" = {
+    "@babel/generator-7.11.0" = {
       name = "_at_babel_slash_generator";
       packageName = "@babel/generator";
-      version = "7.10.4";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.10.4.tgz";
-        sha512 = "toLIHUIAgcQygFZRAQcsLQV3CBuX6yOIru1kJk/qqqvcRmZrYe6WavZTSG+bB8MxhnL9YPf+pKQfuiP161q7ng==";
-      };
-    };
-    "@babel/generator-7.10.5" = {
-      name = "_at_babel_slash_generator";
-      packageName = "@babel/generator";
-      version = "7.10.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz";
-        sha512 = "3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==";
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.11.0.tgz";
+        sha512 = "fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ==";
       };
     };
     "@babel/helper-annotate-as-pure-7.10.4" = {
@@ -94,13 +76,13 @@ let
         sha512 = "a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==";
       };
     };
-    "@babel/helper-create-class-features-plugin-7.10.4" = {
+    "@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.4";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.4.tgz";
-        sha512 = "9raUiOsXPxzzLjCXeosApJItoMnX3uyT4QdM2UldffuGApNrF8e938MwNpDCK9CPoyxrEoCgT+hObJc3mZa6lQ==";
+        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" = {
@@ -112,13 +94,13 @@ let
         sha512 = "2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==";
       };
     };
-    "@babel/helper-define-map-7.10.4" = {
+    "@babel/helper-define-map-7.10.5" = {
       name = "_at_babel_slash_helper-define-map";
       packageName = "@babel/helper-define-map";
-      version = "7.10.4";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.4.tgz";
-        sha512 = "nIij0oKErfCnLUCWaCaHW0Bmtl2RO9cN7+u2QT8yqTywgALKlyUVOvHDElh+b5DwVC6YB1FOYFOTWcN/+41EDA==";
+        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.4" = {
@@ -157,22 +139,13 @@ let
         sha512 = "wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==";
       };
     };
-    "@babel/helper-member-expression-to-functions-7.10.4" = {
+    "@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.4";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.4.tgz";
-        sha512 = "m5j85pK/KZhuSdM/8cHUABQTAslV47OjfIB9Cc7P+PvlAoBzdb79BGNfw8RhT5Mq3p+xGd0ZfAKixbrUZx0C7A==";
-      };
-    };
-    "@babel/helper-member-expression-to-functions-7.10.5" = {
-      name = "_at_babel_slash_helper-member-expression-to-functions";
-      packageName = "@babel/helper-member-expression-to-functions";
-      version = "7.10.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.5.tgz";
-        sha512 = "HiqJpYD5+WopCXIAbQDG0zye5XYVvcO9w/DHp5GsaGkRUaamLj2bEtu6i8rnGGprAhHM3qidCMgp71HF4endhA==";
+        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" = {
@@ -184,22 +157,13 @@ let
         sha512 = "nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==";
       };
     };
-    "@babel/helper-module-transforms-7.10.4" = {
+    "@babel/helper-module-transforms-7.11.0" = {
       name = "_at_babel_slash_helper-module-transforms";
       packageName = "@babel/helper-module-transforms";
-      version = "7.10.4";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.4.tgz";
-        sha512 = "Er2FQX0oa3nV7eM1o0tNCTx7izmQtwAQsIiaLRWtavAAEcskb0XJ5OjJbVrYXWOTr8om921Scabn4/tzlx7j1Q==";
-      };
-    };
-    "@babel/helper-module-transforms-7.10.5" = {
-      name = "_at_babel_slash_helper-module-transforms";
-      packageName = "@babel/helper-module-transforms";
-      version = "7.10.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.5.tgz";
-        sha512 = "4P+CWMJ6/j1W915ITJaUkadLObmCRRSC234uctJfn/vHrsLNxsR8dwlcXv9ZhJWzl77awf+mWXSZEKt5t0OnlA==";
+        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" = {
@@ -220,13 +184,13 @@ let
         sha512 = "O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==";
       };
     };
-    "@babel/helper-regex-7.10.4" = {
+    "@babel/helper-regex-7.10.5" = {
       name = "_at_babel_slash_helper-regex";
       packageName = "@babel/helper-regex";
-      version = "7.10.4";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.4.tgz";
-        sha512 = "inWpnHGgtg5NOF0eyHlC0/74/VkdRITY9dtTpB2PrxKKn+AkVMRiZz/Adrx+Ssg+MLDesi2zohBW6MVq6b4pOQ==";
+        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.4" = {
@@ -256,13 +220,22 @@ let
         sha512 = "0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==";
       };
     };
-    "@babel/helper-split-export-declaration-7.10.4" = {
+    "@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.4";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz";
-        sha512 = "pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==";
+        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" = {
@@ -301,31 +274,22 @@ let
         sha512 = "i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==";
       };
     };
-    "@babel/parser-7.10.4" = {
+    "@babel/parser-7.11.3" = {
       name = "_at_babel_slash_parser";
       packageName = "@babel/parser";
-      version = "7.10.4";
+      version = "7.11.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.10.4.tgz";
-        sha512 = "8jHII4hf+YVDsskTF6WuMB3X4Eh+PsUkC2ljq22so5rHvH+T8BzyL94VOdyFLNR8tBSVXOTbNHOKpR4TfRxVtA==";
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.11.3.tgz";
+        sha512 = "REo8xv7+sDxkKvoxEywIdsNFiZLybwdI7hcT5uEPyQrSMB4YQ973BfC9OOrD/81MaIjh6UxdulIQXkjmiH3PcA==";
       };
     };
-    "@babel/parser-7.10.5" = {
-      name = "_at_babel_slash_parser";
-      packageName = "@babel/parser";
-      version = "7.10.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz";
-        sha512 = "wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==";
-      };
-    };
-    "@babel/plugin-proposal-async-generator-functions-7.10.4" = {
+    "@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.4";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.4.tgz";
-        sha512 = "MJbxGSmejEFVOANAezdO39SObkURO5o/8b6fSH6D1pi9RZQt+ldppKPXfqgUWpSQ9asM6xaSaSJIaeWMDRP0Zg==";
+        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" = {
@@ -346,6 +310,15 @@ let
         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";
@@ -355,6 +328,15 @@ let
         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";
@@ -373,13 +355,13 @@ let
         sha512 = "73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==";
       };
     };
-    "@babel/plugin-proposal-object-rest-spread-7.10.4" = {
+    "@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.4";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.4.tgz";
-        sha512 = "6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA==";
+        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" = {
@@ -391,13 +373,13 @@ let
         sha512 = "LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==";
       };
     };
-    "@babel/plugin-proposal-optional-chaining-7.10.4" = {
+    "@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.4";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.4.tgz";
-        sha512 = "ZIhQIEeavTgouyMSdZRap4VPPHqJJ3NEs2cuHs5p0erH+iz6khB0qfgU8g7UuJkG88+fBMy23ZiU+nuHvekJeQ==";
+        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" = {
@@ -454,6 +436,15 @@ let
         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";
@@ -571,13 +562,13 @@ let
         sha512 = "WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==";
       };
     };
-    "@babel/plugin-transform-block-scoping-7.10.4" = {
+    "@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.4";
+      version = "7.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.4.tgz";
-        sha512 = "J3b5CluMg3hPUii2onJDRiaVbPtKFPLEaV5dOPY5OeAbDi1iU/UbbFFTgwb7WnanaDy7bjU35kc26W3eM5Qa0A==";
+        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" = {
@@ -670,13 +661,13 @@ let
         sha512 = "0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==";
       };
     };
-    "@babel/plugin-transform-modules-amd-7.10.4" = {
+    "@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.4";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.4.tgz";
-        sha512 = "3Fw+H3WLUrTlzi3zMiZWp3AR4xadAEMv6XRCYnd5jAlLM61Rn+CRJaZMaNvIpcJpQ3vs1kyifYvEVPFfoSkKOA==";
+        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" = {
@@ -688,13 +679,13 @@ let
         sha512 = "Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==";
       };
     };
-    "@babel/plugin-transform-modules-systemjs-7.10.4" = {
+    "@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.4";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.4.tgz";
-        sha512 = "Tb28LlfxrTiOTGtZFsvkjpyjCl9IoaRI52AEU/VIwOwvDQWtbNJsAqTXzh+5R7i74e/OZHH2c2w2fsOqAfnQYQ==";
+        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" = {
@@ -733,13 +724,13 @@ let
         sha512 = "5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==";
       };
     };
-    "@babel/plugin-transform-parameters-7.10.4" = {
+    "@babel/plugin-transform-parameters-7.10.5" = {
       name = "_at_babel_slash_plugin-transform-parameters";
       packageName = "@babel/plugin-transform-parameters";
-      version = "7.10.4";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.4.tgz";
-        sha512 = "RurVtZ/D5nYfEg0iVERXYKEgDFeesHrHfx8RT05Sq57ucj2eOYAP6eu5fynL4Adju4I/mP/I6SO0DqNWAXjfLQ==";
+        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" = {
@@ -778,13 +769,13 @@ let
         sha512 = "AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==";
       };
     };
-    "@babel/plugin-transform-spread-7.10.4" = {
+    "@babel/plugin-transform-spread-7.11.0" = {
       name = "_at_babel_slash_plugin-transform-spread";
       packageName = "@babel/plugin-transform-spread";
-      version = "7.10.4";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.4.tgz";
-        sha512 = "1e/51G/Ni+7uH5gktbWv+eCED9pP8ZpRhZB3jOaI3mmzfvJTWHkuyYTv0Z5PYtyM+Tr2Ccr9kUdQxn60fI5WuQ==";
+        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" = {
@@ -796,13 +787,13 @@ let
         sha512 = "Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==";
       };
     };
-    "@babel/plugin-transform-template-literals-7.10.4" = {
+    "@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.4";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.4.tgz";
-        sha512 = "4NErciJkAYe+xI5cqfS8pV/0ntlY5N5Ske/4ImxAVX7mk9Rxt2bwDTGv1Msc2BRJvWQcmYEC+yoMLdX22aE4VQ==";
+        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" = {
@@ -814,13 +805,13 @@ let
         sha512 = "QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==";
       };
     };
-    "@babel/plugin-transform-typescript-7.10.4" = {
+    "@babel/plugin-transform-typescript-7.11.0" = {
       name = "_at_babel_slash_plugin-transform-typescript";
       packageName = "@babel/plugin-transform-typescript";
-      version = "7.10.4";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.10.4.tgz";
-        sha512 = "3WpXIKDJl/MHoAN0fNkSr7iHdUMHZoppXjf2HJ9/ed5Xht5wNIsXllJXdityKOxeA3Z8heYRb1D3p2H5rfCdPw==";
+        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" = {
@@ -841,13 +832,13 @@ let
         sha512 = "wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==";
       };
     };
-    "@babel/preset-env-7.10.4" = {
+    "@babel/preset-env-7.11.0" = {
       name = "_at_babel_slash_preset-env";
       packageName = "@babel/preset-env";
-      version = "7.10.4";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.4.tgz";
-        sha512 = "tcmuQ6vupfMZPrLrc38d0sF2OjLT3/bZ0dry5HchNCQbrokoQi4reXqclvkkAT5b+gWc23meVWpve5P/7+w/zw==";
+        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.3" = {
@@ -868,13 +859,13 @@ let
         sha512 = "SdYnvGPv+bLlwkF2VkJnaX/ni1sMNetcGI1+nThF1gyv6Ph8Qucc4ZZAjM5yZcE/AKRXIOTZz7eSRDWOEjPyRQ==";
       };
     };
-    "@babel/runtime-7.10.4" = {
+    "@babel/runtime-7.11.2" = {
       name = "_at_babel_slash_runtime";
       packageName = "@babel/runtime";
-      version = "7.10.4";
+      version = "7.11.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.4.tgz";
-        sha512 = "UpTN5yUJr9b4EX2CnGNWIvER7Ab83ibv0pcvvHc4UOdrBI5jb8bj+32cCwPX6xu0mt2daFNjYhoi+X7beH0RSw==";
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz";
+        sha512 = "TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==";
       };
     };
     "@babel/template-7.10.4" = {
@@ -886,40 +877,22 @@ let
         sha512 = "ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==";
       };
     };
-    "@babel/traverse-7.10.4" = {
-      name = "_at_babel_slash_traverse";
-      packageName = "@babel/traverse";
-      version = "7.10.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.4.tgz";
-        sha512 = "aSy7p5THgSYm4YyxNGz6jZpXf+Ok40QF3aA2LyIONkDHpAcJzDUqlCKXv6peqYUs2gmic849C/t2HKw2a2K20Q==";
-      };
-    };
-    "@babel/traverse-7.10.5" = {
+    "@babel/traverse-7.11.0" = {
       name = "_at_babel_slash_traverse";
       packageName = "@babel/traverse";
-      version = "7.10.5";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz";
-        sha512 = "yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==";
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz";
+        sha512 = "ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==";
       };
     };
-    "@babel/types-7.10.4" = {
+    "@babel/types-7.11.0" = {
       name = "_at_babel_slash_types";
       packageName = "@babel/types";
-      version = "7.10.4";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz";
-        sha512 = "UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==";
-      };
-    };
-    "@babel/types-7.10.5" = {
-      name = "_at_babel_slash_types";
-      packageName = "@babel/types";
-      version = "7.10.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz";
-        sha512 = "ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==";
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz";
+        sha512 = "O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==";
       };
     };
     "@bcoe/v8-coverage-0.2.3" = {
@@ -967,58 +940,58 @@ let
         sha512 = "tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==";
       };
     };
-    "@jest/console-26.1.0" = {
+    "@jest/console-26.2.0" = {
       name = "_at_jest_slash_console";
       packageName = "@jest/console";
-      version = "26.1.0";
+      version = "26.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jest/console/-/console-26.1.0.tgz";
-        sha512 = "+0lpTHMd/8pJp+Nd4lyip+/Iyf2dZJvcCqrlkeZQoQid+JlThA4M9vxHtheyrQ99jJTMQam+es4BcvZ5W5cC3A==";
+        url = "https://registry.npmjs.org/@jest/console/-/console-26.2.0.tgz";
+        sha512 = "mXQfx3nSLwiHm1i7jbu+uvi+vvpVjNGzIQYLCfsat9rapC+MJkS4zBseNrgJE0vU921b3P67bQzhduphjY3Tig==";
       };
     };
-    "@jest/core-26.1.0" = {
+    "@jest/core-26.2.2" = {
       name = "_at_jest_slash_core";
       packageName = "@jest/core";
-      version = "26.1.0";
+      version = "26.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jest/core/-/core-26.1.0.tgz";
-        sha512 = "zyizYmDJOOVke4OO/De//aiv8b07OwZzL2cfsvWF3q9YssfpcKfcnZAwDY8f+A76xXSMMYe8i/f/LPocLlByfw==";
+        url = "https://registry.npmjs.org/@jest/core/-/core-26.2.2.tgz";
+        sha512 = "UwA8gNI8aeV4FHGfGAUfO/DHjrFVvlBravF1Tm9Kt6qFE+6YHR47kFhgdepOFpADEKstyO+MVdPvkV6/dyt9sA==";
       };
     };
-    "@jest/environment-26.1.0" = {
+    "@jest/environment-26.2.0" = {
       name = "_at_jest_slash_environment";
       packageName = "@jest/environment";
-      version = "26.1.0";
+      version = "26.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jest/environment/-/environment-26.1.0.tgz";
-        sha512 = "86+DNcGongbX7ai/KE/S3/NcUVZfrwvFzOOWX/W+OOTvTds7j07LtC+MgGydH5c8Ri3uIrvdmVgd1xFD5zt/xA==";
+        url = "https://registry.npmjs.org/@jest/environment/-/environment-26.2.0.tgz";
+        sha512 = "oCgp9NmEiJ5rbq9VI/v/yYLDpladAAVvFxZgNsnJxOETuzPZ0ZcKKHYjKYwCtPOP1WCrM5nmyuOhMStXFGHn+g==";
       };
     };
-    "@jest/fake-timers-26.1.0" = {
+    "@jest/fake-timers-26.2.0" = {
       name = "_at_jest_slash_fake-timers";
       packageName = "@jest/fake-timers";
-      version = "26.1.0";
+      version = "26.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.1.0.tgz";
-        sha512 = "Y5F3kBVWxhau3TJ825iuWy++BAuQzK/xEa+wD9vDH3RytW9f2DbMVodfUQC54rZDX3POqdxCgcKdgcOL0rYUpA==";
+        url = "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.2.0.tgz";
+        sha512 = "45Gfe7YzYTKqTayBrEdAF0qYyAsNRBzfkV0IyVUm3cx7AsCWlnjilBM4T40w7IXT5VspOgMPikQlV0M6gHwy/g==";
       };
     };
-    "@jest/globals-26.1.0" = {
+    "@jest/globals-26.2.0" = {
       name = "_at_jest_slash_globals";
       packageName = "@jest/globals";
-      version = "26.1.0";
+      version = "26.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jest/globals/-/globals-26.1.0.tgz";
-        sha512 = "MKiHPNaT+ZoG85oMaYUmGHEqu98y3WO2yeIDJrs2sJqHhYOy3Z6F7F/luzFomRQ8SQ1wEkmahFAz2291Iv8EAw==";
+        url = "https://registry.npmjs.org/@jest/globals/-/globals-26.2.0.tgz";
+        sha512 = "Hoc6ScEIPaym7RNytIL2ILSUWIGKlwEv+JNFof9dGYOdvPjb2evEURSslvCMkNuNg1ECEClTE8PH7ULlMJntYA==";
       };
     };
-    "@jest/reporters-26.1.0" = {
+    "@jest/reporters-26.2.2" = {
       name = "_at_jest_slash_reporters";
       packageName = "@jest/reporters";
-      version = "26.1.0";
+      version = "26.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jest/reporters/-/reporters-26.1.0.tgz";
-        sha512 = "SVAysur9FOIojJbF4wLP0TybmqwDkdnFxHSPzHMMIYyBtldCW9gG+Q5xWjpMFyErDiwlRuPyMSJSU64A67Pazg==";
+        url = "https://registry.npmjs.org/@jest/reporters/-/reporters-26.2.2.tgz";
+        sha512 = "7854GPbdFTAorWVh+RNHyPO9waRIN6TcvCezKVxI1khvFq9YjINTW7J3WU+tbR038Ynn6WjYred6vtT0YmIWVQ==";
       };
     };
     "@jest/source-map-26.1.0" = {
@@ -1030,31 +1003,31 @@ let
         sha512 = "XYRPYx4eEVX15cMT9mstnO7hkHP3krNtKfxUYd8L7gbtia8JvZZ6bMzSwa6IQJENbudTwKMw5R1BePRD+bkEmA==";
       };
     };
-    "@jest/test-result-26.1.0" = {
+    "@jest/test-result-26.2.0" = {
       name = "_at_jest_slash_test-result";
       packageName = "@jest/test-result";
-      version = "26.1.0";
+      version = "26.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jest/test-result/-/test-result-26.1.0.tgz";
-        sha512 = "Xz44mhXph93EYMA8aYDz+75mFbarTV/d/x0yMdI3tfSRs/vh4CqSxgzVmCps1fPkHDCtn0tU8IH9iCKgGeGpfw==";
+        url = "https://registry.npmjs.org/@jest/test-result/-/test-result-26.2.0.tgz";
+        sha512 = "kgPlmcVafpmfyQEu36HClK+CWI6wIaAWDHNxfQtGuKsgoa2uQAYdlxjMDBEa3CvI40+2U3v36gQF6oZBkoKatw==";
       };
     };
-    "@jest/test-sequencer-26.1.0" = {
+    "@jest/test-sequencer-26.2.2" = {
       name = "_at_jest_slash_test-sequencer";
       packageName = "@jest/test-sequencer";
-      version = "26.1.0";
+      version = "26.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.1.0.tgz";
-        sha512 = "Z/hcK+rTq56E6sBwMoQhSRDVjqrGtj1y14e2bIgcowARaIE1SgOanwx6gvY4Q9gTKMoZQXbXvptji+q5GYxa6Q==";
+        url = "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.2.2.tgz";
+        sha512 = "SliZWon5LNqV/lVXkeowSU6L8++FGOu3f43T01L1Gv6wnFDP00ER0utV9jyK9dVNdXqfMNCN66sfcyar/o7BNw==";
       };
     };
-    "@jest/transform-26.1.0" = {
+    "@jest/transform-26.2.2" = {
       name = "_at_jest_slash_transform";
       packageName = "@jest/transform";
-      version = "26.1.0";
+      version = "26.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jest/transform/-/transform-26.1.0.tgz";
-        sha512 = "ICPm6sUXmZJieq45ix28k0s+d/z2E8CHDsq+WwtWI6kW8m7I8kPqarSEcUN86entHQ570ZBRci5OWaKL0wlAWw==";
+        url = "https://registry.npmjs.org/@jest/transform/-/transform-26.2.2.tgz";
+        sha512 = "c1snhvi5wRVre1XyoO3Eef5SEWpuBCH/cEbntBUd9tI5sNYiBDmO0My/lc5IuuGYKp/HFIHV1eZpSx5yjdkhKw==";
       };
     };
     "@jest/types-25.5.0" = {
@@ -1066,112 +1039,103 @@ let
         sha512 = "OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==";
       };
     };
-    "@jest/types-26.1.0" = {
+    "@jest/types-26.2.0" = {
       name = "_at_jest_slash_types";
       packageName = "@jest/types";
-      version = "26.1.0";
+      version = "26.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jest/types/-/types-26.1.0.tgz";
-        sha512 = "GXigDDsp6ZlNMhXQDeuy/iYCDsRIHJabWtDzvnn36+aqFfG14JmFV0e/iXxY4SP9vbXSiPNOWdehU5MeqrYHBQ==";
+        url = "https://registry.npmjs.org/@jest/types/-/types-26.2.0.tgz";
+        sha512 = "lvm3rJvctxd7+wxKSxxbzpDbr4FXDLaC57WEKdUIZ2cjTYuxYSc0zlyD7Z4Uqr5VdKxRUrtwIkiqBuvgf8uKJA==";
       };
     };
-    "@serialport/binding-abstract-9.0.0" = {
+    "@serialport/binding-abstract-9.0.1" = {
       name = "_at_serialport_slash_binding-abstract";
       packageName = "@serialport/binding-abstract";
-      version = "9.0.0";
+      version = "9.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serialport/binding-abstract/-/binding-abstract-9.0.0.tgz";
-        sha512 = "ZU+6ZypP33Rzda1cDnpN0+CNfnODwbRU66GBawNtj2+xE+OMI7a0hbuZAYvQ+BThyDfdX/vn55P1YYeVWI8qpQ==";
+        url = "https://registry.npmjs.org/@serialport/binding-abstract/-/binding-abstract-9.0.1.tgz";
+        sha512 = "ncUFSRyVdpyCRuah2dzrs99UfEWWMAhV31ae2FT6j4f8TypQ8OgAF8KkcHiD4M3wORDh3UKCCTS7n8aJWge1RA==";
       };
     };
-    "@serialport/binding-mock-9.0.0" = {
+    "@serialport/binding-mock-9.0.1" = {
       name = "_at_serialport_slash_binding-mock";
       packageName = "@serialport/binding-mock";
-      version = "9.0.0";
+      version = "9.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serialport/binding-mock/-/binding-mock-9.0.0.tgz";
-        sha512 = "E65ZbykGwZSoHpQvjuJkTbwEM0uZku+SROtO+VMs/mShMalBnOSoRDU2IedkFKvz6IqowZZOVyaBUbnKYoAUuQ==";
+        url = "https://registry.npmjs.org/@serialport/binding-mock/-/binding-mock-9.0.1.tgz";
+        sha512 = "C01T6iX+nNKB7S6BhQEy5nfk4lUk/CkdFEfen9DDPYhtFtIsm5GCGvRB3Fjnp+8oDrGWJOrZfxFf3kWOOx665A==";
       };
     };
-    "@serialport/bindings-9.0.0" = {
+    "@serialport/bindings-9.0.1" = {
       name = "_at_serialport_slash_bindings";
       packageName = "@serialport/bindings";
-      version = "9.0.0";
+      version = "9.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serialport/bindings/-/bindings-9.0.0.tgz";
-        sha512 = "2LoYX80h5U8uIgpPaBXpIhs9uXIPhn6k+9u0FH3mFPHHeJ/tyVliwbj7uxdQ6xAUe5Zf3T2cH9JC/LnxewWyuw==";
+        url = "https://registry.npmjs.org/@serialport/bindings/-/bindings-9.0.1.tgz";
+        sha512 = "O5QuwCdnHuZygBKw7tVq2wHysfOnCbOyKtR/k9T9zHqptd89Tzy6xJQNtnrcbV/2D22noKX6yWj+1wqvNe6NRA==";
       };
     };
-    "@serialport/parser-byte-length-9.0.0" = {
+    "@serialport/parser-byte-length-9.0.1" = {
       name = "_at_serialport_slash_parser-byte-length";
       packageName = "@serialport/parser-byte-length";
-      version = "9.0.0";
+      version = "9.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serialport/parser-byte-length/-/parser-byte-length-9.0.0.tgz";
-        sha512 = "MaXWTqxz9SeWaN488uFhDMA3cy2sQFoGHDQqDpy6q9wBGlPBe+UpRAznzOoNPkAehqyPo1Vc7gxYsBfgjZtWaw==";
+        url = "https://registry.npmjs.org/@serialport/parser-byte-length/-/parser-byte-length-9.0.1.tgz";
+        sha512 = "1Ikv4lgCNw8OMf35yCpgzjHwkpgBEkhBuXFXIdWZk+ixaHFLlAtp03QxGPZBmzHMK58WDmEQoBHC1V5BkkAKSQ==";
       };
     };
-    "@serialport/parser-cctalk-9.0.0" = {
+    "@serialport/parser-cctalk-9.0.1" = {
       name = "_at_serialport_slash_parser-cctalk";
       packageName = "@serialport/parser-cctalk";
-      version = "9.0.0";
+      version = "9.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serialport/parser-cctalk/-/parser-cctalk-9.0.0.tgz";
-        sha512 = "tFJRF+uceEMYQeOLi92CYr1SScnI+2QLkawNHaVwwcmLV0ezwmsm1hvwBCWHkWDsY6U1SiElNJ5HpF89kS28zQ==";
+        url = "https://registry.npmjs.org/@serialport/parser-cctalk/-/parser-cctalk-9.0.1.tgz";
+        sha512 = "GtMda2DeJ+23bNqOc79JYV06dax2n3FLLFM3zA7nfReCOi98QbuDj4TUbFESMOnp4DB0oMO0GYHCR9gHOedTkg==";
       };
     };
-    "@serialport/parser-delimiter-9.0.0" = {
+    "@serialport/parser-delimiter-9.0.1" = {
       name = "_at_serialport_slash_parser-delimiter";
       packageName = "@serialport/parser-delimiter";
-      version = "9.0.0";
+      version = "9.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-9.0.0.tgz";
-        sha512 = "OesbvlJf1BjFC1zde6cnW1RttxZ8BoXGCOiNvM9mLKdvJ06l9o/4HyVCg2bymj6ziy/gz4407pwyPfvVYApE3A==";
+        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.0" = {
+    "@serialport/parser-readline-9.0.1" = {
       name = "_at_serialport_slash_parser-readline";
       packageName = "@serialport/parser-readline";
-      version = "9.0.0";
+      version = "9.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-9.0.0.tgz";
-        sha512 = "JMCqfn6A+BzcCc/4upYeLB48zijBJmOO/YGcyilXgCW0Mfedqsewgtatmk2tqFhQoJfjyOu3dRE3Lz9xHlRGZQ==";
+        url = "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-9.0.1.tgz";
+        sha512 = "38058gxvyfgdeLpg3aUyD98NuWkVB9yyTLpcSdeQ3GYiupivwH6Tdy/SKPmxlHIw3Ml2qil5MR2mtW2fLPB5CQ==";
       };
     };
-    "@serialport/parser-ready-9.0.0" = {
+    "@serialport/parser-ready-9.0.1" = {
       name = "_at_serialport_slash_parser-ready";
       packageName = "@serialport/parser-ready";
-      version = "9.0.0";
+      version = "9.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serialport/parser-ready/-/parser-ready-9.0.0.tgz";
-        sha512 = "oSQR7773Jdc6SjXMA1mWgfFlyBLcIRlZtt1BJMfO07k3ynBmanJ4VysVDTDvxtsREHLgcjoLRKQC/6wl2wvXOQ==";
+        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.0" = {
+    "@serialport/parser-regex-9.0.1" = {
       name = "_at_serialport_slash_parser-regex";
       packageName = "@serialport/parser-regex";
-      version = "9.0.0";
+      version = "9.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serialport/parser-regex/-/parser-regex-9.0.0.tgz";
-        sha512 = "Q4LDXbWnun5r1ML6ZLS5Wb2BurnkJjtP1geHtZbshLUmpfms++Q28li8OPzv/KQ6praC1HDRG37D0AY6xoObSw==";
+        url = "https://registry.npmjs.org/@serialport/parser-regex/-/parser-regex-9.0.1.tgz";
+        sha512 = "BHTV+Lkl+J8hSecFtDRENaR4fgA6tw44J+dmA1vEKEyum0iDN4bihbu8yvztYyo4PhBGUKDfm/PnD5EkJm0dPA==";
       };
     };
-    "@serialport/stream-9.0.0" = {
+    "@serialport/stream-9.0.1" = {
       name = "_at_serialport_slash_stream";
       packageName = "@serialport/stream";
-      version = "9.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@serialport/stream/-/stream-9.0.0.tgz";
-        sha512 = "JK952xKP+7PX3tXj9DgKafQaAru0sdbkTIY1OpjUNGp0xYWTVUbZRnLK//MLkH6FpoDTJc9ghN2ILK0YRtpLLA==";
-      };
-    };
-    "@sinonjs/commons-1.8.0" = {
-      name = "_at_sinonjs_slash_commons";
-      packageName = "@sinonjs/commons";
-      version = "1.8.0";
+      version = "9.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.0.tgz";
-        sha512 = "wEj54PfsZ5jGSwMX68G8ZXFawcSglQSXqCftWX3ec8MDUzQdHgcKvw97awHbY0efQEL5iKUOAmmVtoYgmrSG4Q==";
+        url = "https://registry.npmjs.org/@serialport/stream/-/stream-9.0.1.tgz";
+        sha512 = "S1xaf99vygbrMDNS/9GHYZYskWJHXJy6dCksW+ME2dzNXEXpz64vF0iug1tC1EIAhME9oD/s3ky2C9CUAd/GUg==";
       };
     };
     "@sinonjs/commons-1.8.1" = {
@@ -1291,13 +1255,13 @@ let
         sha512 = "P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==";
       };
     };
-    "@types/jest-26.0.4" = {
+    "@types/jest-26.0.9" = {
       name = "_at_types_slash_jest";
       packageName = "@types/jest";
-      version = "26.0.4";
+      version = "26.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/jest/-/jest-26.0.4.tgz";
-        sha512 = "4fQNItvelbNA9+sFgU+fhJo8ZFF+AS4Egk3GWwCW2jFtViukXbnztccafAdLhzE/0EiCogljtQQXP8aQ9J7sFg==";
+        url = "https://registry.npmjs.org/@types/jest/-/jest-26.0.9.tgz";
+        sha512 = "k4qFfJ5AUKrWok5KYXp2EPm89b0P/KZpl7Vg4XuOTVVQEhLDBDBU3iBFrjjdgd8fLw96aAtmnwhXHl63bWeBQQ==";
       };
     };
     "@types/json-schema-7.0.5" = {
@@ -1318,22 +1282,13 @@ let
         sha512 = "M0ISm1qsNvkdXNZml1r/1bEVqt5SJHF/LFcCtH5dHfsSIG0LEj5FhwK0f4fZy9WPCsXjmrKfpzgEW/bdQuKqmQ==";
       };
     };
-    "@types/node-14.0.22" = {
-      name = "_at_types_slash_node";
-      packageName = "@types/node";
-      version = "14.0.22";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-14.0.22.tgz";
-        sha512 = "emeGcJvdiZ4Z3ohbmw93E/64jRzUHAItSHt8nF7M4TGgQTiWqFVGB8KNpLGFmUHmHLvjvBgFwVlqNcq+VuGv9g==";
-      };
-    };
-    "@types/node-14.0.23" = {
+    "@types/node-14.0.27" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "14.0.23";
+      version = "14.0.27";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-14.0.23.tgz";
-        sha512 = "Z4U8yDAl5TFkmYsZdFPdjeMa57NOvnaf1tljHzhouaPEp7LCj2JKkejpI1ODviIAQuW4CcQmxkQ77rnLsOOoKw==";
+        url = "https://registry.npmjs.org/@types/node/-/node-14.0.27.tgz";
+        sha512 = "kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g==";
       };
     };
     "@types/normalize-package-data-2.4.0" = {
@@ -1390,13 +1345,13 @@ let
         sha512 = "FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==";
       };
     };
-    "@typescript-eslint/eslint-plugin-3.6.0" = {
+    "@typescript-eslint/eslint-plugin-3.8.0" = {
       name = "_at_typescript-eslint_slash_eslint-plugin";
       packageName = "@typescript-eslint/eslint-plugin";
-      version = "3.6.0";
+      version = "3.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.6.0.tgz";
-        sha512 = "ubHlHVt1lsPQB/CZdEov9XuOFhNG9YRC//kuiS1cMQI6Bs1SsqKrEmZnpgRwthGR09/kEDtr9MywlqXyyYd8GA==";
+        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.8.0.tgz";
+        sha512 = "lFb4VCDleFSR+eo4Ew+HvrJ37ZH1Y9ZyE+qyP7EiwBpcCVxwmUc5PAqhShCQ8N8U5vqYydm74nss+a0wrrCErw==";
       };
     };
     "@typescript-eslint/experimental-utils-2.34.0" = {
@@ -1408,31 +1363,31 @@ let
         sha512 = "eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==";
       };
     };
-    "@typescript-eslint/experimental-utils-3.6.0" = {
+    "@typescript-eslint/experimental-utils-3.8.0" = {
       name = "_at_typescript-eslint_slash_experimental-utils";
       packageName = "@typescript-eslint/experimental-utils";
-      version = "3.6.0";
+      version = "3.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.6.0.tgz";
-        sha512 = "4Vdf2hvYMUnTdkCNZu+yYlFtL2v+N2R7JOynIOkFbPjf9o9wQvRwRkzUdWlFd2YiiUwJLbuuLnl5civNg5ykOQ==";
+        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.8.0.tgz";
+        sha512 = "o8T1blo1lAJE0QDsW7nSyvZHbiDzQDjINJKyB44Z3sSL39qBy5L10ScI/XwDtaiunoyKGLiY9bzRk4YjsUZl8w==";
       };
     };
-    "@typescript-eslint/parser-3.6.0" = {
+    "@typescript-eslint/parser-3.8.0" = {
       name = "_at_typescript-eslint_slash_parser";
       packageName = "@typescript-eslint/parser";
-      version = "3.6.0";
+      version = "3.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.6.0.tgz";
-        sha512 = "taghDxuLhbDAD1U5Fk8vF+MnR0yiFE9Z3v2/bYScFb0N1I9SK8eKHkdJl1DAD48OGFDMFTeOTX0z7g0W6SYUXw==";
+        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.8.0.tgz";
+        sha512 = "u5vjOBaCsnMVQOvkKCXAmmOhyyMmFFf5dbkM3TIbg3MZ2pyv5peE4gj81UAbTHwTOXEwf7eCQTUMKrDl/+qGnA==";
       };
     };
-    "@typescript-eslint/types-3.6.0" = {
+    "@typescript-eslint/types-3.8.0" = {
       name = "_at_typescript-eslint_slash_types";
       packageName = "@typescript-eslint/types";
-      version = "3.6.0";
+      version = "3.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.6.0.tgz";
-        sha512 = "JwVj74ohUSt0ZPG+LZ7hb95fW8DFOqBuR6gE7qzq55KDI3BepqsCtHfBIoa0+Xi1AI7fq5nCu2VQL8z4eYftqg==";
+        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.8.0.tgz";
+        sha512 = "8kROmEQkv6ss9kdQ44vCN1dTrgu4Qxrd2kXr10kz2NP5T8/7JnEfYNxCpPkArbLIhhkGLZV3aVMplH1RXQRF7Q==";
       };
     };
     "@typescript-eslint/typescript-estree-2.34.0" = {
@@ -1444,40 +1399,40 @@ let
         sha512 = "OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==";
       };
     };
-    "@typescript-eslint/typescript-estree-3.6.0" = {
+    "@typescript-eslint/typescript-estree-3.8.0" = {
       name = "_at_typescript-eslint_slash_typescript-estree";
       packageName = "@typescript-eslint/typescript-estree";
-      version = "3.6.0";
+      version = "3.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.6.0.tgz";
-        sha512 = "G57NDSABHjvob7zVV09ehWyD1K6/YUKjz5+AufObFyjNO4DVmKejj47MHjVHHlZZKgmpJD2yyH9lfCXHrPITFg==";
+        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.8.0.tgz";
+        sha512 = "MTv9nPDhlKfclwnplRNDL44mP2SY96YmPGxmMbMy6x12I+pERcxpIUht7DXZaj4mOKKtet53wYYXU0ABaiXrLw==";
       };
     };
-    "@typescript-eslint/visitor-keys-3.6.0" = {
+    "@typescript-eslint/visitor-keys-3.8.0" = {
       name = "_at_typescript-eslint_slash_visitor-keys";
       packageName = "@typescript-eslint/visitor-keys";
-      version = "3.6.0";
+      version = "3.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.6.0.tgz";
-        sha512 = "p1izllL2Ubwunite0ITjubuMQRBGgjdVYwyG7lXPX8GbrA6qF0uwSRz9MnXZaHMxID4948gX0Ez8v9tUDi/KfQ==";
+        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.8.0.tgz";
+        sha512 = "gfqQWyVPpT9NpLREXNR820AYwgz+Kr1GuF3nf1wxpHD6hdxI62tq03ToomFnDxY0m3pUB39IF7sil7D5TQexLA==";
       };
     };
-    "abab-2.0.3" = {
+    "abab-2.0.4" = {
       name = "abab";
       packageName = "abab";
-      version = "2.0.3";
+      version = "2.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz";
-        sha512 = "tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==";
+        url = "https://registry.npmjs.org/abab/-/abab-2.0.4.tgz";
+        sha512 = "Eu9ELJWCz/c1e9gTiCY+FceWxcqzjYEbqMgtndnuSqZSUCOL73TWNK2mHfIj4Cw2E/ongOp+JISVNCmovt2KYQ==";
       };
     };
-    "acorn-7.3.1" = {
+    "acorn-7.4.0" = {
       name = "acorn";
       packageName = "acorn";
-      version = "7.3.1";
+      version = "7.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz";
-        sha512 = "tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==";
+        url = "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz";
+        sha512 = "+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==";
       };
     };
     "acorn-globals-6.0.0" = {
@@ -1786,13 +1741,13 @@ let
         sha512 = "fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==";
       };
     };
-    "babel-jest-26.1.0" = {
+    "babel-jest-26.2.2" = {
       name = "babel-jest";
       packageName = "babel-jest";
-      version = "26.1.0";
+      version = "26.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-jest/-/babel-jest-26.1.0.tgz";
-        sha512 = "Nkqgtfe7j6PxLO6TnCQQlkMm8wdTdnIF8xrdpooHCuD5hXRzVEPbPneTJKknH5Dsv3L8ip9unHDAp48YQ54Dkg==";
+        url = "https://registry.npmjs.org/babel-jest/-/babel-jest-26.2.2.tgz";
+        sha512 = "JmLuePHgA+DSOdOL8lPxCgD2LhPPm+rdw1vnxR73PpIrnmKCS2/aBhtkAcxQWuUcW2hBrH8MJ3LKXE7aWpNZyA==";
       };
     };
     "babel-plugin-dynamic-import-node-2.3.3" = {
@@ -1813,13 +1768,13 @@ let
         sha512 = "AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==";
       };
     };
-    "babel-plugin-jest-hoist-26.1.0" = {
+    "babel-plugin-jest-hoist-26.2.0" = {
       name = "babel-plugin-jest-hoist";
       packageName = "babel-plugin-jest-hoist";
-      version = "26.1.0";
+      version = "26.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.1.0.tgz";
-        sha512 = "qhqLVkkSlqmC83bdMhM8WW4Z9tB+JkjqAqlbbohS9sJLT5Ha2vfzuKqg5yenXrAjOPG2YC0WiXdH3a9PvB+YYw==";
+        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" = {
@@ -1831,13 +1786,13 @@ let
         sha512 = "uyexu1sVwcdFnyq9o8UQYsXwXflIh8LvrF5+cKrYam93ned1CStffB3+BEcsxGSgagoA3GEyjDqO4a/58hyPYQ==";
       };
     };
-    "babel-preset-jest-26.1.0" = {
+    "babel-preset-jest-26.2.0" = {
       name = "babel-preset-jest";
       packageName = "babel-preset-jest";
-      version = "26.1.0";
+      version = "26.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.1.0.tgz";
-        sha512 = "na9qCqFksknlEj5iSdw1ehMVR06LCCTkZLGKeEtxDDdhg8xpUF09m29Kvh1pRbZ07h7AQ5ttLYUwpXL4tO6w7w==";
+        url = "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.2.0.tgz";
+        sha512 = "R1k8kdP3R9phYQugXeNnK/nvCGlBzG4m3EoIIukC80GXb6wCv2XiwPhK6K9MAkQcMszWBYvl2Wm+yigyXFQqXg==";
       };
     };
     "balanced-match-1.0.0" = {
@@ -1948,13 +1903,13 @@ let
         sha512 = "9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==";
       };
     };
-    "browserslist-4.13.0" = {
+    "browserslist-4.14.0" = {
       name = "browserslist";
       packageName = "browserslist";
-      version = "4.13.0";
+      version = "4.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz";
-        sha512 = "MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ==";
+        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.14.0.tgz";
+        sha512 = "pUsXKAF2lVwhmtpeA3LJrZ76jXuusrNyhduuQs7CDFf9foT4Y38aQOserd2lMe5DSSrjf3fx34oHwryuvxAUgQ==";
       };
     };
     "bser-2.1.1" = {
@@ -2029,13 +1984,13 @@ let
         sha512 = "8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w==";
       };
     };
-    "caniuse-lite-1.0.30001099" = {
+    "caniuse-lite-1.0.30001112" = {
       name = "caniuse-lite";
       packageName = "caniuse-lite";
-      version = "1.0.30001099";
+      version = "1.0.30001112";
       src = fetchurl {
-        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001099.tgz";
-        sha512 = "sdS9A+sQTk7wKoeuZBN/YMAHVztUfVnjDi4/UV3sDE8xoh7YR12hKW+pIdB3oqKGwr9XaFL2ovfzt9w8eUI5CA==";
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001112.tgz";
+        sha512 = "J05RTQlqsatidif/38aN3PGULCLrg8OYQOlJUKbeYVzC2mGZkZLIztwRlB3MtrfLmawUmjFlNJvy/uhwniIe1Q==";
       };
     };
     "capture-exit-2.0.0" = {
@@ -2641,13 +2596,22 @@ let
         sha1 = "3a83a904e54353287874c564b7549386849a98c9";
       };
     };
-    "electron-to-chromium-1.3.496" = {
+    "electron-to-chromium-1.3.526" = {
       name = "electron-to-chromium";
       packageName = "electron-to-chromium";
-      version = "1.3.496";
+      version = "1.3.526";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.496.tgz";
-        sha512 = "TXY4mwoyowwi4Lsrq9vcTUYBThyc1b2hXaTZI13p8/FRhY2CTaq5lK+DVjhYkKiTLsKt569Xes+0J5JsVXFurQ==";
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.526.tgz";
+        sha512 = "HiroW5ZbGwgT8kCnoEO8qnGjoTPzJxduvV/Vv/wH63eo2N6Zj3xT5fmmaSPAPUM05iN9/5fIEkIg3owTtV6QZg==";
+      };
+    };
+    "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" = {
@@ -2758,13 +2722,13 @@ let
         sha512 = "NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==";
       };
     };
-    "escalade-3.0.1" = {
+    "escalade-3.0.2" = {
       name = "escalade";
       packageName = "escalade";
-      version = "3.0.1";
+      version = "3.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/escalade/-/escalade-3.0.1.tgz";
-        sha512 = "DR6NO3h9niOT+MZs7bjxlj2a1k+POu5RN8CLTPX2+i78bRi9eLe7+0zXgUHMnGXWybYcL61E9hGhPKqedy8tQA==";
+        url = "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz";
+        sha512 = "gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==";
       };
     };
     "escape-string-regexp-1.0.5" = {
@@ -2794,22 +2758,13 @@ let
         sha512 = "qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==";
       };
     };
-    "eslint-7.4.0" = {
-      name = "eslint";
-      packageName = "eslint";
-      version = "7.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/eslint/-/eslint-7.4.0.tgz";
-        sha512 = "gU+lxhlPHu45H3JkEGgYhWhkR9wLHHEXC9FbWFnTlEkbKyZKWgWRLgf61E8zWmBuI6g5xKBph9ltg3NtZMVF8g==";
-      };
-    };
-    "eslint-7.5.0" = {
+    "eslint-7.6.0" = {
       name = "eslint";
       packageName = "eslint";
-      version = "7.5.0";
+      version = "7.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint/-/eslint-7.5.0.tgz";
-        sha512 = "vlUP10xse9sWt9SGRtcr1LAC67BENcQMFeV+w5EvLEoFe3xJ8cF1Skd0msziRx/VMC+72B4DxreCE+OR12OA6Q==";
+        url = "https://registry.npmjs.org/eslint/-/eslint-7.6.0.tgz";
+        sha512 = "QlAManNtqr7sozWm5TF4wIH9gmUm2hE3vNRUvyoYAa4y1l5/jxD/PQStEjBMQtCqZmSep8UxrcecI60hOpe61w==";
       };
     };
     "eslint-config-google-0.14.0" = {
@@ -2821,13 +2776,13 @@ let
         sha512 = "WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==";
       };
     };
-    "eslint-plugin-jest-23.18.0" = {
+    "eslint-plugin-jest-23.20.0" = {
       name = "eslint-plugin-jest";
       packageName = "eslint-plugin-jest";
-      version = "23.18.0";
+      version = "23.20.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-23.18.0.tgz";
-        sha512 = "wLPM/Rm1SGhxrFQ2TKM/BYsYPhn7ch6ZEK92S2o/vGkAAnDXM0I4nTIo745RIX+VlCRMFgBuJEax6XfTHMdeKg==";
+        url = "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-23.20.0.tgz";
+        sha512 = "+6BGQt85OREevBDWCvhqj1yYA4+BFK4XnRZSGJionuEYmcglMZYLNNBBemwzbqUAckURaHdJSBcjHPyrtypZOw==";
       };
     };
     "eslint-scope-5.1.0" = {
@@ -2857,15 +2812,6 @@ let
         sha512 = "6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==";
       };
     };
-    "espree-7.1.0" = {
-      name = "espree";
-      packageName = "espree";
-      version = "7.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/espree/-/espree-7.1.0.tgz";
-        sha512 = "dcorZSyfmm4WTuTnE5Y7MEN1DyoPYy1ZR783QW1FJoenn7RailyWFsq/UL6ZAAA7uXurN9FIpYyUs3OfiIW+Qw==";
-      };
-    };
     "espree-7.2.0" = {
       name = "espree";
       packageName = "espree";
@@ -2911,13 +2857,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==";
       };
     };
     "esutils-2.0.3" = {
@@ -2992,13 +2938,13 @@ let
         sha512 = "XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==";
       };
     };
-    "expect-26.1.0" = {
+    "expect-26.2.0" = {
       name = "expect";
       packageName = "expect";
-      version = "26.1.0";
+      version = "26.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/expect/-/expect-26.1.0.tgz";
-        sha512 = "QbH4LZXDsno9AACrN9eM0zfnby9G+OsdNgZUohjg/P0mLy1O+/bzTAJGT6VSIjVCe8yKM6SzEl/ckEOFBT7Vnw==";
+        url = "https://registry.npmjs.org/expect/-/expect-26.2.0.tgz";
+        sha512 = "8AMBQ9UVcoUXt0B7v+5/U5H6yiUR87L6eKCfjE3spx7Ya5lF+ebUo37MCFBML2OiLfkX1sxmQOZhIDonyVTkcw==";
       };
     };
     "ext-1.4.0" = {
@@ -3496,13 +3442,13 @@ let
         sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
       };
     };
-    "har-validator-5.1.3" = {
+    "har-validator-5.1.5" = {
       name = "har-validator";
       packageName = "har-validator";
-      version = "5.1.3";
+      version = "5.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz";
-        sha512 = "sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==";
+        url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz";
+        sha512 = "nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==";
       };
     };
     "has-flag-3.0.0" = {
@@ -3586,13 +3532,13 @@ let
         sha1 = "8f2d508d0600b4a456da2f086556e7e5c056a3c6";
       };
     };
-    "highlight.js-10.1.1" = {
+    "highlight.js-10.1.2" = {
       name = "highlight.js";
       packageName = "highlight.js";
-      version = "10.1.1";
+      version = "10.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/highlight.js/-/highlight.js-10.1.1.tgz";
-        sha512 = "b4L09127uVa+9vkMgPpdUQP78ickGbHEQTWeBrQFTJZ4/n2aihWOGS0ZoUqAwjVmfjhq/C76HRzkqwZhK4sBbg==";
+        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" = {
@@ -3874,13 +3820,13 @@ let
         sha512 = "2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==";
       };
     };
-    "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-extendable-0.1.1" = {
@@ -4162,40 +4108,40 @@ let
         sha512 = "9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==";
       };
     };
-    "jest-26.1.0" = {
+    "jest-26.2.2" = {
       name = "jest";
       packageName = "jest";
-      version = "26.1.0";
+      version = "26.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest/-/jest-26.1.0.tgz";
-        sha512 = "LIti8jppw5BcQvmNJe4w2g1N/3V68HUfAv9zDVm7v+VAtQulGhH0LnmmiVkbNE4M4I43Bj2fXPiBGKt26k9tHw==";
+        url = "https://registry.npmjs.org/jest/-/jest-26.2.2.tgz";
+        sha512 = "EkJNyHiAG1+A8pqSz7cXttoVa34hOEzN/MrnJhYnfp5VHxflVcf2pu3oJSrhiy6LfIutLdWo+n6q63tjcoIeig==";
       };
     };
-    "jest-changed-files-26.1.0" = {
+    "jest-changed-files-26.2.0" = {
       name = "jest-changed-files";
       packageName = "jest-changed-files";
-      version = "26.1.0";
+      version = "26.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.1.0.tgz";
-        sha512 = "HS5MIJp3B8t0NRKGMCZkcDUZo36mVRvrDETl81aqljT1S9tqiHRSpyoOvWg9ZilzZG9TDisDNaN1IXm54fLRZw==";
+        url = "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.2.0.tgz";
+        sha512 = "+RyJb+F1K/XBLIYiL449vo5D+CvlHv29QveJUWNPXuUicyZcq+tf1wNxmmFeRvAU1+TzhwqczSjxnCCFt7+8iA==";
       };
     };
-    "jest-cli-26.1.0" = {
+    "jest-cli-26.2.2" = {
       name = "jest-cli";
       packageName = "jest-cli";
-      version = "26.1.0";
+      version = "26.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-cli/-/jest-cli-26.1.0.tgz";
-        sha512 = "Imumvjgi3rU7stq6SJ1JUEMaV5aAgJYXIs0jPqdUnF47N/Tk83EXfmtvNKQ+SnFVI6t6mDOvfM3aA9Sg6kQPSw==";
+        url = "https://registry.npmjs.org/jest-cli/-/jest-cli-26.2.2.tgz";
+        sha512 = "vVcly0n/ijZvdy6gPQiQt0YANwX2hLTPQZHtW7Vi3gcFdKTtif7YpI85F8R8JYy5DFSWz4x1OW0arnxlziu5Lw==";
       };
     };
-    "jest-config-26.1.0" = {
+    "jest-config-26.2.2" = {
       name = "jest-config";
       packageName = "jest-config";
-      version = "26.1.0";
+      version = "26.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-config/-/jest-config-26.1.0.tgz";
-        sha512 = "ONTGeoMbAwGCdq4WuKkMcdMoyfs5CLzHEkzFOlVvcDXufZSaIWh/OXMLa2fwKXiOaFcqEw8qFr4VOKJQfn4CVw==";
+        url = "https://registry.npmjs.org/jest-config/-/jest-config-26.2.2.tgz";
+        sha512 = "2lhxH0y4YFOijMJ65usuf78m7+9/8+hAb1PZQtdRdgnQpAb4zP6KcVDDktpHEkspBKnc2lmFu+RQdHukUUbiTg==";
       };
     };
     "jest-diff-25.5.0" = {
@@ -4207,13 +4153,13 @@ let
         sha512 = "z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==";
       };
     };
-    "jest-diff-26.1.0" = {
+    "jest-diff-26.2.0" = {
       name = "jest-diff";
       packageName = "jest-diff";
-      version = "26.1.0";
+      version = "26.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-diff/-/jest-diff-26.1.0.tgz";
-        sha512 = "GZpIcom339y0OXznsEKjtkfKxNdg7bVbEofK8Q6MnevTIiR1jNhDWKhRX6X0SDXJlwn3dy59nZ1z55fLkAqPWg==";
+        url = "https://registry.npmjs.org/jest-diff/-/jest-diff-26.2.0.tgz";
+        sha512 = "Wu4Aopi2nzCsHWLBlD48TgRy3Z7OsxlwvHNd1YSnHc7q1NJfrmyCPoUXrTIrydQOG5ApaYpsAsdfnMbJqV1/wQ==";
       };
     };
     "jest-docblock-26.0.0" = {
@@ -4225,31 +4171,31 @@ let
         sha512 = "RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==";
       };
     };
-    "jest-each-26.1.0" = {
+    "jest-each-26.2.0" = {
       name = "jest-each";
       packageName = "jest-each";
-      version = "26.1.0";
+      version = "26.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-each/-/jest-each-26.1.0.tgz";
-        sha512 = "lYiSo4Igr81q6QRsVQq9LIkJW0hZcKxkIkHzNeTMPENYYDw/W/Raq28iJ0sLlNFYz2qxxeLnc5K2gQoFYlu2bA==";
+        url = "https://registry.npmjs.org/jest-each/-/jest-each-26.2.0.tgz";
+        sha512 = "gHPCaho1twWHB5bpcfnozlc6mrMi+VAewVPNgmwf81x2Gzr6XO4dl+eOrwPWxbkYlgjgrYjWK2xgKnixbzH3Ew==";
       };
     };
-    "jest-environment-jsdom-26.1.0" = {
+    "jest-environment-jsdom-26.2.0" = {
       name = "jest-environment-jsdom";
       packageName = "jest-environment-jsdom";
-      version = "26.1.0";
+      version = "26.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.1.0.tgz";
-        sha512 = "dWfiJ+spunVAwzXbdVqPH1LbuJW/kDL+FyqgA5YzquisHqTi0g9hquKif9xKm7c1bKBj6wbmJuDkeMCnxZEpUw==";
+        url = "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.2.0.tgz";
+        sha512 = "sDG24+5M4NuIGzkI3rJW8XUlrpkvIdE9Zz4jhD8OBnVxAw+Y1jUk9X+lAOD48nlfUTlnt3lbAI3k2Ox+WF3S0g==";
       };
     };
-    "jest-environment-node-26.1.0" = {
+    "jest-environment-node-26.2.0" = {
       name = "jest-environment-node";
       packageName = "jest-environment-node";
-      version = "26.1.0";
+      version = "26.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.1.0.tgz";
-        sha512 = "DNm5x1aQH0iRAe9UYAkZenuzuJ69VKzDCAYISFHQ5i9e+2Tbeu2ONGY7YStubCLH8a1wdKBgqScYw85+ySxqxg==";
+        url = "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.2.0.tgz";
+        sha512 = "4M5ExTYkJ19efBzkiXtBi74JqKLDciEk4CEsp5tTjWGYMrlKFQFtwIVG3tW1OGE0AlXhZjuHPwubuRYY4j4uOw==";
       };
     };
     "jest-get-type-25.2.6" = {
@@ -4270,58 +4216,58 @@ let
         sha512 = "zRc1OAPnnws1EVfykXOj19zo2EMw5Hi6HLbFCSjpuJiXtOWAYIjNsHVSbpQ8bDX7L5BGYGI8m+HmKdjHYFF0kg==";
       };
     };
-    "jest-haste-map-26.1.0" = {
+    "jest-haste-map-26.2.2" = {
       name = "jest-haste-map";
       packageName = "jest-haste-map";
-      version = "26.1.0";
+      version = "26.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.1.0.tgz";
-        sha512 = "WeBS54xCIz9twzkEdm6+vJBXgRBQfdbbXD0dk8lJh7gLihopABlJmIQFdWSDDtuDe4PRiObsjZSUjbJ1uhWEpA==";
+        url = "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.2.2.tgz";
+        sha512 = "3sJlMSt+NHnzCB+0KhJ1Ut4zKJBiJOlbrqEYNdRQGlXTv8kqzZWjUKQRY3pkjmlf+7rYjAV++MQ4D6g4DhAyOg==";
       };
     };
-    "jest-jasmine2-26.1.0" = {
+    "jest-jasmine2-26.2.2" = {
       name = "jest-jasmine2";
       packageName = "jest-jasmine2";
-      version = "26.1.0";
+      version = "26.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.1.0.tgz";
-        sha512 = "1IPtoDKOAG+MeBrKvvuxxGPJb35MTTRSDglNdWWCndCB3TIVzbLThRBkwH9P081vXLgiJHZY8Bz3yzFS803xqQ==";
+        url = "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.2.2.tgz";
+        sha512 = "Q8AAHpbiZMVMy4Hz9j1j1bg2yUmPa1W9StBvcHqRaKa9PHaDUMwds8LwaDyzP/2fkybcTQE4+pTMDOG9826tEw==";
       };
     };
-    "jest-leak-detector-26.1.0" = {
+    "jest-leak-detector-26.2.0" = {
       name = "jest-leak-detector";
       packageName = "jest-leak-detector";
-      version = "26.1.0";
+      version = "26.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.1.0.tgz";
-        sha512 = "dsMnKF+4BVOZwvQDlgn3MG+Ns4JuLv8jNvXH56bgqrrboyCbI1rQg6EI5rs+8IYagVcfVP2yZFKfWNZy0rK0Hw==";
+        url = "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.2.0.tgz";
+        sha512 = "aQdzTX1YiufkXA1teXZu5xXOJgy7wZQw6OJ0iH5CtQlOETe6gTSocaYKUNui1SzQ91xmqEUZ/WRavg9FD82rtQ==";
       };
     };
-    "jest-matcher-utils-26.1.0" = {
+    "jest-matcher-utils-26.2.0" = {
       name = "jest-matcher-utils";
       packageName = "jest-matcher-utils";
-      version = "26.1.0";
+      version = "26.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.1.0.tgz";
-        sha512 = "PW9JtItbYvES/xLn5mYxjMd+Rk+/kIt88EfH3N7w9KeOrHWaHrdYPnVHndGbsFGRJ2d5gKtwggCvkqbFDoouQA==";
+        url = "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.2.0.tgz";
+        sha512 = "2cf/LW2VFb3ayPHrH36ZDjp9+CAeAe/pWBAwsV8t3dKcrINzXPVxq8qMWOxwt5BaeBCx4ZupVGH7VIgB8v66vQ==";
       };
     };
-    "jest-message-util-26.1.0" = {
+    "jest-message-util-26.2.0" = {
       name = "jest-message-util";
       packageName = "jest-message-util";
-      version = "26.1.0";
+      version = "26.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.1.0.tgz";
-        sha512 = "dY0+UlldiAJwNDJ08SF0HdF32g9PkbF2NRK/+2iMPU40O6q+iSn1lgog/u0UH8ksWoPv0+gNq8cjhYO2MFtT0g==";
+        url = "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.2.0.tgz";
+        sha512 = "g362RhZaJuqeqG108n1sthz5vNpzTNy926eNDszo4ncRbmmcMRIUAZibnd6s5v2XSBCChAxQtCoN25gnzp7JbQ==";
       };
     };
-    "jest-mock-26.1.0" = {
+    "jest-mock-26.2.0" = {
       name = "jest-mock";
       packageName = "jest-mock";
-      version = "26.1.0";
+      version = "26.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-mock/-/jest-mock-26.1.0.tgz";
-        sha512 = "1Rm8EIJ3ZFA8yCIie92UbxZWj9SuVmUGcyhLHyAhY6WI3NIct38nVcfOPWhJteqSn8V8e3xOMha9Ojfazfpovw==";
+        url = "https://registry.npmjs.org/jest-mock/-/jest-mock-26.2.0.tgz";
+        sha512 = "XeC7yWtWmWByoyVOHSsE7NYsbXJLtJNgmhD7z4MKumKm6ET0si81bsSLbQ64L5saK3TgsHo2B/UqG5KNZ1Sp/Q==";
       };
     };
     "jest-pnp-resolver-1.2.2" = {
@@ -4342,94 +4288,94 @@ let
         sha512 = "Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==";
       };
     };
-    "jest-resolve-26.1.0" = {
+    "jest-resolve-26.2.2" = {
       name = "jest-resolve";
       packageName = "jest-resolve";
-      version = "26.1.0";
+      version = "26.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.1.0.tgz";
-        sha512 = "KsY1JV9FeVgEmwIISbZZN83RNGJ1CC+XUCikf/ZWJBX/tO4a4NvA21YixokhdR9UnmPKKAC4LafVixJBrwlmfg==";
+        url = "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.2.2.tgz";
+        sha512 = "ye9Tj/ILn/0OgFPE/3dGpQPUqt4dHwIocxt5qSBkyzxQD8PbL0bVxBogX2FHxsd3zJA7V2H/cHXnBnNyyT9YoQ==";
       };
     };
-    "jest-resolve-dependencies-26.1.0" = {
+    "jest-resolve-dependencies-26.2.2" = {
       name = "jest-resolve-dependencies";
       packageName = "jest-resolve-dependencies";
-      version = "26.1.0";
+      version = "26.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.1.0.tgz";
-        sha512 = "fQVEPHHQ1JjHRDxzlLU/buuQ9om+hqW6Vo928aa4b4yvq4ZHBtRSDsLdKQLuCqn5CkTVpYZ7ARh2fbA8WkRE6g==";
+        url = "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.2.2.tgz";
+        sha512 = "S5vufDmVbQXnpP7435gr710xeBGUFcKNpNswke7RmFvDQtmqPjPVU/rCeMlEU0p6vfpnjhwMYeaVjKZAy5QYJA==";
       };
     };
-    "jest-runner-26.1.0" = {
+    "jest-runner-26.2.2" = {
       name = "jest-runner";
       packageName = "jest-runner";
-      version = "26.1.0";
+      version = "26.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-runner/-/jest-runner-26.1.0.tgz";
-        sha512 = "elvP7y0fVDREnfqit0zAxiXkDRSw6dgCkzPCf1XvIMnSDZ8yogmSKJf192dpOgnUVykmQXwYYJnCx641uLTgcw==";
+        url = "https://registry.npmjs.org/jest-runner/-/jest-runner-26.2.2.tgz";
+        sha512 = "/qb6ptgX+KQ+aNMohJf1We695kaAfuu3u3ouh66TWfhTpLd9WbqcF6163d/tMoEY8GqPztXPLuyG0rHRVDLxCA==";
       };
     };
-    "jest-runtime-26.1.0" = {
+    "jest-runtime-26.2.2" = {
       name = "jest-runtime";
       packageName = "jest-runtime";
-      version = "26.1.0";
+      version = "26.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.1.0.tgz";
-        sha512 = "1qiYN+EZLmG1QV2wdEBRf+Ci8i3VSfIYLF02U18PiUDrMbhfpN/EAMMkJtT02jgJUoaEOpHAIXG6zS3QRMzRmA==";
+        url = "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.2.2.tgz";
+        sha512 = "a8VXM3DxCDnCIdl9+QucWFfQ28KdqmyVFqeKLigHdErtsx56O2ZIdQkhFSuP1XtVrG9nTNHbKxjh5XL1UaFDVQ==";
       };
     };
-    "jest-serializer-26.1.0" = {
+    "jest-serializer-26.2.0" = {
       name = "jest-serializer";
       packageName = "jest-serializer";
-      version = "26.1.0";
+      version = "26.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.1.0.tgz";
-        sha512 = "eqZOQG/0+MHmr25b2Z86g7+Kzd5dG9dhCiUoyUNJPgiqi38DqbDEOlHcNijyfZoj74soGBohKBZuJFS18YTJ5w==";
+        url = "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.2.0.tgz";
+        sha512 = "V7snZI9IVmyJEu0Qy0inmuXgnMWDtrsbV2p9CRAcmlmPVwpC2ZM8wXyYpiugDQnwLHx0V4+Pnog9Exb3UO8M6Q==";
       };
     };
-    "jest-snapshot-26.1.0" = {
+    "jest-snapshot-26.2.2" = {
       name = "jest-snapshot";
       packageName = "jest-snapshot";
-      version = "26.1.0";
+      version = "26.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.1.0.tgz";
-        sha512 = "YhSbU7eMTVQO/iRbNs8j0mKRxGp4plo7sJ3GzOQ0IYjvsBiwg0T1o0zGQAYepza7lYHuPTrG5J2yDd0CE2YxSw==";
+        url = "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.2.2.tgz";
+        sha512 = "NdjD8aJS7ePu268Wy/n/aR1TUisG0BOY+QOW4f6h46UHEKOgYmmkvJhh2BqdVZQ0BHSxTMt04WpCf9njzx8KtA==";
       };
     };
-    "jest-util-26.1.0" = {
+    "jest-util-26.2.0" = {
       name = "jest-util";
       packageName = "jest-util";
-      version = "26.1.0";
+      version = "26.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-util/-/jest-util-26.1.0.tgz";
-        sha512 = "rNMOwFQevljfNGvbzNQAxdmXQ+NawW/J72dmddsK0E8vgxXCMtwQ/EH0BiWEIxh0hhMcTsxwAxINt7Lh46Uzbg==";
+        url = "https://registry.npmjs.org/jest-util/-/jest-util-26.2.0.tgz";
+        sha512 = "YmDwJxLZ1kFxpxPfhSJ0rIkiZOM0PQbRcfH0TzJOhqCisCAsI1WcmoQqO83My9xeVA2k4n+rzg2UuexVKzPpig==";
       };
     };
-    "jest-validate-26.1.0" = {
+    "jest-validate-26.2.0" = {
       name = "jest-validate";
       packageName = "jest-validate";
-      version = "26.1.0";
+      version = "26.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-validate/-/jest-validate-26.1.0.tgz";
-        sha512 = "WPApOOnXsiwhZtmkDsxnpye+XLb/tUISP+H6cHjfUIXvlG+eKwP+isnivsxlHCPaO9Q5wvbhloIBkdF3qUn+Nw==";
+        url = "https://registry.npmjs.org/jest-validate/-/jest-validate-26.2.0.tgz";
+        sha512 = "8XKn3hM6VIVmLNuyzYLCPsRCT83o8jMZYhbieh4dAyKLc4Ypr36rVKC+c8WMpWkfHHpGnEkvWUjjIAyobEIY/Q==";
       };
     };
-    "jest-watcher-26.1.0" = {
+    "jest-watcher-26.2.0" = {
       name = "jest-watcher";
       packageName = "jest-watcher";
-      version = "26.1.0";
+      version = "26.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.1.0.tgz";
-        sha512 = "ffEOhJl2EvAIki613oPsSG11usqnGUzIiK7MMX6hE4422aXOcVEG3ySCTDFLn1+LZNXGPE8tuJxhp8OBJ1pgzQ==";
+        url = "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.2.0.tgz";
+        sha512 = "674Boco4Joe0CzgKPL6K4Z9LgyLx+ZvW2GilbpYb8rFEUkmDGgsZdv1Hv5rxsRpb1HLgKUOL/JfbttRCuFdZXQ==";
       };
     };
-    "jest-worker-26.1.0" = {
+    "jest-worker-26.2.1" = {
       name = "jest-worker";
       packageName = "jest-worker";
-      version = "26.1.0";
+      version = "26.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-worker/-/jest-worker-26.1.0.tgz";
-        sha512 = "Z9P5pZ6UC+kakMbNJn+tA2RdVdNX5WH1x+5UCBZ9MxIK24pjYtFt96fK+UwBTrjLYm232g1xz0L3eTh51OW+yQ==";
+        url = "https://registry.npmjs.org/jest-worker/-/jest-worker-26.2.1.tgz";
+        sha512 = "+XcGMMJDTeEGncRb5M5Zq9P7K4sQ1sirhjdOxsN1462h6lFo9w59bl2LVQmdGEEeU3m+maZCkS2Tcc9SfCHO4A==";
       };
     };
     "js-tokens-4.0.0" = {
@@ -4459,13 +4405,13 @@ let
         sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
       };
     };
-    "jsdom-16.3.0" = {
+    "jsdom-16.4.0" = {
       name = "jsdom";
       packageName = "jsdom";
-      version = "16.3.0";
+      version = "16.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsdom/-/jsdom-16.3.0.tgz";
-        sha512 = "zggeX5UuEknpdZzv15+MS1dPYG0J/TftiiNunOeNxSl3qr8Z6cIlQpN0IdJa44z9aFxZRIVqRncvEhQ7X5DtZg==";
+        url = "https://registry.npmjs.org/jsdom/-/jsdom-16.4.0.tgz";
+        sha512 = "lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==";
       };
     };
     "jsesc-0.5.0" = {
@@ -5044,22 +4990,22 @@ let
         sha1 = "8d9dbe28964a4ac5712e9131642107c71e90ec40";
       };
     };
-    "node-notifier-7.0.1" = {
+    "node-notifier-7.0.2" = {
       name = "node-notifier";
       packageName = "node-notifier";
-      version = "7.0.1";
+      version = "7.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-notifier/-/node-notifier-7.0.1.tgz";
-        sha512 = "VkzhierE7DBmQEElhTGJIoiZa1oqRijOtgOlsXg32KrJRXsPy0NXFBqWGW/wTswnJlDCs5viRYaqWguqzsKcmg==";
+        url = "https://registry.npmjs.org/node-notifier/-/node-notifier-7.0.2.tgz";
+        sha512 = "ux+n4hPVETuTL8+daJXTOC6uKLgMsl1RYfFv7DKRzyvzBapqco0rZZ9g72ZN8VS6V+gvNYHYa/ofcCY8fkJWsA==";
       };
     };
-    "node-releases-1.1.59" = {
+    "node-releases-1.1.60" = {
       name = "node-releases";
       packageName = "node-releases";
-      version = "1.1.59";
+      version = "1.1.60";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.59.tgz";
-        sha512 = "H3JrdUczbdiwxN5FuJPyCHnGHIFqQ0wWxo+9j1kAXAzqNMAHlo+4I/sYYxpyK0irQ73HgdiyzD32oqQDcU2Osw==";
+        url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.60.tgz";
+        sha512 = "gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA==";
       };
     };
     "noop-logger-0.1.1" = {
@@ -5233,13 +5179,13 @@ let
         sha512 = "5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==";
       };
     };
-    "onetime-5.1.0" = {
+    "onetime-5.1.1" = {
       name = "onetime";
       packageName = "onetime";
-      version = "5.1.0";
+      version = "5.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz";
-        sha512 = "5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==";
+        url = "https://registry.npmjs.org/onetime/-/onetime-5.1.1.tgz";
+        sha512 = "ZpZpjcJeugQfWsfyQlshVoowIIQ1qBGSVll4rfDq6JJVO//fesjoX808hXWfBjY+ROZgpKDI5TRSRBSoJiZ8eg==";
       };
     };
     "optionator-0.8.3" = {
@@ -5323,13 +5269,13 @@ let
         sha512 = "GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==";
       };
     };
-    "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==";
       };
     };
     "parse5-5.1.1" = {
@@ -5494,13 +5440,13 @@ let
         sha512 = "kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==";
       };
     };
-    "pretty-format-26.1.0" = {
+    "pretty-format-26.2.0" = {
       name = "pretty-format";
       packageName = "pretty-format";
-      version = "26.1.0";
+      version = "26.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pretty-format/-/pretty-format-26.1.0.tgz";
-        sha512 = "GmeO1PEYdM+non4BKCj+XsPJjFOJIPnsLewqhDVoqY1xo0yNmDas7tC2XwpMrRAHR3MaE2hPo37deX5OisJ2Wg==";
+        url = "https://registry.npmjs.org/pretty-format/-/pretty-format-26.2.0.tgz";
+        sha512 = "qi/8IuBu2clY9G7qCXgCdD1Bf9w+sXakdHTRToknzMtVy0g7c4MBWaZy7MfB7ndKZovRO6XRwJiAYqq+MC7SDA==";
       };
     };
     "process-nextick-args-2.0.1" = {
@@ -5674,13 +5620,13 @@ let
         sha512 = "F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==";
       };
     };
-    "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.5" = {
@@ -5782,22 +5728,22 @@ let
         sha512 = "MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==";
       };
     };
-    "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==";
       };
     };
     "require-directory-2.1.1" = {
@@ -5989,13 +5935,13 @@ let
         sha512 = "OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==";
       };
     };
-    "serialport-9.0.0" = {
+    "serialport-9.0.1" = {
       name = "serialport";
       packageName = "serialport";
-      version = "9.0.0";
+      version = "9.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/serialport/-/serialport-9.0.0.tgz";
-        sha512 = "4kQqIM0XhT6QECyzJtPdSsDWRFt8u3/vscQxb+z4TrAMiPDkDGBTLDaXmCxarXDa1s7EeK1IyxMce9wzWPFzAQ==";
+        url = "https://registry.npmjs.org/serialport/-/serialport-9.0.1.tgz";
+        sha512 = "35Ms8dqjtAb73lptfEZG2l/nFZOxHt3hUjCHvl+g3Mu737gzFLDpSBrRywBJw4G4eS5ozZ3YcthwYnop1WO+ng==";
       };
     };
     "set-blocking-2.0.0" = {
@@ -6079,13 +6025,13 @@ let
         sha512 = "VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==";
       };
     };
-    "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-3.1.0" = {
@@ -6466,15 +6412,6 @@ let
         sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
       };
     };
-    "strip-json-comments-3.1.0" = {
-      name = "strip-json-comments";
-      packageName = "strip-json-comments";
-      version = "3.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz";
-        sha512 = "e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==";
-      };
-    };
     "strip-json-comments-3.1.1" = {
       name = "strip-json-comments";
       packageName = "strip-json-comments";
@@ -6853,13 +6790,13 @@ let
         sha512 = "zo09yRj+xwLFE3hyhJeVHWRSPuKEIAsFK5r2u47KL/HBKqpwdUSanoaz5L34IKiSATFrjG5ywmIu98hPVMfxZg==";
       };
     };
-    "typedoc-plugin-markdown-2.3.1" = {
+    "typedoc-plugin-markdown-2.4.0" = {
       name = "typedoc-plugin-markdown";
       packageName = "typedoc-plugin-markdown";
-      version = "2.3.1";
+      version = "2.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typedoc-plugin-markdown/-/typedoc-plugin-markdown-2.3.1.tgz";
-        sha512 = "7rlmg1tLjddYy11uznHCAlyoOpxdWnFXqGEZ7j2mJ4KJg2avwWgEpw6SFZVofgPCGn36zklpFS51lHxYSRTLVQ==";
+        url = "https://registry.npmjs.org/typedoc-plugin-markdown/-/typedoc-plugin-markdown-2.4.0.tgz";
+        sha512 = "m4eOwxSzeCbGNFzPDadNQcuMbkbc/45fgXsIP/m4K20i/8zVhCBmvoTxmKUqWYVTYc1BTtvQD5hY/qCueHoLFw==";
       };
     };
     "typedoc-plugin-no-inherit-1.1.10" = {
@@ -6880,22 +6817,22 @@ let
         sha512 = "xHq9DzkoQywS7FyPneMm2/Hr9GRoCpjSQXkVN0W6SCJKP7fguqg2tasgh+8l5/mW6YSYvqCqEbkSYLbuD4Y6gA==";
       };
     };
-    "typescript-3.9.6" = {
+    "typescript-3.9.7" = {
       name = "typescript";
       packageName = "typescript";
-      version = "3.9.6";
+      version = "3.9.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typescript/-/typescript-3.9.6.tgz";
-        sha512 = "Pspx3oKAPJtjNwE92YS05HQoY7z2SFyOpHo9MqJor3BXAGNaPUs83CuVp9VISFkSjyRfiTpmKuAYGJB7S7hOxw==";
+        url = "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz";
+        sha512 = "BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==";
       };
     };
-    "uglify-js-3.10.0" = {
+    "uglify-js-3.10.1" = {
       name = "uglify-js";
       packageName = "uglify-js";
-      version = "3.10.0";
+      version = "3.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.0.tgz";
-        sha512 = "Esj5HG5WAyrLIdYU74Z3JdG2PxdIusvj6IWHMtlyESxc7kcDz7zYlYjpnSokn1UbpV0d/QX9fan7gkCNd/9BQA==";
+        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.1.tgz";
+        sha512 = "RjxApKkrPJB6kjJxQS3iZlf///REXWYxYJxO/MpmlQzVkDWVI3PSnCBWezMecmTU/TRkNxrl8bmsfFQCp+LO+Q==";
       };
     };
     "ultron-1.1.1" = {
@@ -7060,13 +6997,13 @@ let
         sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==";
       };
     };
-    "uuid-7.0.3" = {
+    "uuid-8.3.0" = {
       name = "uuid";
       packageName = "uuid";
-      version = "7.0.3";
+      version = "8.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz";
-        sha512 = "DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==";
+        url = "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz";
+        sha512 = "fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==";
       };
     };
     "v8-compile-cache-2.1.1" = {
@@ -7384,29 +7321,29 @@ let
         sha512 = "o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==";
       };
     };
-    "zigbee-herdsman-0.12.108" = {
+    "zigbee-herdsman-0.12.116" = {
       name = "zigbee-herdsman";
       packageName = "zigbee-herdsman";
-      version = "0.12.108";
+      version = "0.12.116";
       src = fetchurl {
-        url = "https://registry.npmjs.org/zigbee-herdsman/-/zigbee-herdsman-0.12.108.tgz";
-        sha512 = "5xPgCYFAu/Q8mibEzB2be/nkkyCjMNKox+sYnaNNbUm0w25YRcI3FWuxE+wl9v7UVopZ8P9Wfou+XGsFbdaWRA==";
+        url = "https://registry.npmjs.org/zigbee-herdsman/-/zigbee-herdsman-0.12.116.tgz";
+        sha512 = "eMpqW5KWiVR5jMW7gelDrZB7sgohD8CoJeAH91bd89zR/vM3sTnSTC/HRpqRlEsPeYqwCRBKExf57q2iDQbWaA==";
       };
     };
-    "zigbee-herdsman-converters-12.0.147" = {
+    "zigbee-herdsman-converters-12.0.161" = {
       name = "zigbee-herdsman-converters";
       packageName = "zigbee-herdsman-converters";
-      version = "12.0.147";
+      version = "12.0.161";
       src = fetchurl {
-        url = "https://registry.npmjs.org/zigbee-herdsman-converters/-/zigbee-herdsman-converters-12.0.147.tgz";
-        sha512 = "WlNkN5xG+HdS1hZ5jTjR2vFii1OfOqTFUEQ+uZg06L7V1TucHRPlQ4AMY0WUQksnX2uuRqwehA3iuyszZjBAOg==";
+        url = "https://registry.npmjs.org/zigbee-herdsman-converters/-/zigbee-herdsman-converters-12.0.161.tgz";
+        sha512 = "iufUoZL86uTplW8vEjevFtAb7KITox2vXHB+0l9dE7lJqYyiGKyEoRqbjkmqBNqFjkJXD4eAM0VpsVAbHGbDMg==";
       };
     };
   };
   args = {
     name = "zigbee2mqtt";
     packageName = "zigbee2mqtt";
-    version = "1.14.2";
+    version = "1.14.3";
     src = ./.;
     dependencies = [
       sources."@dabh/diagnostics-2.0.2"
@@ -7549,53 +7486,57 @@ let
       sources."wrappy-1.0.2"
       sources."ws-3.3.3"
       sources."xtend-4.0.2"
-      (sources."zigbee-herdsman-0.12.108" // {
+      (sources."zigbee-herdsman-0.12.116" // {
         dependencies = [
-          sources."@babel/cli-7.10.4"
+          sources."@babel/cli-7.10.5"
           sources."@babel/code-frame-7.10.4"
-          sources."@babel/compat-data-7.10.4"
-          sources."@babel/core-7.10.4"
-          sources."@babel/generator-7.10.4"
+          sources."@babel/compat-data-7.11.0"
+          sources."@babel/core-7.11.1"
+          sources."@babel/generator-7.11.0"
           sources."@babel/helper-annotate-as-pure-7.10.4"
           sources."@babel/helper-builder-binary-assignment-operator-visitor-7.10.4"
           sources."@babel/helper-compilation-targets-7.10.4"
-          sources."@babel/helper-create-class-features-plugin-7.10.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.4"
+          sources."@babel/helper-define-map-7.10.5"
           sources."@babel/helper-explode-assignable-expression-7.10.4"
           sources."@babel/helper-function-name-7.10.4"
           sources."@babel/helper-get-function-arity-7.10.4"
           sources."@babel/helper-hoist-variables-7.10.4"
-          sources."@babel/helper-member-expression-to-functions-7.10.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.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.4"
+          sources."@babel/helper-regex-7.10.5"
           sources."@babel/helper-remap-async-to-generator-7.10.4"
           sources."@babel/helper-replace-supers-7.10.4"
           sources."@babel/helper-simple-access-7.10.4"
-          sources."@babel/helper-split-export-declaration-7.10.4"
+          sources."@babel/helper-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.10.4"
-          sources."@babel/plugin-proposal-async-generator-functions-7.10.4"
+          sources."@babel/parser-7.11.3"
+          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.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.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"
@@ -7609,7 +7550,7 @@ let
           sources."@babel/plugin-transform-arrow-functions-7.10.4"
           sources."@babel/plugin-transform-async-to-generator-7.10.4"
           sources."@babel/plugin-transform-block-scoped-functions-7.10.4"
-          sources."@babel/plugin-transform-block-scoping-7.10.4"
+          sources."@babel/plugin-transform-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"
@@ -7620,39 +7561,39 @@ let
           sources."@babel/plugin-transform-function-name-7.10.4"
           sources."@babel/plugin-transform-literals-7.10.4"
           sources."@babel/plugin-transform-member-expression-literals-7.10.4"
-          sources."@babel/plugin-transform-modules-amd-7.10.4"
+          sources."@babel/plugin-transform-modules-amd-7.10.5"
           sources."@babel/plugin-transform-modules-commonjs-7.10.4"
-          sources."@babel/plugin-transform-modules-systemjs-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.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.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.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.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.10.4"
+          sources."@babel/preset-env-7.11.0"
           sources."@babel/preset-modules-0.1.3"
           sources."@babel/preset-typescript-7.10.4"
-          sources."@babel/runtime-7.10.4"
+          sources."@babel/runtime-7.11.2"
           sources."@babel/template-7.10.4"
-          sources."@babel/traverse-7.10.4"
-          sources."@babel/types-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.1.0" // {
+          (sources."@jest/console-26.2.0" // {
             dependencies = [
-              sources."@jest/types-26.1.0"
+              sources."@jest/types-26.2.0"
               sources."ansi-styles-4.2.1"
               sources."chalk-4.1.0"
               sources."color-convert-2.0.1"
@@ -7662,9 +7603,9 @@ let
               sources."supports-color-7.1.0"
             ];
           })
-          (sources."@jest/core-26.1.0" // {
+          (sources."@jest/core-26.2.2" // {
             dependencies = [
-              sources."@jest/types-26.1.0"
+              sources."@jest/types-26.2.0"
               sources."ansi-regex-5.0.0"
               sources."ansi-styles-4.2.1"
               sources."braces-3.0.2"
@@ -7682,9 +7623,9 @@ let
               sources."to-regex-range-5.0.1"
             ];
           })
-          (sources."@jest/environment-26.1.0" // {
+          (sources."@jest/environment-26.2.0" // {
             dependencies = [
-              sources."@jest/types-26.1.0"
+              sources."@jest/types-26.2.0"
               sources."ansi-styles-4.2.1"
               sources."chalk-4.1.0"
               sources."color-convert-2.0.1"
@@ -7693,9 +7634,9 @@ let
               sources."supports-color-7.1.0"
             ];
           })
-          (sources."@jest/fake-timers-26.1.0" // {
+          (sources."@jest/fake-timers-26.2.0" // {
             dependencies = [
-              sources."@jest/types-26.1.0"
+              sources."@jest/types-26.2.0"
               sources."ansi-styles-4.2.1"
               sources."chalk-4.1.0"
               sources."color-convert-2.0.1"
@@ -7704,9 +7645,9 @@ let
               sources."supports-color-7.1.0"
             ];
           })
-          (sources."@jest/globals-26.1.0" // {
+          (sources."@jest/globals-26.2.0" // {
             dependencies = [
-              sources."@jest/types-26.1.0"
+              sources."@jest/types-26.2.0"
               sources."ansi-styles-4.2.1"
               sources."chalk-4.1.0"
               sources."color-convert-2.0.1"
@@ -7715,9 +7656,9 @@ let
               sources."supports-color-7.1.0"
             ];
           })
-          (sources."@jest/reporters-26.1.0" // {
+          (sources."@jest/reporters-26.2.2" // {
             dependencies = [
-              sources."@jest/types-26.1.0"
+              sources."@jest/types-26.2.0"
               sources."ansi-styles-4.2.1"
               sources."chalk-4.1.0"
               sources."color-convert-2.0.1"
@@ -7733,9 +7674,9 @@ let
               sources."source-map-0.6.1"
             ];
           })
-          (sources."@jest/test-result-26.1.0" // {
+          (sources."@jest/test-result-26.2.0" // {
             dependencies = [
-              sources."@jest/types-26.1.0"
+              sources."@jest/types-26.2.0"
               sources."ansi-styles-4.2.1"
               sources."chalk-4.1.0"
               sources."color-convert-2.0.1"
@@ -7744,10 +7685,10 @@ let
               sources."supports-color-7.1.0"
             ];
           })
-          sources."@jest/test-sequencer-26.1.0"
-          (sources."@jest/transform-26.1.0" // {
+          sources."@jest/test-sequencer-26.2.2"
+          (sources."@jest/transform-26.2.2" // {
             dependencies = [
-              sources."@jest/types-26.1.0"
+              sources."@jest/types-26.2.0"
               sources."ansi-styles-4.2.1"
               sources."braces-3.0.2"
               sources."chalk-4.1.0"
@@ -7773,17 +7714,17 @@ let
               sources."supports-color-7.1.0"
             ];
           })
-          sources."@serialport/binding-abstract-9.0.0"
-          sources."@serialport/binding-mock-9.0.0"
-          sources."@serialport/bindings-9.0.0"
-          sources."@serialport/parser-byte-length-9.0.0"
-          sources."@serialport/parser-cctalk-9.0.0"
-          sources."@serialport/parser-delimiter-9.0.0"
-          sources."@serialport/parser-readline-9.0.0"
-          sources."@serialport/parser-ready-9.0.0"
-          sources."@serialport/parser-regex-9.0.0"
-          sources."@serialport/stream-9.0.0"
-          sources."@sinonjs/commons-1.8.0"
+          sources."@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"
@@ -7796,32 +7737,32 @@ let
           sources."@types/istanbul-lib-coverage-2.0.3"
           sources."@types/istanbul-lib-report-3.0.0"
           sources."@types/istanbul-reports-1.1.2"
-          sources."@types/jest-26.0.4"
+          sources."@types/jest-26.0.9"
           sources."@types/json-schema-7.0.5"
           sources."@types/nedb-1.8.10"
-          sources."@types/node-14.0.22"
+          sources."@types/node-14.0.27"
           sources."@types/normalize-package-data-2.4.0"
           sources."@types/prettier-2.0.2"
           sources."@types/serialport-8.0.1"
           sources."@types/stack-utils-1.0.1"
           sources."@types/yargs-15.0.5"
           sources."@types/yargs-parser-15.0.0"
-          (sources."@typescript-eslint/eslint-plugin-3.6.0" // {
+          (sources."@typescript-eslint/eslint-plugin-3.8.0" // {
             dependencies = [
               sources."semver-7.3.2"
             ];
           })
-          sources."@typescript-eslint/experimental-utils-3.6.0"
-          sources."@typescript-eslint/parser-3.6.0"
-          sources."@typescript-eslint/types-3.6.0"
-          (sources."@typescript-eslint/typescript-estree-3.6.0" // {
+          sources."@typescript-eslint/experimental-utils-3.8.0"
+          sources."@typescript-eslint/parser-3.8.0"
+          sources."@typescript-eslint/types-3.8.0"
+          (sources."@typescript-eslint/typescript-estree-3.8.0" // {
             dependencies = [
               sources."semver-7.3.2"
             ];
           })
-          sources."@typescript-eslint/visitor-keys-3.6.0"
-          sources."abab-2.0.3"
-          sources."acorn-7.3.1"
+          sources."@typescript-eslint/visitor-keys-3.8.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"
@@ -7856,9 +7797,9 @@ let
           sources."atob-2.1.2"
           sources."aws-sign2-0.7.0"
           sources."aws4-1.10.0"
-          (sources."babel-jest-26.1.0" // {
+          (sources."babel-jest-26.2.2" // {
             dependencies = [
-              sources."@jest/types-26.1.0"
+              sources."@jest/types-26.2.0"
               sources."ansi-styles-4.2.1"
               sources."chalk-4.1.0"
               sources."color-convert-2.0.1"
@@ -7870,9 +7811,9 @@ let
           })
           sources."babel-plugin-dynamic-import-node-2.3.3"
           sources."babel-plugin-istanbul-6.0.0"
-          sources."babel-plugin-jest-hoist-26.1.0"
+          sources."babel-plugin-jest-hoist-26.2.0"
           sources."babel-preset-current-node-syntax-0.1.3"
-          sources."babel-preset-jest-26.1.0"
+          sources."babel-preset-jest-26.2.0"
           sources."balanced-match-1.0.0"
           (sources."base-0.11.2" // {
             dependencies = [
@@ -7900,14 +7841,14 @@ let
             ];
           })
           sources."browser-process-hrtime-1.0.0"
-          sources."browserslist-4.13.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.30001099"
+          sources."caniuse-lite-1.0.30001112"
           sources."capture-exit-2.0.0"
           sources."caseless-0.12.0"
           sources."chalk-2.4.2"
@@ -7948,11 +7889,7 @@ let
             ];
           })
           sources."core-util-is-1.0.2"
-          (sources."cross-spawn-6.0.5" // {
-            dependencies = [
-              sources."which-1.3.1"
-            ];
-          })
+          sources."cross-spawn-6.0.5"
           sources."cssom-0.4.4"
           (sources."cssstyle-2.3.0" // {
             dependencies = [
@@ -7989,12 +7926,13 @@ let
             ];
           })
           sources."ecc-jsbn-0.1.2"
-          sources."electron-to-chromium-1.3.496"
+          sources."electron-to-chromium-1.3.526"
+          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.1"
+          sources."escalade-3.0.2"
           sources."escape-string-regexp-1.0.5"
           (sources."escodegen-1.14.3" // {
             dependencies = [
@@ -8005,7 +7943,7 @@ let
               sources."type-check-0.3.2"
             ];
           })
-          (sources."eslint-7.4.0" // {
+          (sources."eslint-7.6.0" // {
             dependencies = [
               sources."ansi-regex-5.0.0"
               sources."ansi-styles-4.2.1"
@@ -8021,18 +7959,19 @@ let
               sources."shebang-command-2.0.0"
               sources."shebang-regex-3.0.0"
               sources."strip-ansi-6.0.0"
-              sources."strip-json-comments-3.1.0"
+              sources."strip-json-comments-3.1.1"
               sources."supports-color-7.1.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.1.0"
+          sources."espree-7.2.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"
@@ -8050,9 +7989,9 @@ let
             ];
           })
           sources."expand-template-2.0.3"
-          (sources."expect-26.1.0" // {
+          (sources."expect-26.2.0" // {
             dependencies = [
-              sources."@jest/types-26.1.0"
+              sources."@jest/types-26.2.0"
               sources."ansi-styles-4.2.1"
               sources."chalk-4.1.0"
               sources."color-convert-2.0.1"
@@ -8126,7 +8065,7 @@ let
             ];
           })
           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-symbols-1.0.1"
           sources."has-unicode-2.0.1"
@@ -8136,7 +8075,7 @@ let
               sources."kind-of-4.0.0"
             ];
           })
-          sources."highlight.js-10.1.1"
+          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"
@@ -8177,7 +8116,7 @@ let
               sources."kind-of-5.1.0"
             ];
           })
-          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-1.0.0"
@@ -8218,21 +8157,21 @@ let
             ];
           })
           sources."istanbul-reports-3.0.2"
-          (sources."jest-26.1.0" // {
+          (sources."jest-26.2.2" // {
             dependencies = [
-              sources."@jest/types-26.1.0"
+              sources."@jest/types-26.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."jest-cli-26.1.0"
+              sources."jest-cli-26.2.2"
               sources."supports-color-7.1.0"
             ];
           })
-          (sources."jest-changed-files-26.1.0" // {
+          (sources."jest-changed-files-26.2.0" // {
             dependencies = [
-              sources."@jest/types-26.1.0"
+              sources."@jest/types-26.2.0"
               sources."ansi-styles-4.2.1"
               sources."chalk-4.1.0"
               sources."color-convert-2.0.1"
@@ -8247,11 +8186,12 @@ let
               sources."shebang-command-2.0.0"
               sources."shebang-regex-3.0.0"
               sources."supports-color-7.1.0"
+              sources."which-2.0.2"
             ];
           })
-          (sources."jest-config-26.1.0" // {
+          (sources."jest-config-26.2.2" // {
             dependencies = [
-              sources."@jest/types-26.1.0"
+              sources."@jest/types-26.2.0"
               sources."ansi-regex-5.0.0"
               sources."ansi-styles-4.2.1"
               sources."braces-3.0.2"
@@ -8263,7 +8203,7 @@ let
               sources."is-number-7.0.0"
               sources."jest-get-type-26.0.0"
               sources."micromatch-4.0.2"
-              sources."pretty-format-26.1.0"
+              sources."pretty-format-26.2.0"
               sources."supports-color-7.1.0"
               sources."to-regex-range-5.0.1"
             ];
@@ -8279,9 +8219,9 @@ let
             ];
           })
           sources."jest-docblock-26.0.0"
-          (sources."jest-each-26.1.0" // {
+          (sources."jest-each-26.2.0" // {
             dependencies = [
-              sources."@jest/types-26.1.0"
+              sources."@jest/types-26.2.0"
               sources."ansi-regex-5.0.0"
               sources."ansi-styles-4.2.1"
               sources."chalk-4.1.0"
@@ -8289,13 +8229,13 @@ let
               sources."color-name-1.1.4"
               sources."has-flag-4.0.0"
               sources."jest-get-type-26.0.0"
-              sources."pretty-format-26.1.0"
+              sources."pretty-format-26.2.0"
               sources."supports-color-7.1.0"
             ];
           })
-          (sources."jest-environment-jsdom-26.1.0" // {
+          (sources."jest-environment-jsdom-26.2.0" // {
             dependencies = [
-              sources."@jest/types-26.1.0"
+              sources."@jest/types-26.2.0"
               sources."ansi-styles-4.2.1"
               sources."chalk-4.1.0"
               sources."color-convert-2.0.1"
@@ -8304,9 +8244,9 @@ let
               sources."supports-color-7.1.0"
             ];
           })
-          (sources."jest-environment-node-26.1.0" // {
+          (sources."jest-environment-node-26.2.0" // {
             dependencies = [
-              sources."@jest/types-26.1.0"
+              sources."@jest/types-26.2.0"
               sources."ansi-styles-4.2.1"
               sources."chalk-4.1.0"
               sources."color-convert-2.0.1"
@@ -8316,9 +8256,9 @@ let
             ];
           })
           sources."jest-get-type-25.2.6"
-          (sources."jest-haste-map-26.1.0" // {
+          (sources."jest-haste-map-26.2.2" // {
             dependencies = [
-              sources."@jest/types-26.1.0"
+              sources."@jest/types-26.2.0"
               sources."ansi-styles-4.2.1"
               sources."anymatch-3.1.1"
               sources."braces-3.0.2"
@@ -8334,22 +8274,22 @@ let
               sources."to-regex-range-5.0.1"
             ];
           })
-          (sources."jest-jasmine2-26.1.0" // {
+          (sources."jest-jasmine2-26.2.2" // {
             dependencies = [
-              sources."@jest/types-26.1.0"
+              sources."@jest/types-26.2.0"
               sources."ansi-regex-5.0.0"
               sources."ansi-styles-4.2.1"
               sources."chalk-4.1.0"
               sources."color-convert-2.0.1"
               sources."color-name-1.1.4"
               sources."has-flag-4.0.0"
-              sources."pretty-format-26.1.0"
+              sources."pretty-format-26.2.0"
               sources."supports-color-7.1.0"
             ];
           })
-          (sources."jest-leak-detector-26.1.0" // {
+          (sources."jest-leak-detector-26.2.0" // {
             dependencies = [
-              sources."@jest/types-26.1.0"
+              sources."@jest/types-26.2.0"
               sources."ansi-regex-5.0.0"
               sources."ansi-styles-4.2.1"
               sources."chalk-4.1.0"
@@ -8357,13 +8297,13 @@ let
               sources."color-name-1.1.4"
               sources."has-flag-4.0.0"
               sources."jest-get-type-26.0.0"
-              sources."pretty-format-26.1.0"
+              sources."pretty-format-26.2.0"
               sources."supports-color-7.1.0"
             ];
           })
-          (sources."jest-matcher-utils-26.1.0" // {
+          (sources."jest-matcher-utils-26.2.0" // {
             dependencies = [
-              sources."@jest/types-26.1.0"
+              sources."@jest/types-26.2.0"
               sources."ansi-regex-5.0.0"
               sources."ansi-styles-4.2.1"
               sources."chalk-4.1.0"
@@ -8371,15 +8311,15 @@ let
               sources."color-name-1.1.4"
               sources."diff-sequences-26.0.0"
               sources."has-flag-4.0.0"
-              sources."jest-diff-26.1.0"
+              sources."jest-diff-26.2.0"
               sources."jest-get-type-26.0.0"
-              sources."pretty-format-26.1.0"
+              sources."pretty-format-26.2.0"
               sources."supports-color-7.1.0"
             ];
           })
-          (sources."jest-message-util-26.1.0" // {
+          (sources."jest-message-util-26.2.0" // {
             dependencies = [
-              sources."@jest/types-26.1.0"
+              sources."@jest/types-26.2.0"
               sources."ansi-styles-4.2.1"
               sources."braces-3.0.2"
               sources."chalk-4.1.0"
@@ -8394,9 +8334,9 @@ let
               sources."to-regex-range-5.0.1"
             ];
           })
-          (sources."jest-mock-26.1.0" // {
+          (sources."jest-mock-26.2.0" // {
             dependencies = [
-              sources."@jest/types-26.1.0"
+              sources."@jest/types-26.2.0"
               sources."ansi-styles-4.2.1"
               sources."chalk-4.1.0"
               sources."color-convert-2.0.1"
@@ -8407,9 +8347,9 @@ let
           })
           sources."jest-pnp-resolver-1.2.2"
           sources."jest-regex-util-26.0.0"
-          (sources."jest-resolve-26.1.0" // {
+          (sources."jest-resolve-26.2.2" // {
             dependencies = [
-              sources."@jest/types-26.1.0"
+              sources."@jest/types-26.2.0"
               sources."ansi-styles-4.2.1"
               sources."chalk-4.1.0"
               sources."color-convert-2.0.1"
@@ -8419,9 +8359,9 @@ let
               sources."supports-color-7.1.0"
             ];
           })
-          (sources."jest-resolve-dependencies-26.1.0" // {
+          (sources."jest-resolve-dependencies-26.2.2" // {
             dependencies = [
-              sources."@jest/types-26.1.0"
+              sources."@jest/types-26.2.0"
               sources."ansi-styles-4.2.1"
               sources."chalk-4.1.0"
               sources."color-convert-2.0.1"
@@ -8430,9 +8370,9 @@ let
               sources."supports-color-7.1.0"
             ];
           })
-          (sources."jest-runner-26.1.0" // {
+          (sources."jest-runner-26.2.2" // {
             dependencies = [
-              sources."@jest/types-26.1.0"
+              sources."@jest/types-26.2.0"
               sources."ansi-styles-4.2.1"
               sources."chalk-4.1.0"
               sources."color-convert-2.0.1"
@@ -8441,9 +8381,9 @@ let
               sources."supports-color-7.1.0"
             ];
           })
-          (sources."jest-runtime-26.1.0" // {
+          (sources."jest-runtime-26.2.2" // {
             dependencies = [
-              sources."@jest/types-26.1.0"
+              sources."@jest/types-26.2.0"
               sources."ansi-styles-4.2.1"
               sources."chalk-4.1.0"
               sources."color-convert-2.0.1"
@@ -8453,10 +8393,10 @@ let
               sources."supports-color-7.1.0"
             ];
           })
-          sources."jest-serializer-26.1.0"
-          (sources."jest-snapshot-26.1.0" // {
+          sources."jest-serializer-26.2.0"
+          (sources."jest-snapshot-26.2.2" // {
             dependencies = [
-              sources."@jest/types-26.1.0"
+              sources."@jest/types-26.2.0"
               sources."ansi-regex-5.0.0"
               sources."ansi-styles-4.2.1"
               sources."chalk-4.1.0"
@@ -8464,16 +8404,16 @@ let
               sources."color-name-1.1.4"
               sources."diff-sequences-26.0.0"
               sources."has-flag-4.0.0"
-              sources."jest-diff-26.1.0"
+              sources."jest-diff-26.2.0"
               sources."jest-get-type-26.0.0"
-              sources."pretty-format-26.1.0"
+              sources."pretty-format-26.2.0"
               sources."semver-7.3.2"
               sources."supports-color-7.1.0"
             ];
           })
-          (sources."jest-util-26.1.0" // {
+          (sources."jest-util-26.2.0" // {
             dependencies = [
-              sources."@jest/types-26.1.0"
+              sources."@jest/types-26.2.0"
               sources."ansi-styles-4.2.1"
               sources."braces-3.0.2"
               sources."chalk-4.1.0"
@@ -8487,9 +8427,9 @@ let
               sources."to-regex-range-5.0.1"
             ];
           })
-          (sources."jest-validate-26.1.0" // {
+          (sources."jest-validate-26.2.0" // {
             dependencies = [
-              sources."@jest/types-26.1.0"
+              sources."@jest/types-26.2.0"
               sources."ansi-regex-5.0.0"
               sources."ansi-styles-4.2.1"
               sources."camelcase-6.0.0"
@@ -8498,13 +8438,13 @@ let
               sources."color-name-1.1.4"
               sources."has-flag-4.0.0"
               sources."jest-get-type-26.0.0"
-              sources."pretty-format-26.1.0"
+              sources."pretty-format-26.2.0"
               sources."supports-color-7.1.0"
             ];
           })
-          (sources."jest-watcher-26.1.0" // {
+          (sources."jest-watcher-26.2.0" // {
             dependencies = [
-              sources."@jest/types-26.1.0"
+              sources."@jest/types-26.2.0"
               sources."ansi-styles-4.2.1"
               sources."chalk-4.1.0"
               sources."color-convert-2.0.1"
@@ -8513,7 +8453,7 @@ let
               sources."supports-color-7.1.0"
             ];
           })
-          (sources."jest-worker-26.1.0" // {
+          (sources."jest-worker-26.2.1" // {
             dependencies = [
               sources."has-flag-4.0.0"
               sources."supports-color-7.1.0"
@@ -8522,7 +8462,7 @@ let
           sources."js-tokens-4.0.0"
           sources."js-yaml-3.14.0"
           sources."jsbn-0.1.1"
-          sources."jsdom-16.3.0"
+          sources."jsdom-16.4.0"
           sources."jsesc-2.5.2"
           sources."json-parse-better-errors-1.0.2"
           sources."json-schema-0.2.3"
@@ -8569,12 +8509,13 @@ let
           sources."node-abi-2.18.0"
           sources."node-int64-0.4.0"
           sources."node-modules-regexp-1.0.0"
-          (sources."node-notifier-7.0.1" // {
+          (sources."node-notifier-7.0.2" // {
             dependencies = [
               sources."semver-7.3.2"
+              sources."which-2.0.2"
             ];
           })
-          sources."node-releases-1.1.59"
+          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"
@@ -8595,7 +8536,7 @@ let
           sources."object.assign-4.1.0"
           sources."object.pick-1.3.0"
           sources."once-1.4.0"
-          sources."onetime-5.1.0"
+          sources."onetime-5.1.1"
           sources."optionator-0.9.1"
           sources."p-each-series-2.1.0"
           sources."p-finally-1.0.0"
@@ -8603,7 +8544,7 @@ let
           sources."p-locate-4.1.0"
           sources."p-try-2.2.0"
           sources."parent-module-1.0.1"
-          sources."parse-json-5.0.0"
+          sources."parse-json-5.0.1"
           sources."parse5-5.1.1"
           sources."pascalcase-0.1.1"
           sources."path-dirname-1.0.2"
@@ -8647,7 +8588,7 @@ let
           sources."rechoir-0.6.2"
           sources."regenerate-1.4.1"
           sources."regenerate-unicode-properties-8.2.0"
-          sources."regenerator-runtime-0.13.5"
+          sources."regenerator-runtime-0.13.7"
           sources."regenerator-transform-0.14.5"
           sources."regex-not-1.0.2"
           sources."regexpp-3.1.0"
@@ -8667,8 +8608,8 @@ let
               sources."uuid-3.4.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."tough-cookie-2.5.0"
             ];
@@ -8688,7 +8629,7 @@ let
           sources."sane-4.1.0"
           sources."saxes-5.0.1"
           sources."semver-5.7.1"
-          sources."serialport-9.0.0"
+          sources."serialport-9.0.1"
           sources."set-blocking-2.0.0"
           (sources."set-value-2.0.1" // {
             dependencies = [
@@ -8700,7 +8641,7 @@ let
           sources."shelljs-0.8.4"
           sources."shellwords-0.1.1"
           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."sisteransi-1.0.5"
           sources."slash-2.0.0"
@@ -8817,7 +8758,7 @@ let
           sources."typedarray-to-buffer-3.1.5"
           sources."typedoc-0.17.8"
           sources."typedoc-default-themes-0.10.2"
-          (sources."typedoc-plugin-markdown-2.3.1" // {
+          (sources."typedoc-plugin-markdown-2.4.0" // {
             dependencies = [
               sources."fs-extra-9.0.1"
               sources."jsonfile-6.0.1"
@@ -8826,8 +8767,8 @@ let
           })
           sources."typedoc-plugin-no-inherit-1.1.10"
           sources."typedoc-plugin-sourcefile-url-1.0.6"
-          sources."typescript-3.9.6"
-          sources."uglify-js-3.10.0"
+          sources."typescript-3.9.7"
+          sources."uglify-js-3.10.1"
           sources."unicode-canonical-property-names-ecmascript-1.0.4"
           sources."unicode-match-property-ecmascript-1.0.4"
           sources."unicode-match-property-value-ecmascript-1.2.0"
@@ -8849,7 +8790,7 @@ let
           sources."urix-0.1.0"
           sources."use-3.1.1"
           sources."util-deprecate-1.0.2"
-          sources."uuid-7.0.3"
+          sources."uuid-8.3.0"
           sources."v8-compile-cache-2.1.1"
           (sources."v8-to-istanbul-4.1.4" // {
             dependencies = [
@@ -8869,7 +8810,7 @@ let
               sources."webidl-conversions-5.0.0"
             ];
           })
-          sources."which-2.0.2"
+          sources."which-1.3.1"
           sources."which-module-2.0.0"
           sources."which-pm-runs-1.0.0"
           sources."wide-align-1.1.3"
@@ -8906,10 +8847,10 @@ let
           sources."yargs-parser-18.1.3"
         ];
       })
-      (sources."zigbee-herdsman-converters-12.0.147" // {
+      (sources."zigbee-herdsman-converters-12.0.161" // {
         dependencies = [
           sources."@babel/code-frame-7.10.4"
-          (sources."@babel/core-7.10.5" // {
+          (sources."@babel/core-7.11.1" // {
             dependencies = [
               sources."debug-4.1.1"
               sources."ms-2.1.2"
@@ -8917,21 +8858,21 @@ let
               sources."source-map-0.5.7"
             ];
           })
-          (sources."@babel/generator-7.10.5" // {
+          (sources."@babel/generator-7.11.0" // {
             dependencies = [
               sources."source-map-0.5.7"
             ];
           })
           sources."@babel/helper-function-name-7.10.4"
           sources."@babel/helper-get-function-arity-7.10.4"
-          sources."@babel/helper-member-expression-to-functions-7.10.5"
+          sources."@babel/helper-member-expression-to-functions-7.11.0"
           sources."@babel/helper-module-imports-7.10.4"
-          sources."@babel/helper-module-transforms-7.10.5"
+          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.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" // {
@@ -8939,7 +8880,7 @@ let
               sources."chalk-2.4.2"
             ];
           })
-          sources."@babel/parser-7.10.5"
+          sources."@babel/parser-7.11.3"
           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"
@@ -8952,14 +8893,14 @@ let
           sources."@babel/plugin-syntax-optional-catch-binding-7.8.3"
           sources."@babel/plugin-syntax-optional-chaining-7.8.3"
           sources."@babel/template-7.10.4"
-          (sources."@babel/traverse-7.10.5" // {
+          (sources."@babel/traverse-7.11.0" // {
             dependencies = [
               sources."debug-4.1.1"
               sources."globals-11.12.0"
               sources."ms-2.1.2"
             ];
           })
-          sources."@babel/types-7.10.5"
+          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" // {
@@ -8968,21 +8909,21 @@ let
             ];
           })
           sources."@istanbuljs/schema-0.1.2"
-          sources."@jest/console-26.1.0"
-          (sources."@jest/core-26.1.0" // {
+          sources."@jest/console-26.2.0"
+          (sources."@jest/core-26.2.2" // {
             dependencies = [
               sources."rimraf-3.0.2"
             ];
           })
-          sources."@jest/environment-26.1.0"
-          sources."@jest/fake-timers-26.1.0"
-          sources."@jest/globals-26.1.0"
-          sources."@jest/reporters-26.1.0"
+          sources."@jest/environment-26.2.0"
+          sources."@jest/fake-timers-26.2.0"
+          sources."@jest/globals-26.2.0"
+          sources."@jest/reporters-26.2.2"
           sources."@jest/source-map-26.1.0"
-          sources."@jest/test-result-26.1.0"
-          sources."@jest/test-sequencer-26.1.0"
-          sources."@jest/transform-26.1.0"
-          sources."@jest/types-26.1.0"
+          sources."@jest/test-result-26.2.0"
+          sources."@jest/test-sequencer-26.2.2"
+          sources."@jest/transform-26.2.2"
+          sources."@jest/types-26.2.0"
           sources."@sinonjs/commons-1.8.1"
           sources."@sinonjs/fake-timers-6.0.1"
           sources."@types/babel__core-7.1.9"
@@ -8995,7 +8936,7 @@ let
           sources."@types/istanbul-lib-report-3.0.0"
           sources."@types/istanbul-reports-1.1.2"
           sources."@types/json-schema-7.0.5"
-          sources."@types/node-14.0.23"
+          sources."@types/node-14.0.27"
           sources."@types/normalize-package-data-2.4.0"
           sources."@types/prettier-2.0.2"
           sources."@types/stack-utils-1.0.1"
@@ -9008,8 +8949,8 @@ let
               sources."ms-2.1.2"
             ];
           })
-          sources."abab-2.0.3"
-          sources."acorn-7.3.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"
@@ -9043,11 +8984,11 @@ let
           sources."aws-sign2-0.7.0"
           sources."aws4-1.10.0"
           sources."axios-0.19.2"
-          sources."babel-jest-26.1.0"
+          sources."babel-jest-26.2.2"
           sources."babel-plugin-istanbul-6.0.0"
-          sources."babel-plugin-jest-hoist-26.1.0"
+          sources."babel-plugin-jest-hoist-26.2.0"
           sources."babel-preset-current-node-syntax-0.1.3"
-          sources."babel-preset-jest-26.1.0"
+          sources."babel-preset-jest-26.2.0"
           sources."balanced-match-1.0.0"
           (sources."base-0.11.2" // {
             dependencies = [
@@ -9141,6 +9082,7 @@ let
             ];
           })
           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"
@@ -9154,14 +9096,14 @@ let
               sources."type-check-0.3.2"
             ];
           })
-          (sources."eslint-7.5.0" // {
+          (sources."eslint-7.6.0" // {
             dependencies = [
               sources."debug-4.1.1"
               sources."ms-2.1.2"
             ];
           })
           sources."eslint-config-google-0.14.0"
-          sources."eslint-plugin-jest-23.18.0"
+          sources."eslint-plugin-jest-23.20.0"
           sources."eslint-scope-5.1.0"
           sources."eslint-utils-2.1.0"
           sources."eslint-visitor-keys-1.3.0"
@@ -9169,7 +9111,7 @@ let
           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"
@@ -9194,7 +9136,7 @@ let
               sources."extend-shallow-2.0.1"
             ];
           })
-          (sources."expect-26.1.0" // {
+          (sources."expect-26.2.0" // {
             dependencies = [
               sources."ansi-styles-4.2.1"
               sources."color-convert-2.0.1"
@@ -9247,7 +9189,7 @@ let
           sources."graceful-fs-4.2.4"
           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-flag-3.0.0"
           sources."has-value-1.0.0"
           (sources."has-values-1.0.0" // {
@@ -9298,7 +9240,7 @@ let
               sources."kind-of-5.1.0"
             ];
           })
-          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"
@@ -9334,12 +9276,12 @@ let
             ];
           })
           sources."istanbul-reports-3.0.2"
-          (sources."jest-26.1.0" // {
+          (sources."jest-26.2.2" // {
             dependencies = [
-              sources."jest-cli-26.1.0"
+              sources."jest-cli-26.2.2"
             ];
           })
-          (sources."jest-changed-files-26.1.0" // {
+          (sources."jest-changed-files-26.2.0" // {
             dependencies = [
               sources."execa-4.0.3"
               sources."get-stream-5.1.0"
@@ -9347,35 +9289,35 @@ let
               sources."npm-run-path-4.0.1"
             ];
           })
-          sources."jest-config-26.1.0"
-          sources."jest-diff-26.1.0"
+          sources."jest-config-26.2.2"
+          sources."jest-diff-26.2.0"
           sources."jest-docblock-26.0.0"
-          sources."jest-each-26.1.0"
-          sources."jest-environment-jsdom-26.1.0"
-          sources."jest-environment-node-26.1.0"
+          sources."jest-each-26.2.0"
+          sources."jest-environment-jsdom-26.2.0"
+          sources."jest-environment-node-26.2.0"
           sources."jest-get-type-26.0.0"
-          sources."jest-haste-map-26.1.0"
-          sources."jest-jasmine2-26.1.0"
-          sources."jest-leak-detector-26.1.0"
-          sources."jest-matcher-utils-26.1.0"
-          sources."jest-message-util-26.1.0"
-          sources."jest-mock-26.1.0"
+          sources."jest-haste-map-26.2.2"
+          sources."jest-jasmine2-26.2.2"
+          sources."jest-leak-detector-26.2.0"
+          sources."jest-matcher-utils-26.2.0"
+          sources."jest-message-util-26.2.0"
+          sources."jest-mock-26.2.0"
           sources."jest-pnp-resolver-1.2.2"
           sources."jest-regex-util-26.0.0"
-          sources."jest-resolve-26.1.0"
-          sources."jest-resolve-dependencies-26.1.0"
-          sources."jest-runner-26.1.0"
-          sources."jest-runtime-26.1.0"
-          sources."jest-serializer-26.1.0"
-          sources."jest-snapshot-26.1.0"
-          sources."jest-util-26.1.0"
-          (sources."jest-validate-26.1.0" // {
+          sources."jest-resolve-26.2.2"
+          sources."jest-resolve-dependencies-26.2.2"
+          sources."jest-runner-26.2.2"
+          sources."jest-runtime-26.2.2"
+          sources."jest-serializer-26.2.0"
+          sources."jest-snapshot-26.2.2"
+          sources."jest-util-26.2.0"
+          (sources."jest-validate-26.2.0" // {
             dependencies = [
               sources."camelcase-6.0.0"
             ];
           })
-          sources."jest-watcher-26.1.0"
-          (sources."jest-worker-26.1.0" // {
+          sources."jest-watcher-26.2.0"
+          (sources."jest-worker-26.2.1" // {
             dependencies = [
               sources."has-flag-4.0.0"
               sources."supports-color-7.1.0"
@@ -9384,7 +9326,7 @@ let
           sources."js-tokens-4.0.0"
           sources."js-yaml-3.14.0"
           sources."jsbn-0.1.1"
-          sources."jsdom-16.3.0"
+          sources."jsdom-16.4.0"
           sources."jsesc-2.5.2"
           sources."json-parse-better-errors-1.0.2"
           sources."json-schema-0.2.3"
@@ -9428,7 +9370,7 @@ let
           sources."nice-try-1.0.5"
           sources."node-int64-0.4.0"
           sources."node-modules-regexp-1.0.0"
-          sources."node-notifier-7.0.1"
+          sources."node-notifier-7.0.2"
           (sources."normalize-package-data-2.5.0" // {
             dependencies = [
               sources."semver-5.7.1"
@@ -9451,7 +9393,7 @@ let
           sources."object-visit-1.0.1"
           sources."object.pick-1.3.0"
           sources."once-1.4.0"
-          sources."onetime-5.1.0"
+          sources."onetime-5.1.1"
           sources."optionator-0.9.1"
           sources."p-each-series-2.1.0"
           sources."p-finally-1.0.0"
@@ -9459,7 +9401,7 @@ let
           sources."p-locate-4.1.0"
           sources."p-try-2.2.0"
           sources."parent-module-1.0.1"
-          sources."parse-json-5.0.0"
+          sources."parse-json-5.0.1"
           sources."parse5-5.1.1"
           sources."pascalcase-0.1.1"
           sources."path-exists-4.0.0"
@@ -9472,7 +9414,7 @@ let
           sources."pkg-dir-4.2.0"
           sources."posix-character-classes-0.1.1"
           sources."prelude-ls-1.2.1"
-          (sources."pretty-format-26.1.0" // {
+          (sources."pretty-format-26.2.0" // {
             dependencies = [
               sources."ansi-styles-4.2.1"
               sources."color-convert-2.0.1"
@@ -9504,8 +9446,8 @@ let
               sources."uuid-3.4.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."tough-cookie-2.5.0"
             ];
@@ -9668,7 +9610,7 @@ let
           sources."urix-0.1.0"
           sources."use-3.1.1"
           sources."util-deprecate-1.0.2"
-          sources."uuid-7.0.3"
+          sources."uuid-8.3.0"
           sources."v8-compile-cache-2.1.1"
           (sources."v8-to-istanbul-4.1.4" // {
             dependencies = [
diff --git a/pkgs/shells/dash/default.nix b/pkgs/shells/dash/default.nix
index f9dd578ad98b2..3f344f673f162 100644
--- a/pkgs/shells/dash/default.nix
+++ b/pkgs/shells/dash/default.nix
@@ -1,4 +1,4 @@
-{ autoreconfHook, lib, stdenv, fetchurl }:
+{ stdenv, buildPackages, autoreconfHook, fetchurl }:
 
 stdenv.mkDerivation rec {
   name = "dash-0.5.11.1";
@@ -11,8 +11,9 @@ stdenv.mkDerivation rec {
   hardeningDisable = [ "format" ];
 
   # Temporary fix until a proper one is accepted upstream
-  patches = lib.lists.optional stdenv.isDarwin ./0001-fix-dirent64-et-al-on-darwin.patch;
-  nativeBuildInputs = lib.lists.optional stdenv.isDarwin autoreconfHook;
+  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/";
diff --git a/pkgs/shells/nushell/default.nix b/pkgs/shells/nushell/default.nix
index 351799099b1d7..09d2f6aac1a56 100644
--- a/pkgs/shells/nushell/default.nix
+++ b/pkgs/shells/nushell/default.nix
@@ -14,16 +14,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nushell";
-  version = "0.18.1";
+  version = "0.19.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "100r26dx57wdzdpf6lgsgw0py33k3nsx73pa1qjcipwv00a106sr";
+    sha256 = "08r6f71cy4j22k0mllm134x4dfixaircpaz5arrj93xsbp38nk92";
   };
 
-  cargoSha256 = "0ch79zsnqb5n9r7jq6figpmqp2cs2p9a3m7fg3sd04m797ki9chr";
+  cargoSha256 = "15kvl490abxdv6706zs7pv0q5fhghmdvlfbn19037sldkcsfl86b";
 
   nativeBuildInputs = [ pkg-config ]
     ++ lib.optionals (withStableFeatures && stdenv.isLinux) [ python3 ];
@@ -51,7 +51,7 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://www.nushell.sh/";
     license = licenses.mit;
     maintainers = with maintainers; [ filalex77 johntitor marsam ];
-    platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
+    platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-linux" ];
   };
 
   passthru = {
diff --git a/pkgs/shells/xonsh/default.nix b/pkgs/shells/xonsh/default.nix
index f73ec422e06bc..751dd00efc7a0 100644
--- a/pkgs/shells/xonsh/default.nix
+++ b/pkgs/shells/xonsh/default.nix
@@ -4,31 +4,22 @@
 , glibcLocales
 , coreutils
 , git
-, fetchpatch
 }:
 
 python3Packages.buildPythonApplication rec {
   pname = "xonsh";
-  version = "0.9.20";
+  version = "0.9.21";
 
   # fetch from github because the pypi package ships incomplete tests
   src = fetchFromGitHub {
     owner  = "xonsh";
     repo   = "xonsh";
     rev    = version;
-    sha256 = "05phrwqd1c64531y78zxkxd4w1cli8yj3x2cqch7nkzbyz93608p";
+    sha256 = "16k8506fk54krpkls374cn3vm1dp9ixi0byh5xvi3m5a4bnbvrs0";
   };
 
   LC_ALL = "en_US.UTF-8";
 
-  patches = [
-    # Fix vox tests. Remove with the next release
-    (fetchpatch {
-      url = "https://github.com/xonsh/xonsh/commit/00aeb7645af97134495cc6bc5fe2f41922df8676.patch";
-      sha256 = "0hx5jk22wxgmjzmqbxr2pjs3mwh7p0jwld0xhslc1s6whbjml25h";
-    })
-  ];
-
   postPatch = ''
     sed -ie "s|/bin/ls|${coreutils}/bin/ls|" tests/test_execer.py
     sed -ie "s|SHELL=xonsh|SHELL=$out/bin/xonsh|" tests/test_integrations.py
diff --git a/pkgs/shells/zsh/antibody/default.nix b/pkgs/shells/zsh/antibody/default.nix
index c1d02f3cd4037..325bae4f9cce8 100644
--- a/pkgs/shells/zsh/antibody/default.nix
+++ b/pkgs/shells/zsh/antibody/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "antibody";
-  version = "6.1.0";
+  version = "6.1.1";
 
   src = fetchFromGitHub {
     owner = "getantibody";
     repo = "antibody";
     rev = "v${version}";
-    sha256 = "0ldvihpm14h0gcn7iz5yxg1wbfv24flx6y8khdanw21lf9nmp59z";
+    sha256 = "0icag53svzdm7yvzp855fp0f7q0g0jkfmjaa1sj6mmb01c1xgzi1";
   };
 
   vendorSha256 = "0z8fma3v2dph8nv3q4lmv43s6p5sc338xb7kcmnpwcc0iw7b4vyj";
diff --git a/pkgs/shells/zsh/oh-my-zsh/default.nix b/pkgs/shells/zsh/oh-my-zsh/default.nix
index 2fce32e018e53..018bf01f7d94c 100644
--- a/pkgs/shells/zsh/oh-my-zsh/default.nix
+++ b/pkgs/shells/zsh/oh-my-zsh/default.nix
@@ -1,70 +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-08-24";
+  version = "2020-09-03";
   pname = "oh-my-zsh";
-  rev = "cfb86cd08d3b24fd4b59d0d35b3af1f589c891fa";
+  rev = "87edf16e05598505927410f6b06bbc5a6003805b";
 
-  src = fetchgit { inherit rev;
-    url = "https://github.com/ohmyzsh/ohmyzsh";
-    sha256 = "0af37smv0bqw37bng2halzgszf8y3m2sxahdff54m16asm0py2cr";
+  src = fetchFromGitHub {
+    inherit rev;
+    owner = "ohmyzsh";
+    repo = "ohmyzsh";
+    sha256 = "0c13vkh9w3sxdy12b17yqa676cp83jb3a4pwc2xx2xggcxpn72by";
   };
 
-  pathsToLink = [ "/share/oh-my-zsh" ];
-
-  phases = "installPhase";
-
   installPhase = ''
-  outdir=$out/share/oh-my-zsh
-  template=templates/zshrc.zsh-template
+    outdir=$out/share/oh-my-zsh
+    template=templates/zshrc.zsh-template
 
-  mkdir -p $outdir
-  cp -r $src/* $outdir
-  cd $outdir
+    mkdir -p $outdir
+    cp -r * $outdir
+    cd $outdir
 
-  rm LICENSE.txt
-  rm -rf .git*
+    rm LICENSE.txt
+    rm -rf .git*
 
-  chmod -R +w templates
+    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
+    # 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
+    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
+    # 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
+    # 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
+    # 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 variables.
+    if [ -f ~/.zsh_variables ]; then
+        . ~/.zsh_variables
+    fi
 
-  # Load the functions.
-  if [ -f ~/.zsh_funcs ]; then
-    . ~/.zsh_funcs
-  fi
+    # Load the functions.
+    if [ -f ~/.zsh_funcs ]; then
+      . ~/.zsh_funcs
+    fi
 
-  # Load the aliases.
-  if [ -f ~/.zsh_aliases ]; then
-      . ~/.zsh_aliases
-  fi
-  EOF
+    # Load the aliases.
+    if [ -f ~/.zsh_aliases ]; then
+        . ~/.zsh_aliases
+    fi
+    EOF
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/shells/zsh/oh-my-zsh/update.sh b/pkgs/shells/zsh/oh-my-zsh/update.sh
index 0146cac8496ca..738c0810737ae 100755
--- a/pkgs/shells/zsh/oh-my-zsh/update.sh
+++ b/pkgs/shells/zsh/oh-my-zsh/update.sh
@@ -5,7 +5,6 @@ set -eu -o pipefail
 
 oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion oh-my-zsh" | tr -d '"')"
 latestSha="$(curl -L -s https://api.github.com/repos/ohmyzsh/ohmyzsh/commits\?sha\=master\&since\=${oldVersion} | jq -r '.[0].sha')"
-url="$(nix-instantiate --eval -E "with import ./. {}; oh-my-zsh.src.url" | tr -d '"')"
 
 if [ ! "null" = "${latestSha}" ]; then
   latestDate="$(curl -L -s https://api.github.com/repos/ohmyzsh/ohmyzsh/commits/${latestSha} | jq '.commit.author.date' | sed 's|"\(.*\)T.*|\1|g')"
diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix
index 5b1c380548f48..491951e6121fe 100644
--- a/pkgs/stdenv/generic/make-derivation.nix
+++ b/pkgs/stdenv/generic/make-derivation.nix
@@ -309,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.
@@ -338,6 +342,32 @@ in rec {
         validity.handled
         ({
            overrideAttrs = f: mkDerivation (attrs // (f attrs));
+
+           # A derivation that always builds successfully and whose runtime
+           # dependencies are the original derivations build time dependencies
+           # This allows easy building and distributing of all derivations
+           # needed to enter a nix-shell with
+           #   nix-build shell.nix -A inputDerivation
+           inputDerivation = derivation (derivationArg // {
+             # Add a name in case the original drv didn't have one
+             name = derivationArg.name or "inputDerivation";
+             # This always only has one output
+             outputs = [ "out" ];
+
+             # Propagate the original builder and arguments, since we override
+             # them and they might contain references to build inputs
+             _derivation_original_builder = derivationArg.builder;
+             _derivation_original_args = derivationArg.args;
+
+             builder = stdenv.shell;
+             # The bash builtin `export` dumps all current environment variables,
+             # which is where all build input references end up (e.g. $PATH for
+             # binaries). By writing this to $out, Nix can find and register
+             # them as runtime dependencies (since Nix greps for store paths
+             # through $out to find them)
+             args = [ "-c" "export > $out" ];
+           });
+
            inherit meta passthru;
          } //
          # Pass through extra attributes that are not inputs, but
diff --git a/pkgs/tools/X11/ckbcomp/default.nix b/pkgs/tools/X11/ckbcomp/default.nix
index 74a6777d94911..91e067e7be713 100644
--- a/pkgs/tools/X11/ckbcomp/default.nix
+++ b/pkgs/tools/X11/ckbcomp/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "ckbcomp";
-  version = "1.195";
+  version = "1.196";
 
   src = fetchFromGitLab {
     domain = "salsa.debian.org";
     owner = "installer-team";
     repo = "console-setup";
     rev = version;
-    sha256 = "0d0xagigs5k3appzz5lzxdjncvnkgz4amz6ks7imiq8kkjixvmfy";
+    sha256 = "0c79rycgpna8910as6blw3z3sajzzakz4qlvr6js2yr8zq2d0ylg";
   };
 
   buildInputs = [ perl ];
diff --git a/pkgs/tools/admin/aws-vault/default.nix b/pkgs/tools/admin/aws-vault/default.nix
index ef6f760de5198..1efbff221a6f6 100644
--- a/pkgs/tools/admin/aws-vault/default.nix
+++ b/pkgs/tools/admin/aws-vault/default.nix
@@ -1,16 +1,16 @@
 { buildGoModule, lib, fetchFromGitHub }:
 buildGoModule rec {
   pname = "aws-vault";
-  version = "5.4.4";
+  version = "6.0.0";
 
   src = fetchFromGitHub {
     owner = "99designs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0qmxq2jd7dg5fp9giw6xd96q2l2df3sxksc0rwmrgx2rjx6iyivn";
+    sha256 = "0ssm58ksk5jb28w1ipa57spzf6wixjy1m7flw61ls8k86cy7qb7c";
   };
 
-  vendorSha256 = "0jlraq480llamns6yw8yjkzxsndyqiyzy120djni8sw5h0bz65j7";
+  vendorSha256 = "0lxm7nkzf9j9id7m46gqn26prb1jfl34gy1fycr0578absdvsrjd";
 
   doCheck = false;
 
diff --git a/pkgs/tools/admin/azure-cli/default.nix b/pkgs/tools/admin/azure-cli/default.nix
index 192a788b935e2..3743cad11a30a 100644
--- a/pkgs/tools/admin/azure-cli/default.nix
+++ b/pkgs/tools/admin/azure-cli/default.nix
@@ -1,12 +1,12 @@
 { stdenv, lib, python, fetchFromGitHub, installShellFiles }:
 
 let
-  version = "2.10.1";
+  version = "2.11.1";
   src = fetchFromGitHub {
     owner = "Azure";
     repo = "azure-cli";
     rev = "azure-cli-${version}";
-    sha256 = "03mard9cyffn109c1p0hrdi4cjxbwyk98677qrira9yvy6rw04bg";
+    sha256 = "11jmgc73b0w725rq89j6hk6gh67nfdbzp3rmywmrnah683d6xbpx";
   };
 
   # put packages that needs to be overriden in the py package scope
@@ -105,10 +105,13 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
     azure-mgmt-sql
     azure-mgmt-sqlvirtualmachine
     azure-mgmt-storage
+    azure-mgmt-synapse
     azure-mgmt-trafficmanager
     azure-mgmt-web
     azure-multiapi-storage
     azure-storage-blob
+    azure-synapse-accesscontrol
+    azure-synapse-spark
     colorama
     cryptography
     Fabric
diff --git a/pkgs/tools/admin/azure-cli/python-packages.nix b/pkgs/tools/admin/azure-cli/python-packages.nix
index 1ff74369432af..8d17c9ff2017c 100644
--- a/pkgs/tools/admin/azure-cli/python-packages.nix
+++ b/pkgs/tools/admin/azure-cli/python-packages.nix
@@ -139,8 +139,8 @@ let
       azure-mgmt-recoveryservicesbackup = overrideAzureMgmtPackage super.azure-mgmt-recoveryservicesbackup "0.6.0" "zip"
         "13s2k4jl8570bj6jkqzm0w29z29rl7h5i7czd3kr6vqar5wj9xjd";
 
-      azure-mgmt-resource = overrideAzureMgmtPackage super.azure-mgmt-resource "10.1.0" "zip"
-        "1pgxl2gzc1dm7akcqm6fl0y35sb3jdgcz6d7k6vsq93gb3gzrrwv";
+      azure-mgmt-resource = overrideAzureMgmtPackage super.azure-mgmt-resource "10.2.0" "zip"
+        "ddfe4c0c55f0e3fd1f66dd82c1d4a3d872ce124639b9a77fcd172daf464438a5";
 
       azure-mgmt-appconfiguration = overrideAzureMgmtPackage super.azure-mgmt-appconfiguration "0.5.0" "zip"
         "1nh626jg459p9f96glv74dph3vmpybm5cs8rrj1s65kn3m8jf591";
@@ -160,8 +160,8 @@ let
       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.15.0" "zip"
         "03ysr8kx0gavjrxsi9wqrgxpg3g17nvii7z68qfm0k2mv6ryj3z7";
@@ -187,8 +187,8 @@ let
       azure-mgmt-devtestlabs = overrideAzureMgmtPackage super.azure-mgmt-devtestlabs "4.0.0" "zip"
         "1397ksrd61jv7400mgn8sqngp6ahir55fyq9n5k69wk88169qm2r";
 
-      azure-mgmt-netapp = overrideAzureMgmtPackage super.azure-mgmt-netapp "0.11.0" "zip"
-        "0193y0w5lcrayf8g0sxaj57w52kixdk3x5b8kga5is4pdjq7c6k2";
+      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";
@@ -229,6 +229,9 @@ let
       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";
 
@@ -238,8 +241,8 @@ let
       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 "5.0.0" "zip"
         "0y1bq6lirwx4n8zydi49jx72xfc7dppzhy82x22sx98id8lxgcwm";
@@ -265,8 +268,11 @@ let
       azure-mgmt-servicefabric = overrideAzureMgmtPackage super.azure-mgmt-servicefabric "0.4.0" "zip"
         "1x18grkjf2p2r1ihlwv607sna9yjvsr2jwnkjc55askrgrwx5jx2";
 
-      azure-mgmt-hdinsight = overrideAzureMgmtPackage super.azure-mgmt-hdinsight "1.6.0" "zip"
-        "004q3d2kj1i1cx3sad1544n3pkindfm255sw19gdlhbw61wn5l5i";
+      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";
@@ -297,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 {
diff --git a/pkgs/tools/admin/lego/default.nix b/pkgs/tools/admin/lego/default.nix
index 4517077ac46b4..4b2d88cdf275a 100644
--- a/pkgs/tools/admin/lego/default.nix
+++ b/pkgs/tools/admin/lego/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, buildGoModule }:
+{ lib, fetchFromGitHub, buildGoModule, nixosTests }:
 
 buildGoModule rec {
   pname = "lego";
@@ -27,4 +27,6 @@ buildGoModule rec {
     homepage = "https://go-acme.github.io/lego/";
     maintainers = teams.acme.members;
   };
+
+  passthru.tests.lego = nixosTests.acme;
 }
diff --git a/pkgs/tools/audio/beets/mutagen-1.43.patch b/pkgs/tools/audio/beets/mutagen-1.43.patch
index 84cf1bab03ec8..d0d448c15e9a5 100644
--- a/pkgs/tools/audio/beets/mutagen-1.43.patch
+++ b/pkgs/tools/audio/beets/mutagen-1.43.patch
@@ -1,8 +1,10 @@
-Backport https://github.com/beetbox/mediafile/commit/b3343c4ee08d1251ae5e2344401a2f5892b4e868
+Backport
+https://github.com/beetbox/mediafile/commit/b3343c4ee08d1251ae5e2344401a2f5892b4e868
+https://github.com/beetbox/mediafile/commit/d2fc3b59f77c515b02dfe7ad936f89264375d2b4
 to Beets 1.4.9.
 
 diff --git i/setup.py w/setup.py
-index 79278f8..b8d6068 100755
+index 79278f8b..b8d60687 100755
 --- i/setup.py
 +++ w/setup.py
 @@ -87,7 +87,7 @@ setup(
@@ -15,9 +17,18 @@ index 79278f8..b8d6068 100755
          'musicbrainzngs>=0.4',
          'pyyaml',
 diff --git i/test/test_mediafile.py w/test/test_mediafile.py
-index 36a2c53..54ef9dd 100644
+index 36a2c53a..0ddde44e 100644
 --- i/test/test_mediafile.py
 +++ w/test/test_mediafile.py
+@@ -888,7 +888,7 @@ class WavpackTest(ReadWriteTestBase, unittest.TestCase):
+         'bitrate': 109312,
+         'format': u'WavPack',
+         'samplerate': 44100,
+-        'bitdepth': 0,
++        'bitdepth': 16,
+         'channels': 1,
+     }
+ 
 @@ -912,7 +912,7 @@ class AIFFTest(ReadWriteTestBase, unittest.TestCase):
          'bitrate': 705600,
          'format': u'AIFF',
diff --git a/pkgs/tools/audio/qastools/default.nix b/pkgs/tools/audio/qastools/default.nix
index 86ef7f050b23e..55dbba007f87b 100644
--- a/pkgs/tools/audio/qastools/default.nix
+++ b/pkgs/tools/audio/qastools/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "qastools";
-  version = "0.22.0";
+  version = "0.23.0";
 
   src = fetchFromGitLab {
     owner = "sebholt";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0px4fcn8dagivq5fyi5gy84yj86f6x0lk805mc4ry58d0wsbn68v";
+    sha256 = "19hn64hnvryfmrkdg6rqyzahdbqf1s5y3dcca389jj6sdx93b3ip";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/tools/filesystems/gocryptfs/default.nix b/pkgs/tools/filesystems/gocryptfs/default.nix
index 70a0aff118dbd..2f0deed7f6138 100644
--- a/pkgs/tools/filesystems/gocryptfs/default.nix
+++ b/pkgs/tools/filesystems/gocryptfs/default.nix
@@ -8,7 +8,7 @@ let
 in
 buildGoPackage rec {
   pname = "gocryptfs";
-  version = "1.7.1";
+  version = "1.8.0";
 
   goPackagePath = "github.com/rfjakob/gocryptfs";
 
@@ -19,7 +19,7 @@ buildGoPackage rec {
     owner = "rfjakob";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1zhzhvjhvi6xzib985bsnj9yzp4zsnm91m1679nbab6vm3kanq06";
+    sha256 = "1acalwrr5xqhpqca3gypj0s68w6vpckxmg5z5gfgh8wx6nqx4aw9";
   };
 
   postPatch = "rm -r tests";
diff --git a/pkgs/tools/filesystems/idsk/default.nix b/pkgs/tools/filesystems/idsk/default.nix
index 72ed4f0ee1b4a..6de0d586ad946 100644
--- a/pkgs/tools/filesystems/idsk/default.nix
+++ b/pkgs/tools/filesystems/idsk/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
 
   pname = "idsk";
-  version = "0.19";
+  version = "0.20";
 
   src = fetchFromGitHub {
     repo = "idsk";
     owner = "cpcsdk";
     rev = "v${version}";
-    sha256 = "0b4my5cz5kbzh4n65jr721piha6zixaxmfiss2zidip978k9rb6f";
+    sha256 = "05zbdkb9s6sfkni6k927795w2fqdhnf3i7kgl27715sdmmdab05d";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/tools/filesystems/reiser4progs/default.nix b/pkgs/tools/filesystems/reiser4progs/default.nix
index 896d472b83291..158097d381297 100644
--- a/pkgs/tools/filesystems/reiser4progs/default.nix
+++ b/pkgs/tools/filesystems/reiser4progs/default.nix
@@ -1,13 +1,13 @@
 {stdenv, fetchurl, libaal}:
 
-let version = "2.0.0"; in
+let version = "2.0.1"; in
 stdenv.mkDerivation rec {
   pname = "reiser4progs";
   inherit version;
 
   src = fetchurl {
     url = "mirror://sourceforge/reiser4/reiser4-utils/${pname}-${version}.tar.gz";
-    sha256 = "00kx9prz3d5plp1hn4xdkkd99cw42sanlsjnjhj0fsrlmi9yfs8n";
+    sha256 = "1r7m95mnp6xmp1j5k99jhmz6g9y2qq7cghlmdxsfbr3xviqfs45d";
   };
 
   buildInputs = [libaal];
diff --git a/pkgs/tools/filesystems/securefs/default.nix b/pkgs/tools/filesystems/securefs/default.nix
index c5a5af212d909..c8efa4d61abd0 100644
--- a/pkgs/tools/filesystems/securefs/default.nix
+++ b/pkgs/tools/filesystems/securefs/default.nix
@@ -4,13 +4,14 @@
 
 stdenv.mkDerivation rec {
   pname = "securefs";
-  version = "0.8.3";
+  version = "0.11.1";
 
   src = fetchFromGitHub {
-    sha256 = "0nf0bd163gz844mikqab2mh7xjlj31ixa6hi85qxdifyjpfjv7y4";
+    sha256 = "1sxfgqgy63ml7vg7zj3glvra4wj2qmfv9jzmpm1jqy8hq7qlqlsx";
     rev = version;
     repo = "securefs";
     owner = "netheril96";
+    fetchSubmodules = true;
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/tools/graphics/netpbm/default.nix b/pkgs/tools/graphics/netpbm/default.nix
index bfb50c45f40ba..4507c4fed853e 100644
--- a/pkgs/tools/graphics/netpbm/default.nix
+++ b/pkgs/tools/graphics/netpbm/default.nix
@@ -1,7 +1,7 @@
 { lib
 , stdenv
 , fetchsvn
-, pkgconfig
+, pkg-config
 , libjpeg
 , libpng
 , flex
@@ -27,14 +27,8 @@ stdenv.mkDerivation {
     sha256 = "1m7ks6k53gsjsdazgf22g16dfgj3pqvqy9mhxzlwszv5808sj5w5";
   };
 
-  postPatch = ''
-    # Install libnetpbm.so symlink to correct destination
-    substituteInPlace lib/Makefile \
-      --replace '/sharedlink' '/lib'
-  '';
-
   nativeBuildInputs = [
-    pkgconfig
+    pkg-config
     flex
     makeWrapper
   ];
@@ -48,6 +42,14 @@ stdenv.mkDerivation {
     libtiff
   ] ++ lib.optional enableX11 libX11;
 
+  enableParallelBuilding = true;
+
+  postPatch = ''
+    # Install libnetpbm.so symlink to correct destination
+    substituteInPlace lib/Makefile \
+      --replace '/sharedlink' '/lib'
+  '';
+
   configurePhase = ''
     runHook preConfigure
 
@@ -72,8 +74,6 @@ stdenv.mkDerivation {
     runHook postConfigure
   '';
 
-  enableParallelBuilding = true;
-
   installPhase = ''
     runHook preInstall
 
diff --git a/pkgs/tools/graphics/yafaray-core/default.nix b/pkgs/tools/graphics/yafaray-core/default.nix
index a02a97739bad3..3ca9a7b5e8d60 100644
--- a/pkgs/tools/graphics/yafaray-core/default.nix
+++ b/pkgs/tools/graphics/yafaray-core/default.nix
@@ -7,13 +7,13 @@
 stdenv.mkDerivation rec {
 
     pname = "yafaray-core";
-    version = "3.4.4";
+    version = "3.5.0";
 
     src = fetchFromGitHub {
       owner  = "YafaRay";
       repo   = "Core";
       rev    = "v${version}";
-      sha256 = "140vnaihz09rdvp0mqgrs26b3a2fv5wm49ar6817p4qklfx71l0g";
+      sha256 = "05r08ynm6p9jq9l3v1v3lqkrfx3bm6zlqcxm1yk7mdv1zv2yxikd";
     };
 
     preConfigure = ''
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
       homepage = "http://www.yafaray.org";
       maintainers = with maintainers; [ hodapp ];
       license = licenses.lgpl21;
-      platforms = platforms.linux;
+      platforms = [ "x86_64-linux" ];
     };
   }
 
diff --git a/pkgs/tools/misc/antimicroX/default.nix b/pkgs/tools/misc/antimicroX/default.nix
index 23418ced829ec..cb5496d450c4f 100644
--- a/pkgs/tools/misc/antimicroX/default.nix
+++ b/pkgs/tools/misc/antimicroX/default.nix
@@ -14,13 +14,13 @@
 
 mkDerivation rec {
   pname = "antimicroX";
-  version = "3.0";
+  version = "3.0.1";
 
   src = fetchFromGitHub {
     owner = "juliagoda";
     repo = "antimicroX";
     rev = version;
-    sha256 = "0li22sjl95233azxhyda36idnfzbb4b02wf57hnpnba6qvrlpwwl";
+    sha256 = "05asxlkgb4cgvpcyksw1cx8cz8nzi8hmw8b91lw92892j7a2r7wj";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules pkgconfig itstool ];
diff --git a/pkgs/tools/misc/broot/default.nix b/pkgs/tools/misc/broot/default.nix
index 7387270b7379a..62ca179cfdec8 100644
--- a/pkgs/tools/misc/broot/default.nix
+++ b/pkgs/tools/misc/broot/default.nix
@@ -5,23 +5,33 @@
 , makeWrapper
 , coreutils
 , libiconv
+, xcbuild
+, zlib
 , Security
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "broot";
-  version = "0.20.3";
+  version = "1.0.0";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "0vw956c5xpjsbd9b0ardvgi9jjqb230m2x5n4h9ai0yiwizc8rh6";
+    sha256 = "1dc6lb6ihj4s0mcp1say16j9yr61jdbzhmayxxsm4ansngbzmw45";
   };
 
-  cargoSha256 = "1zl4p3n327iq7nm7hi79zjxv2gvw9f3lwgkg1qp52kycv1af5gqp";
+  cargoSha256 = "0nqmincayjv1snxz94i14fypc9dv69fxfqqdz3qbcvc2cs62zayg";
 
-  nativeBuildInputs = [ makeWrapper 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/'
diff --git a/pkgs/tools/misc/cpuminer-multi/default.nix b/pkgs/tools/misc/cpuminer-multi/default.nix
index 65482fabb1172..dba42e4bfea85 100644
--- a/pkgs/tools/misc/cpuminer-multi/default.nix
+++ b/pkgs/tools/misc/cpuminer-multi/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchgit, curl, jansson, autoconf, automake
-, aesni ? true }:
+, aesni ? stdenv.hostPlatform.aesSupport }:
 
 let
   rev = "8393e03089c0abde61bd5d72aba8f926c3d6eca4";
@@ -28,6 +28,6 @@ stdenv.mkDerivation {
     license = licenses.gpl2;
     maintainers = [ maintainers.ehmry ];
     # does not build on i686 https://github.com/lucasjones/cpuminer-multi/issues/27
-    platforms = [ "x86_64-linux" ]; 
+    platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/tools/misc/direnv/default.nix b/pkgs/tools/misc/direnv/default.nix
index 1096cce496ef5..3fb2a5d76a06a 100644
--- a/pkgs/tools/misc/direnv/default.nix
+++ b/pkgs/tools/misc/direnv/default.nix
@@ -2,7 +2,7 @@
 
 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
diff --git a/pkgs/tools/misc/dust/default.nix b/pkgs/tools/misc/dust/default.nix
index 75e8d5d4887c1..238ff73ba3873 100644
--- a/pkgs/tools/misc/dust/default.nix
+++ b/pkgs/tools/misc/dust/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "du-dust";
-  version = "0.5.2";
+  version = "0.5.3";
 
   src = fetchFromGitHub {
     owner = "bootandy";
     repo = "dust";
     rev = "v${version}";
-    sha256 = "181xlm0zj9pb73ijwf202kwwm2jji0m11ynsbaxl44alva3xpvmk";
+    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 = "1ypphm9n6wri5f03fj65i5p6lb11qj5zp8ddvybanaypv5llkfcb";
+  cargoSha256 = "1q15xy15hk6r3sai9wry2jm57dhinx6r84yxg9fwvq354613k645";
 
   doCheck = false;
 
diff --git a/pkgs/tools/misc/git-town/default.nix b/pkgs/tools/misc/git-town/default.nix
index 7a8b16c55e0df..34548abd818b7 100644
--- a/pkgs/tools/misc/git-town/default.nix
+++ b/pkgs/tools/misc/git-town/default.nix
@@ -2,23 +2,22 @@
 
 buildGoPackage rec {
   pname = "git-town";
-  version = "7.3.0";
-
-  goPackagePath = "github.com/Originate/git-town";
+  version = "7.4.0";
 
+  goPackagePath = "github.com/git-town/git-town";
   src = fetchFromGitHub {
-    owner = "Originate";
+    owner = "git-town";
     repo = "git-town";
     rev = "v${version}";
-    sha256 = "166g9i79hqga8k5wvs0b84q6rqniizzsd39v37s9w16axgdrm6nb";
+    sha256 = "05s2hp4xn0bs3y6rgqkpgz0k8q8yfpwkw5m8vwim95hk6n41ps18";
   };
 
-  buildFlagsArray = [ "-ldflags=-X github.com/Originate/git-town/src/cmd.version=v${version} -X github.com/Originate/git-town/src/cmd.buildDate=nix" ];
+  buildFlagsArray = [ "-ldflags=-X github.com/git-town/git-town/src/cmd.version=v${version} -X github.com/git-town/git-town/src/cmd.buildDate=nix" ];
 
   meta = with stdenv.lib; {
     description = "Generic, high-level git support for git-flow workflows";
     homepage = "http://www.git-town.com/";
-    maintainers = [ maintainers.allonsy ];
+    maintainers = [ maintainers.allonsy maintainers.blaggacao ];
     license = licenses.mit;
   };
 }
diff --git a/pkgs/tools/misc/godu/default.nix b/pkgs/tools/misc/godu/default.nix
new file mode 100644
index 0000000000000..37511d2e847c7
--- /dev/null
+++ b/pkgs/tools/misc/godu/default.nix
@@ -0,0 +1,24 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+  pname = "godu";
+  version = "1.3.0";
+
+  src = fetchFromGitHub {
+    owner = "viktomas";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1fp8iq4x0qiswksznnd6qh7c6g5pwglzz6ga11a7vgic0201wsvb";
+  };
+
+  patches = [ ./go-mod.patch ];
+
+  vendorSha256 = "1zq7b0zn24cbrjssk4g03i90szp1ms7ila4khwcm7hp9n1py245s";
+
+  meta = with lib; {
+    description = "Utility helping to discover large files/folders";
+    homepage = "https://github.com/viktomas/godu";
+    license = licenses.mit;
+    maintainers = with maintainers; [ rople380 ];
+  };
+}
diff --git a/pkgs/tools/misc/godu/go-mod.patch b/pkgs/tools/misc/godu/go-mod.patch
new file mode 100644
index 0000000000000..2b3efe6be604a
--- /dev/null
+++ b/pkgs/tools/misc/godu/go-mod.patch
@@ -0,0 +1,33 @@
+diff --git a/go.mod b/go.mod
+index cf8f2fb..e405e03 100644
+--- a/go.mod
++++ b/go.mod
+@@ -5,5 +5,6 @@ go 1.14
+ require (
+ 	github.com/gdamore/tcell v1.1.1
+ 	github.com/gosuri/uilive v0.0.0-20170323041506-ac356e6e42cd
++	github.com/mattn/go-isatty v0.0.12 // indirect
+ 	github.com/stretchr/testify v1.3.0
+ )
+diff --git a/go.sum b/go.sum
+index 23c1232..e25c87e 100644
+--- a/go.sum
++++ b/go.sum
+@@ -8,6 +8,8 @@ github.com/gosuri/uilive v0.0.0-20170323041506-ac356e6e42cd h1:1e+0Z+T4t1mKL5xxv
+ github.com/gosuri/uilive v0.0.0-20170323041506-ac356e6e42cd/go.mod h1:qkLSc0A5EXSP6B04TrN4oQoxqFI7A8XvoXSlJi8cwk8=
+ github.com/lucasb-eyer/go-colorful v0.0.0-20181028223441-12d3b2882a08 h1:5MnxBC15uMxFv5FY/J/8vzyaBiArCOkMdFT9Jsw78iY=
+ github.com/lucasb-eyer/go-colorful v0.0.0-20181028223441-12d3b2882a08/go.mod h1:NXg0ArsFk0Y01623LgUqoqcouGDB+PwCCQlrwrG6xJ4=
++github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY=
++github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
+ github.com/mattn/go-runewidth v0.0.4 h1:2BvfKmzob6Bmd4YsL0zygOqfdFnK7GR4QL06Do4/p7Y=
+ github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
+ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
+@@ -16,6 +18,8 @@ github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4=
+ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+ github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
+ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
++golang.org/x/sys v0.0.0-20200116001909-b77594299b42 h1:vEOn+mP2zCOVzKckCZy6YsCtDblrpj/w7B9nxGNELpg=
++golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+ golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
+ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+ gopkg.in/DATA-DOG/go-sqlmock.v1 v1.3.0 h1:FVCohIoYO7IJoDDVpV2pdq7SgrMH6wHnuTyrdrxJNoY=
\ No newline at end of file
diff --git a/pkgs/tools/misc/kdecoration-viewer/default.nix b/pkgs/tools/misc/kdecoration-viewer/default.nix
deleted file mode 100644
index 53b1763ad6a1e..0000000000000
--- a/pkgs/tools/misc/kdecoration-viewer/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ stdenv, fetchFromGitHub, mkDerivation
-, cmake, extra-cmake-modules, qtquickcontrols, kconfigwidgets, kdeclarative, kdecoration }:
-
-mkDerivation {
-  name = "kdecoration-viewer-2018-07-24";
-
-  src = fetchFromGitHub {
-    owner = "KDE";
-    repo = "kdecoration-viewer";
-    rev = "6e50b39c651bbf92fd7e7116d43bf57288254288";
-    sha256 = "01v6i081vx0mydqvnj05xli86m52v6bxxc3z1zlyyap9cfhag7lj";
-  };
-
-  nativeBuildInputs = [ cmake extra-cmake-modules ];
-  buildInputs = [ qtquickcontrols kconfigwidgets kdeclarative kdecoration ];
-
-  meta = with stdenv.lib; {
-    description = "Allows to preview a KDecoration plugin";
-    longDescription = ''
-      kdecoration-viewer allows to preview a KDecoration plugin. Put your plugins under
-      $QT_PLUGIN_PATH/org.kde.kdecoration2 to preview.
-    '';
-    homepage = "https://blog.martin-graesslin.com/blog/2014/07/kdecoration2-the-road-ahead/";
-    license = licenses.gpl2;
-    maintainers = [ maintainers.gnidorah ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/tools/misc/mbuffer/default.nix b/pkgs/tools/misc/mbuffer/default.nix
index 8b1cb938fb742..d86f824b87fa4 100644
--- a/pkgs/tools/misc/mbuffer/default.nix
+++ b/pkgs/tools/misc/mbuffer/default.nix
@@ -12,6 +12,14 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ openssl ];
+
+  # The mbuffer configure scripts fails to recognize the correct
+  # objdump binary during cross-building for foreign platforms.
+  # The correct objdump is exposed via the environment variable
+  # $OBJDUMP, which should be used in such cases.
+  preConfigure = stdenv.lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
+    substituteInPlace configure --replace "OBJDUMP=$ac_cv_path_OBJDUMP" 'OBJDUMP=''${OBJDUMP}'
+  '';
   doCheck = true;
 
   meta = {
diff --git a/pkgs/tools/misc/oppai-ng/default.nix b/pkgs/tools/misc/oppai-ng/default.nix
index 46b2fd444ec49..e44999d1c3487 100644
--- a/pkgs/tools/misc/oppai-ng/default.nix
+++ b/pkgs/tools/misc/oppai-ng/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "oppai-ng";
-  version = "3.2.3";
+  version = "3.3.0";
 
   src = fetchFromGitHub {
     owner = "Francesco149";
     repo = pname;
     rev = version;
-    sha256 = "1wrnpnx1yl0pdzmla4knlpcwy7baamy2wpdypnbdqxrn0zkw7kzk";
+    sha256 = "0ymprwyv92pr58851wzryymhfznnpwcbg4m1yri0c9cyzvabwmfk";
   };
 
   buildPhase = ''
diff --git a/pkgs/tools/misc/pspg/default.nix b/pkgs/tools/misc/pspg/default.nix
index 63acdbfc13b21..4af7a0009af52 100644
--- a/pkgs/tools/misc/pspg/default.nix
+++ b/pkgs/tools/misc/pspg/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pspg";
-  version = "3.1.2";
+  version = "3.1.3";
 
   src = fetchFromGitHub {
     owner = "okbob";
     repo = pname;
     rev = version;
-    sha256 = "1x4x93c8qqalrhaah1rmrspr4gjcgf1sg6kplf9rg1c42mk672f8";
+    sha256 = "16pajhzr4aahyhdzkp9g3ld2insnlk2z2w2pfab8bghw4f69j5xf";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/tools/misc/rpm-ostree/default.nix b/pkgs/tools/misc/rpm-ostree/default.nix
index e04d37ba3c6bd..d1aaf23a6ece6 100644
--- a/pkgs/tools/misc/rpm-ostree/default.nix
+++ b/pkgs/tools/misc/rpm-ostree/default.nix
@@ -40,13 +40,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rpm-ostree";
-  version = "2020.2";
+  version = "2020.4";
 
   outputs = [ "out" "dev" "man" "devdoc" ];
 
   src = fetchurl {
     url = "https://github.com/coreos/${pname}/releases/download/v${version}/${pname}-${version}.tar.xz";
-    sha256 = "nuEBEVFqr9J+Nf98GZkvNNYOtpMUjKzYrzCc1T2cR3A=";
+    sha256 = "019hjmfjhnvlrnb056fvznnsasnyw5awd594aa2126nbsi1j45dc";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/tealdeer/default.nix b/pkgs/tools/misc/tealdeer/default.nix
index 311f43fdb2aeb..4f0677846eaf3 100644
--- a/pkgs/tools/misc/tealdeer/default.nix
+++ b/pkgs/tools/misc/tealdeer/default.nix
@@ -9,16 +9,16 @@
 
 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 = if stdenv.isDarwin then [ Security ] else [ openssl ];
 
diff --git a/pkgs/tools/misc/thin-provisioning-tools/default.nix b/pkgs/tools/misc/thin-provisioning-tools/default.nix
index 0aba67647e0bd..8df030eafadb8 100644
--- a/pkgs/tools/misc/thin-provisioning-tools/default.nix
+++ b/pkgs/tools/misc/thin-provisioning-tools/default.nix
@@ -1,33 +1,19 @@
-{ stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, expat, libaio, boost }:
+{ stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, expat, libaio, boost, binutils }:
 
 stdenv.mkDerivation rec {
   pname = "thin-provisioning-tools";
-  version = "0.7.6";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "jthornber";
     repo = "thin-provisioning-tools";
     rev = "v${version}";
-    sha256 = "175mk3krfdmn43cjw378s32hs62gq8fmq549rjmyc651sz6jnj0g";
+    sha256 = "1iwg04rhmdhijmlk5hfl8wvv83115lzb65if6cc1glkkfva8jfjp";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
 
-  buildInputs = [ expat libaio boost ];
-
-  patches = [
-    (fetchpatch {
-      # a) Fix build if limits.h provides definition for PAGE_SIZE, as musl does w/musl per XSI[1] although it's apparently optional [2].
-      #    This value is only provided when it's known to be a constant, to avoid the need to discover the value dynamically.
-      # b) If not using system-provided (kernel headers, or libc headers, or something) use the POSIX approach of querying the value
-      #    dynamically using sysconf(_SC_PAGE_SIZE) instead of hardcoded value that hopefully is correct.
-      # [1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html
-      # [2] http://www.openwall.com/lists/musl/2015/09/11/8
-      url = "https://raw.githubusercontent.com/void-linux/void-packages/a0ece13ad7ab2aae760e09e41e0459bd999a3695/srcpkgs/thin-provisioning-tools/patches/musl.patch";
-      sha256 = "1m8r3vhrnsy8drgs0svs3fgpi3mmxzdcqsv6bmvc0j52cvfqvhvy";
-      extraPrefix = ""; # empty means add 'a/' and 'b/'
-    })
-  ];
+  buildInputs = [ expat libaio boost binutils ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index 07dae0b9600a5..5803de7b52f7d 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -18,11 +18,11 @@ buildPythonPackage rec {
   # The websites youtube-dl deals with are a very moving target. That means that
   # downloads break constantly. Because of that, updates should always be backported
   # to the latest stable release.
-  version = "2020.07.28";
+  version = "2020.09.06";
 
   src = fetchurl {
     url = "https://yt-dl.org/downloads/${version}/${pname}-${version}.tar.gz";
-    sha256 = "1if7xyi7g9rpni1jbs7gv5m12s34qdb15dpfbbjn8120h16y7cqz";
+    sha256 = "1827hcp9bvwq7p2f5r0wgkg6yb5fgvr4miyi3d99hkah2afw12za";
   };
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
diff --git a/pkgs/tools/misc/yubikey-manager-qt/default.nix b/pkgs/tools/misc/yubikey-manager-qt/default.nix
index 8ebbe75d686a0..01454b48254c6 100644
--- a/pkgs/tools/misc/yubikey-manager-qt/default.nix
+++ b/pkgs/tools/misc/yubikey-manager-qt/default.nix
@@ -20,11 +20,11 @@ let inherit (stdenv) lib; in
 
 stdenv.mkDerivation rec {
   pname = "yubikey-manager-qt";
-  version = "1.1.4";
+  version = "1.1.5";
 
   src = fetchurl {
     url = "https://developers.yubico.com/${pname}/Releases/${pname}-${version}.tar.gz";
-    sha256 = "0rbr72741q7fqkr9qmvgj2mi6192ayz7bl935q2bsnqils4wsa3f";
+    sha256 = "1yimlaqvhq34gw6wkqgil0qq8x9zbfzh4psqihjr2d9jaa2wygwy";
   };
 
   nativeBuildInputs = [ wrapQtAppsHook python3.pkgs.wrapPython qmake ];
diff --git a/pkgs/tools/networking/amass/default.nix b/pkgs/tools/networking/amass/default.nix
index b690b63ef4bd6..d3aa432a45e15 100644
--- a/pkgs/tools/networking/amass/default.nix
+++ b/pkgs/tools/networking/amass/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "amass";
-  version = "3.8.2";
+  version = "3.10.1";
 
   src = fetchFromGitHub {
     owner = "OWASP";
     repo = "Amass";
     rev = "v${version}";
-    sha256 = "0hm5h8glva0d9mj870j56bc721w4br7dzwhns096rgzyv93m7rx0";
+    sha256 = "1djkryx8bz2rg0iqqb30jb122ydiyli2i9xsvcdmd42c47hxg46y";
   };
 
-  vendorSha256 = "1g3jbdx7m5m56ifcc1p6hgz2wzmb287cyyaiz03ffdvwd3k73k4j";
+  vendorSha256 = "0c3hyvy8s470zvrv49fx0iil59z0xq10dw4vnr55qgbm2k2pay6w";
 
   doCheck = false;
 
diff --git a/pkgs/tools/networking/bandwhich/default.nix b/pkgs/tools/networking/bandwhich/default.nix
index 31efdaddb7403..7e815c6ccf07f 100644
--- a/pkgs/tools/networking/bandwhich/default.nix
+++ b/pkgs/tools/networking/bandwhich/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "bandwhich";
-  version = "0.16.0";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "imsnif";
     repo = pname;
     rev = version;
-    sha256 = "074bgdgv6flg5xjzk7sxgqsy89ygnx7swhaqz75vvrcpx9ldysvz";
+    sha256 = "0fhy3zys41bkpjmvhkxf413004hvv2kngcgf4819mw22w14zfvgr";
   };
 
-  cargoSha256 = "0aq3k64g04l03h42cnnpljqffkkl1gdg6r5rqi237h0jrhci8c7w";
+  cargoSha256 = "015ff049xb699gig0cwr5i7n8hgw1316dkdpnqd4843h54x7bp5y";
 
   buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
 
diff --git a/pkgs/tools/networking/croc/default.nix b/pkgs/tools/networking/croc/default.nix
index ed4f7a5f704ff..54dd51ba9189a 100644
--- a/pkgs/tools/networking/croc/default.nix
+++ b/pkgs/tools/networking/croc/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "croc";
-  version = "8.0.13";
+  version = "8.3.0";
 
   src = fetchFromGitHub {
     owner = "schollz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0vinccakinp996kqzry8irk7sf4djajxdfmpy982dl5y45491l4a";
+    sha256 = "0kl6sbq0lzrvf4wzz5bvz81ncmfw5lm7pjr2r2xx4sws1w006nq2";
   };
 
-  vendorSha256 = "1d6gg7c0rb45zy9rilacn2xyr3kcb7acsh389hk6lppipmhpzr5a";
+  vendorSha256 = "0qfrc3c4fsg3w2zcpdr93ilknxhshcysvin029va154sq3zmggbn";
 
   doCheck = false;
 
diff --git a/pkgs/tools/networking/dnsproxy/default.nix b/pkgs/tools/networking/dnsproxy/default.nix
index 8f231935ee370..8f279ff688afa 100644
--- a/pkgs/tools/networking/dnsproxy/default.nix
+++ b/pkgs/tools/networking/dnsproxy/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "dnsproxy";
-  version = "0.31.0";
+  version = "0.32.0";
 
   src = fetchFromGitHub {
     owner = "AdguardTeam";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1jyik1022iv8nqjfrv3lkvcpr8zsaxfx8hi7yagklbs6vzlg80jg";
+    sha256 = "14iwwg1iqfxjhpw9p3ddq53l901v9l9n2r60q9q6jls8hfqcgsnj";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/tools/networking/goreplay/default.nix b/pkgs/tools/networking/goreplay/default.nix
new file mode 100644
index 0000000000000..3daa6a983b242
--- /dev/null
+++ b/pkgs/tools/networking/goreplay/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, libpcap }:
+
+buildGoPackage rec {
+  pname = "goreplay";
+  version = "1.1.0";
+  rev = "v${version}";
+
+  goPackagePath = "github.com/buger/goreplay";
+
+  src = fetchFromGitHub {
+    inherit rev;
+    owner  = "buger";
+    repo   = "goreplay";
+    sha256 = "07nsrx5hwmk6l8bqp48gqk40i9bxf0g4fbmpqbngx6j5f7lpbk2n";
+  };
+
+  buildInputs = [ libpcap ];
+
+  meta = {
+    homepage = "https://github.com/buger/goreplay";
+    license = stdenv.lib.licenses.lgpl3Only;
+    description = "GoReplay is an open-source tool for capturing and replaying live HTTP traffic.";
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = with stdenv.lib.maintainers; [ lovek323 ];
+  };
+}
diff --git a/pkgs/tools/networking/i2p/default.nix b/pkgs/tools/networking/i2p/default.nix
index 681d5d0e7a973..4371d37391bed 100644
--- a/pkgs/tools/networking/i2p/default.nix
+++ b/pkgs/tools/networking/i2p/default.nix
@@ -2,11 +2,11 @@
 
 let wrapper = stdenv.mkDerivation rec {
   pname = "wrapper";
-  version = "3.5.35";
+  version = "3.5.43";
 
   src = fetchurl {
     url = "https://wrapper.tanukisoftware.com/download/${version}/wrapper_${version}_src.tar.gz";
-    sha256 = "0mjyw9ays9v6lnj21pmfd3qdvd9b6rwxfmw3pg6z0kyf2jadixw2";
+    sha256 = "19cx3854rk7b2056z8pvxnf4simsg5js7czsy2bys7jl6vh2x02b";
   };
 
   buildInputs = [ jdk ];
@@ -32,11 +32,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "i2p";
-  version = "0.9.42";
+  version = "0.9.47";
 
   src = fetchurl {
     url = "https://download.i2p2.de/releases/${version}/i2psource_${version}.tar.bz2";
-    sha256 = "04y71hzkdpjzbac569rhyg1zfx37j0alggbl9gnkaqfbprb2nj1h";
+    sha256 = "0krcdm73qing7z918wpml9sk6dn0284wps2ghkmlrdaklfkavk6v";
   };
 
   buildInputs = [ jdk ant gettext which ];
@@ -77,6 +77,6 @@ stdenv.mkDerivation rec {
     homepage = "https://geti2p.net";
     license = licenses.gpl2;
     platforms = [ "x86_64-linux" "i686-linux" ];
-    maintainers = [ maintainers.joelmo ];
+    maintainers = with maintainers; [ joelmo ];
   };
 }
diff --git a/pkgs/tools/networking/i2p/i2p.patch b/pkgs/tools/networking/i2p/i2p.patch
index 74031eb7aef71..3bb4da729173c 100644
--- a/pkgs/tools/networking/i2p/i2p.patch
+++ b/pkgs/tools/networking/i2p/i2p.patch
@@ -19,7 +19,7 @@ index eb4995dfe..0186cede3 100644
  
  # Try using the Java binary that I2P was installed with.
  # If it's not found, try looking in the system PATH.
--JAVA=$(which %JAVA_HOME/bin/java || which java)
+-JAVA=$(which "%JAVA_HOME"/bin/java || which java)
 +JAVA=%JAVA%
  
  if [ -z $JAVA ] || [ ! -x $JAVA ]; then
diff --git a/pkgs/tools/networking/i2pd/default.nix b/pkgs/tools/networking/i2pd/default.nix
index b686ea4d04f22..5f9f3ceef07b1 100644
--- a/pkgs/tools/networking/i2pd/default.nix
+++ b/pkgs/tools/networking/i2pd/default.nix
@@ -1,8 +1,8 @@
 { stdenv, fetchFromGitHub
 , boost, zlib, openssl
 , upnpSupport ? true, miniupnpc ? null
-, aesniSupport ? false
-, avxSupport ? false
+, aesniSupport ? stdenv.hostPlatform.aesSupport
+, avxSupport   ? stdenv.hostPlatform.avxSupport
 }:
 
 assert upnpSupport -> miniupnpc != null;
diff --git a/pkgs/tools/networking/siege/default.nix b/pkgs/tools/networking/siege/default.nix
index 21b6bd346fd18..7e85973cbdb6b 100644
--- a/pkgs/tools/networking/siege/default.nix
+++ b/pkgs/tools/networking/siege/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, openssl, zlib }:
 
 stdenv.mkDerivation rec {
-  name = "siege-4.0.6";
+  name = "siege-4.0.7";
 
   src = fetchurl {
     url = "http://download.joedog.org/siege/${name}.tar.gz";
-    sha256 = "03w0iska74nb6r8wnljn7inasbq7qflf55vjmxnb9jrc4pi7mpnw";
+    sha256 = "1y3dnl1ziw0c0d4nw30aj0sdmjvarn4xfxgfkswffwnkm8z5p9xz";
   };
 
   NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
diff --git a/pkgs/tools/networking/toss/default.nix b/pkgs/tools/networking/toss/default.nix
new file mode 100644
index 0000000000000..9752dcc4f64be
--- /dev/null
+++ b/pkgs/tools/networking/toss/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "toss";
+  version = "1.1";
+  src = fetchFromGitHub {
+    owner = "zerotier";
+    repo = pname;
+    rev = version;
+    sha256 = "05ql0d8wbdhnmh3dw8ch5bi6clfb9h8v21lq2a74iy02slya2y0r";
+  };
+  preInstall = "export DESTDIR=$out/bin";
+  meta = with stdenv.lib;
+    src.meta // {
+      description = "Dead simple LAN file transfers from the command line";
+      license = with licenses; [ mit ];
+      maintainers = with maintainers; [ ehmry ];
+      platforms = platforms.unix;
+    };
+}
diff --git a/pkgs/tools/networking/unbound/default.nix b/pkgs/tools/networking/unbound/default.nix
index 39a7b11f09f13..4ee330eb91863 100644
--- a/pkgs/tools/networking/unbound/default.nix
+++ b/pkgs/tools/networking/unbound/default.nix
@@ -30,6 +30,8 @@ stdenv.mkDerivation rec {
     "--with-rootkey-file=${dns-root-data}/root.key"
     "--enable-pie"
     "--enable-relro-now"
+  ] ++ stdenv.lib.optional stdenv.hostPlatform.isStatic [
+    "--disable-flto"
   ];
 
   installFlags = [ "configfile=\${out}/etc/unbound/unbound.conf" ];
diff --git a/pkgs/tools/networking/zssh/default.nix b/pkgs/tools/networking/zssh/default.nix
index 720c43ccc2d72..945c96ae8511c 100644
--- a/pkgs/tools/networking/zssh/default.nix
+++ b/pkgs/tools/networking/zssh/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, readline, deepin }:
+{ stdenv, fetchurl, readline }:
 
 let
   version = "1.5c";
@@ -33,7 +33,7 @@ in stdenv.mkDerivation rec {
     description = "SSH and Telnet client with ZMODEM file transfer capability";
     homepage = "http://zssh.sourceforge.net/";
     license = stdenv.lib.licenses.gpl2;
-    maintainers = deepin.deepin-terminal.meta.maintainers; # required by deepin-terminal
+    maintainers = [ ]; # required by deepin-terminal
     platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/security/1password-gui/default.nix b/pkgs/tools/security/1password-gui/default.nix
index ee0bee8b8b728..91052f945ede4 100644
--- a/pkgs/tools/security/1password-gui/default.nix
+++ b/pkgs/tools/security/1password-gui/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "1password";
-  version = "0.8.3-1";
+  version = "0.8.4";
 
   src = fetchurl {
     url = "https://onepassword.s3.amazonaws.com/linux/appimage/${pname}-${version}.AppImage";
-    sha256 = "06kzvdqsd7viaj7qz0ywi4k85662084cx73psk1b2hphklvdl24c";
+    sha256 = "04rjlyi465pkg75pql3rfzmfj9zf8pfnxynz110x1wkqnvqmsxgw";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/security/doppler/default.nix b/pkgs/tools/security/doppler/default.nix
index b637eacd3da1a..847d5d0cafb33 100644
--- a/pkgs/tools/security/doppler/default.nix
+++ b/pkgs/tools/security/doppler/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "doppler";
-  version = "3.10.1";
+  version = "3.10.3";
 
   src = fetchFromGitHub {
     owner = "dopplerhq";
     repo = "cli";
     rev = version;
-    sha256 = "0wzs480dg6q6j8jzhk5lkf5hs53jf7ljmnyw3i9xwqm9sxq7dsfx";
+    sha256 = "15wmg67wwwgrs8q45r1z98k9v7mf2bfgsa40gcf8dr18ilnfpbn4";
   };
 
   vendorSha256 = "0wqbwk72k4r30a3vnf0gnx3k97y8xgnr2iavk5bc8f8vkjv0bsv6";
diff --git a/pkgs/tools/security/fail2ban/default.nix b/pkgs/tools/security/fail2ban/default.nix
index 6377e829aa657..c27f82d70536b 100644
--- a/pkgs/tools/security/fail2ban/default.nix
+++ b/pkgs/tools/security/fail2ban/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, python3, gamin }:
+{ stdenv, fetchFromGitHub, python3 }:
 
 let version = "0.11.1"; in
 
diff --git a/pkgs/tools/security/honggfuzz/default.nix b/pkgs/tools/security/honggfuzz/default.nix
index ce86e11710045..71146b15ea3d3 100644
--- a/pkgs/tools/security/honggfuzz/default.nix
+++ b/pkgs/tools/security/honggfuzz/default.nix
@@ -5,14 +5,20 @@
 let
   honggfuzz = stdenv.mkDerivation rec {
     pname = "honggfuzz";
-    version = "2.2";
+    version = "2.3.1";
 
     src = fetchFromGitHub {
       owner = "google";
       repo = pname;
       rev = "${version}";
-      sha256 = "0ycpx087mhv5s7w01chg2b6rfb3zgfpp9in0x73kpv7y4dcvg7gw";
+      sha256 = "0dcl5a5jykgfmnfj42vl7kah9k26wg38l2g6yfh5pssmlf0nax33";
     };
+
+    postPatch = ''
+      substituteInPlace hfuzz_cc/hfuzz-cc.c \
+        --replace '"clang' '"${clang}/bin/clang'
+    '';
+
     enableParallelBuilding = true;
 
     nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/security/saml2aws/default.nix b/pkgs/tools/security/saml2aws/default.nix
index 940e67013eec2..fc52662e536fb 100644
--- a/pkgs/tools/security/saml2aws/default.nix
+++ b/pkgs/tools/security/saml2aws/default.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "saml2aws";
-  version = "2.26.2";
+  version = "2.27.0";
 
   src = fetchFromGitHub {
     owner = "Versent";
     repo = "saml2aws";
     rev = "v${version}";
-    sha256 = "0y5gvdrdr6i9spdwsxvzs1bxs32icxpkqxnglp1bf4gglc580d87";
+    sha256 = "15ddzab93iqwbvxnaw5wp4dzwlxjqxvyy1c4w37jm69zkczylrmc";
   };
 
   runVend = true;
-  vendorSha256 = "1kzihyx44sx6php4z58fzy6c3g0y713939yzxpgk3n03snn2x8sf";
+  vendorSha256 = "1w7vnpv36lhxpaljdhslbckkr7p81nzc91a0503wk8nrrc4ljsyy";
 
   doCheck = false;
 
diff --git a/pkgs/tools/security/sshguard/default.nix b/pkgs/tools/security/sshguard/default.nix
index bad1c9fd16d59..6c2298f6729f5 100644
--- a/pkgs/tools/security/sshguard/default.nix
+++ b/pkgs/tools/security/sshguard/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, autoreconfHook, yacc, flex}:
 
 stdenv.mkDerivation rec {
-  version = "2.4.0";
+  version = "2.4.1";
   pname = "sshguard";
 
   src = fetchurl {
     url = "mirror://sourceforge/sshguard/${pname}-${version}.tar.gz";
-    sha256 = "1h6n2xyh58bshplbdqlr9rbnf3lz7nydnq5m2hkq15is3c4s8p06";
+    sha256 = "0rrwmx91ifvc61wkld8gjkmfsq0ixxmf7m8fg4addkkxwvk04pc7";
   };
 
   doCheck = true;
diff --git a/pkgs/tools/security/vault/default.nix b/pkgs/tools/security/vault/default.nix
index a9d72f33161f8..eb999b5cedcb4 100644
--- a/pkgs/tools/security/vault/default.nix
+++ b/pkgs/tools/security/vault/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "vault";
-  version = "1.5.2";
+  version = "1.5.3";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "vault";
     rev = "v${version}";
-    sha256 = "0a16slrg0kx7i1xwixc920lkgbbywvb6wpmkbqjvz1xx72nq9ap4";
+    sha256 = "149if5s4rdpxgzakh8s79j1fcfcqk1w7gvgchc044xlicl1r49ic";
   };
 
   goPackagePath = "github.com/hashicorp/vault";
diff --git a/pkgs/tools/security/vault/vault-bin.nix b/pkgs/tools/security/vault/vault-bin.nix
index 315cd5ab077a1..b8a70eb82f94f 100644
--- a/pkgs/tools/security/vault/vault-bin.nix
+++ b/pkgs/tools/security/vault/vault-bin.nix
@@ -1,30 +1,30 @@
 { stdenv, fetchurl, unzip }:
 
 let
-  version = "1.5.2";
+  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 = "1m9svs1ncgdwwh16xavwikq4ji9rzkb2wlr59sx61rlz0l18mknd";
+      sha256 = "1chhi7piq04j8rgk15rcszqqp37xd9cjj67plr5pgvdps3s1zihy";
     };
     i686-linux = fetchurl {
       url = "${base}/vault_${version}_linux_386.zip";
-      sha256 = "0hd6gsrmjfly3075kq0rsxhgy927g1462qih0iiwphrhik7l0pwr";
+      sha256 = "0jbnvypapang025wfyj6i70jdz3g29ggg7rzmg8xh6gfyhwk3vmb";
     };
     x86_64-darwin = fetchurl {
       url = "${base}/vault_${version}_darwin_amd64.zip";
-      sha256 = "092xqjm69ljn70hn9f93qkc0ila0hgj2l14plhsza52d924qnq3l";
+      sha256 = "1m54258lfdr79p2j8janbkhp0a8bs8xbrcr51lqx2s620n7sfbya";
     };
     i686-darwin = fetchurl {
       url = "${base}/vault_${version}_darwin_386.zip";
-      sha256 = "161j15n6kfd3m5hakc0qn824kp0nwdghcm81j9vqzpq900sbg6ak";
+      sha256 = "038qkkhlwj86fz9vpcycvv5nb41y8mqypqvhfp0ia11birp8xlsr";
     };
     aarch64-linux = fetchurl {
       url = "${base}/vault_${version}_linux_arm64.zip";
-      sha256 = "1f6ckfqqj9gsaizwxa7xrjgkkj3nd6m1md7smz0xnxgnc4f7g4z0";
+      sha256 = "1vivkwcy9j9zs7w65k7y8chix8jnii5pz8zck6rlpwgz5vs0h04k";
     };
   };
 
diff --git a/pkgs/tools/system/ddrescueview/default.nix b/pkgs/tools/system/ddrescueview/default.nix
index 838873b7557f8..6c8e9c56cdc97 100644
--- a/pkgs/tools/system/ddrescueview/default.nix
+++ b/pkgs/tools/system/ddrescueview/default.nix
@@ -1,20 +1,24 @@
 { stdenv, lib, fetchurl, fpc, lazarus, atk, cairo, gdk-pixbuf, glib, gtk2, libX11, pango }:
 
-stdenv.mkDerivation rec {
-  name = "ddrescueview-0.4alpha3";
+let
+  versionBase = "0.4";
+  versionSuffix = "alpha4";
+in stdenv.mkDerivation rec {
+  pname = "ddrescueview";
+  version = "${versionBase}${versionSuffix}";
+  name = "ddrescueview-0.4alpha4";
 
   src = fetchurl {
-    name = "${name}.tar.xz";
-    url = "mirror://sourceforge/ddrescueview/ddrescueview-source-0.4%7Ealpha3.tar.xz";
-    sha256 = "0603jisxkswfyh93s3i20f8ns4yf83dmgmy0lg5001rvaw9mkw9j";
+    name = "ddrescueview-${versionBase}${versionSuffix}.tar.xz";
+    url = "mirror://sourceforge/ddrescueview/ddrescueview-source-${versionBase}~${versionSuffix}.tar.xz";
+    sha256 = "0v159nlc0lrqznbbwi7zda619is5h2rjk55gz6cl807j0kd19ycc";
   };
+  sourceRoot = "ddrescueview-source-${versionBase}~${versionSuffix}/source";
 
   nativeBuildInputs = [ fpc lazarus ];
 
   buildInputs = [ atk cairo gdk-pixbuf glib gtk2 libX11 pango ];
 
-  sourceRoot = "source";
-
   NIX_LDFLAGS = "--as-needed -rpath ${lib.makeLibraryPath buildInputs}";
 
   buildPhase = ''
@@ -24,9 +28,8 @@ stdenv.mkDerivation rec {
   installPhase = ''
     install -Dt $out/bin ddrescueview
     cd ../resources/linux
-    install -Dt $out/share/applications ddrescueview.desktop
-    install -Dt $out/share/icons/hicolor/32x32/apps ddrescueview.xpm
-    install -Dt $out/share/man/man1 ddrescueview.1
+    mkdir -p "$out/share"
+    cp -ar applications icons man $out/share
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/system/htop/default.nix b/pkgs/tools/system/htop/default.nix
index 2d86894808c42..fe4622f3381ea 100644
--- a/pkgs/tools/system/htop/default.nix
+++ b/pkgs/tools/system/htop/default.nix
@@ -1,28 +1,18 @@
 { lib, fetchFromGitHub, stdenv, autoreconfHook
 , ncurses, IOKit, python3
-, fetchpatch
 }:
 
 stdenv.mkDerivation rec {
   pname = "htop";
-  version = "3.0.0";
+  version = "3.0.1";
 
   src = fetchFromGitHub {
     owner = "htop-dev";
     repo = pname;
     rev = version;
-    sha256 = "096gdnpaszs5rfp7qj8npi2jkvdqpp8mznn89f97ykrg6pgagwq4";
+    sha256 = "0kjlphdvwwbj91kk91s4ksc954d3c2bznddzx2223jmb1bn9rcsa";
   };
 
-  patches = [
-    # Never use glyphs for checkmarks. Issue - https://github.com/htop-dev/htop/issues/29
-    # Remove with the next release.
-    (fetchpatch {
-      url = "https://github.com/htop-dev/htop/commit/96074058278829facb86f6f4de099d56a00a0c0e.patch";
-      sha256 = "1rnfvjfsvfgr1s7kzr1hk6nwik6shcq4mg6dlbgdq0f2fz0cnazk";
-    })
-  ];
-
   nativeBuildInputs = [ autoreconfHook python3 ];
 
   buildInputs = [ ncurses
diff --git a/pkgs/tools/system/netdata/default.nix b/pkgs/tools/system/netdata/default.nix
index e5316e028dbe0..752721689baa4 100644
--- a/pkgs/tools/system/netdata/default.nix
+++ b/pkgs/tools/system/netdata/default.nix
@@ -1,6 +1,7 @@
 { stdenv, callPackage, fetchFromGitHub, autoreconfHook, pkgconfig
 , CoreFoundation, IOKit, libossp_uuid
 , curl, libcap,  libuuid, lm_sensors, zlib, fetchpatch
+, nixosTests
 , withCups ? false, cups
 , withDBengine ? true, libuv, lz4, judy
 , withIpmi ? (!stdenv.isDarwin), freeipmi
@@ -14,14 +15,14 @@ with stdenv.lib;
 let
   go-d-plugin = callPackage ./go.d.plugin.nix {};
 in stdenv.mkDerivation rec {
-  version = "1.23.2";
+  version = "1.24.0";
   pname = "netdata";
 
   src = fetchFromGitHub {
     owner = "netdata";
     repo = "netdata";
     rev = "v${version}";
-    sha256 = "1vv92plk9dxk6fl76ik1zralpzc35ymrfyrf1cr6pv8q3agyy5k4";
+    sha256 = "19zr2wlsc8rbw6a7vjy4ivgq71l34lh70pcgwa0k5sp1vryj7r3d";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
@@ -36,12 +37,6 @@ in stdenv.mkDerivation rec {
 
   patches = [
     ./no-files-in-etc-and-var.patch
-  ] ++ stdenv.lib.optionals (!stdenv.cc.isGNU) [
-    # fix memcpy typo for non-gnu. Remove with the next release.
-    (fetchpatch {
-      url = "https://github.com/netdata/netdata/commit/da7f267196b489e9a75724b68897e8f2e6137d72.patch";
-      sha256 = "1j2sa06j6v491nw58bjx5nqqyfi1n2n9z3p3jiy4yh74m3asldlv";
-    })
   ];
 
   NIX_CFLAGS_COMPILE = optionalString withDebug "-O1 -ggdb -DNETDATA_INTERNAL_CHECKS=1";
@@ -77,6 +72,8 @@ in stdenv.mkDerivation rec {
     rm -r $out/sbin
   '';
 
+  passthru.tests.netdata = nixosTests.netdata;
+
   meta = {
     description = "Real-time performance monitoring tool";
     homepage = "https://my-netdata.io/";
@@ -84,5 +81,4 @@ in stdenv.mkDerivation rec {
     platforms = platforms.unix;
     maintainers = [ maintainers.lethalman ];
   };
-
 }
diff --git a/pkgs/tools/system/pciutils/default.nix b/pkgs/tools/system/pciutils/default.nix
index 4bbe2bdcee0a5..1814d4b9765fe 100644
--- a/pkgs/tools/system/pciutils/default.nix
+++ b/pkgs/tools/system/pciutils/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, fetchurl, pkgconfig, zlib, kmod, which }:
+{ stdenv, fetchurl, pkgconfig, zlib, kmod, which
+, static ? stdenv.targetPlatform.isStatic
+}:
 
 stdenv.mkDerivation rec {
   name = "pciutils-3.7.0"; # with release-date database
@@ -12,7 +14,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ zlib kmod which ];
 
   makeFlags = [
-    "SHARED=yes"
+    "SHARED=${if static then "no" else "yes"}"
     "PREFIX=\${out}"
     "STRIP="
     "HOST=${stdenv.hostPlatform.system}"
diff --git a/pkgs/tools/system/stress-ng/default.nix b/pkgs/tools/system/stress-ng/default.nix
index d9953b7cdb54a..9939f9ea15428 100644
--- a/pkgs/tools/system/stress-ng/default.nix
+++ b/pkgs/tools/system/stress-ng/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "stress-ng";
-  version = "0.11.14";
+  version = "0.11.19";
 
   src = fetchurl {
     url = "https://kernel.ubuntu.com/~cking/tarballs/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0sqka2ns9xqma9wa67in4vrd15q0rz62gblmzniq5i4xppykc55j";
+    sha256 = "0s08qahjc68h5qhnahmb9z19l51p5sw2pmzrlknq1j5900zpa2x5";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/text/mdcat/default.nix b/pkgs/tools/text/mdcat/default.nix
index 0d5f878af0839..277c7417ce969 100644
--- a/pkgs/tools/text/mdcat/default.nix
+++ b/pkgs/tools/text/mdcat/default.nix
@@ -2,19 +2,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdcat";
-  version = "0.20.0";
+  version = "0.21.1";
 
   src = fetchFromGitHub {
     owner = "lunaryorn";
     repo = pname;
     rev = "mdcat-${version}";
-    hash = "sha256-1qxz6p7VaJ9eMcLQaTW/M4+Xo0WLihzyEAycbkjjPyA=";
+    hash = "sha256-O7LlbSkxcyHQiTHYB/QBJVlShzTSzud3VJDIQ1ScvM4=";
   };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ openssl ] ++ stdenv.lib.optional stdenv.isDarwin Security;
 
-  cargoSha256 = "sha256-/mAwlxed1MOFUA1jDSrgPzJuURbKzwucBWORVVHlrt8=";
+  cargoSha256 = "sha256-pvhYKyFraMI4w5nq6L8qs/ONSNDTHElhZnZmD5mmAZs=";
 
   checkInputs = [ ansi2html ];
   checkPhase = ''
diff --git a/pkgs/tools/text/ocrmypdf/default.nix b/pkgs/tools/text/ocrmypdf/default.nix
index b7864b05b6e17..bfa22a4fd1825 100644
--- a/pkgs/tools/text/ocrmypdf/default.nix
+++ b/pkgs/tools/text/ocrmypdf/default.nix
@@ -29,14 +29,14 @@ let
 in
 buildPythonApplication rec {
   pname = "ocrmypdf";
-  version = "10.3.0";
+  version = "11.0.1";
   disabled = ! python3Packages.isPy3k;
 
   src = fetchFromGitHub {
     owner = "jbarlow83";
     repo = "OCRmyPDF";
     rev = "v${version}";
-    sha256 = "0c6v7846lmkmbyfla07s35mpba4h09h0fx6pxqf0yvdjxmj46q8c";
+    sha256 = "194ds9i1zd80ynzwgv7kprax0crh7bbchayawdcvg2lyr64a82xn";
   };
 
   nativeBuildInputs = with python3Packages; [
@@ -76,8 +76,6 @@ buildPythonApplication rec {
       src = ./liblept.patch;
       liblept = "${stdenv.lib.getLib leptonica}/lib/liblept${stdenv.hostPlatform.extensions.sharedLibrary}";
     })
-    # https://github.com/jbarlow83/OCRmyPDF/pull/596
-    ./0001-Make-compatible-with-pdfminer.six-version-20200720.patch
   ];
 
   makeWrapperArgs = [ "--prefix PATH : ${stdenv.lib.makeBinPath [ ghostscript jbig2enc pngquant qpdf tesseract4 unpaper ]}" ];
diff --git a/pkgs/tools/text/snippetpixie/default.nix b/pkgs/tools/text/snippetpixie/default.nix
index 0026150774672..5c6025b245e05 100644
--- a/pkgs/tools/text/snippetpixie/default.nix
+++ b/pkgs/tools/text/snippetpixie/default.nix
@@ -19,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 = [
@@ -55,7 +54,6 @@ stdenv.mkDerivation rec {
     dbus
     ibus
     json-glib
-    libwnck3
     xorg.libXtst
     pantheon.granite
     pantheon.elementary-gtk-theme
@@ -83,6 +81,8 @@ stdenv.mkDerivation rec {
       Save your often used text snippets and then expand them whenever you type their abbreviation.
 
       For example:- "spr`" expands to "Snippet Pixie rules!"
+
+      For non-accessible applications such as browsers and Electron apps, there's a shortcut (default is Ctrl+`) for opening a search window that pastes the selected snippet.
     '';
     homepage = "https://www.snippetpixie.com";
     license = licenses.gpl2Plus;
diff --git a/pkgs/tools/text/wgetpaste/default.nix b/pkgs/tools/text/wgetpaste/default.nix
index 9180573541d2a..852175c4f216a 100644
--- a/pkgs/tools/text/wgetpaste/default.nix
+++ b/pkgs/tools/text/wgetpaste/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, wget, bash }:
 
 stdenv.mkDerivation rec {
-  version = "2.29";
+  version = "2.30";
   pname = "wgetpaste";
 
   src = fetchurl {
     url = "http://wgetpaste.zlin.dk/${pname}-${version}.tar.bz2";
-    sha256 = "1rp0wxr3zy7y2xp3azaadfghrx7g0m138f9qg6icjxkkz4vj9r22";
+    sha256 = "14k5i6j6f34hcf9gdb9cnvfwscn0ys2dgd73ci421wj9zzqkbv73";
   };
   # currently zsh-autocompletion support is not installed
 
diff --git a/pkgs/tools/typesetting/lowdown/default.nix b/pkgs/tools/typesetting/lowdown/default.nix
index aa7a8598d667c..017066a2c22b1 100644
--- a/pkgs/tools/typesetting/lowdown/default.nix
+++ b/pkgs/tools/typesetting/lowdown/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lowdown";
-  version = "0.7.3";
+  version = "0.7.4";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://kristaps.bsd.lv/lowdown/snapshots/lowdown-${version}.tar.gz";
-    sha512 = "14mx22aqr9cmin4cyhrclhm0hly1i21j2dmsikfp1c87wl2kpn9xgxnix5r0iqh5dwjxdh591rfh21xjp0l11m0nl5wkpnn7wmq7g6b";
+    sha512 = "2iw5x3lf5knnscp0ifgk50yj48p54cbd34h94qrxa9vdybg2nnipklrqmmqblf6l7qph98h7jvlyr99m5qlrki9lvjr1jcgbgp31pn0";
   };
 
   nativeBuildInputs = [ which ];
diff --git a/pkgs/tools/typesetting/satysfi/default.nix b/pkgs/tools/typesetting/satysfi/default.nix
index 7a4b8010f04cd..b97652bb4a695 100644
--- a/pkgs/tools/typesetting/satysfi/default.nix
+++ b/pkgs/tools/typesetting/satysfi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchzip, fetchFromGitHub, ruby, dune, ocamlPackages
+{ stdenv, fetchzip, fetchFromGitHub, ruby, dune_2, ocamlPackages
 , ipaexfont, junicode, lmodern, lmmath
 }:
 let
@@ -6,8 +6,8 @@ let
     src = fetchFromGitHub {
       owner = "gfngfn";
       repo = "camlpdf";
-      rev = "v2.2.2+satysfi";
-      sha256 = "1dkyibjd8qb9fzljlzdsfdhb798vc9m8xqkd7295fm6bcfpr5r5k";
+      rev = "v2.3.1+satysfi";
+      sha256 = "1s8wcqdkl1alvfcj67lhn3qdz8ikvd1v64f4q6bi4c0qj9lmp30k";
     };
   });
   otfm = ocamlPackages.otfm.overrideAttrs (o: {
@@ -18,23 +18,29 @@ let
       sha256 = "0y8s0ij1vp1s4h5y1hn3ns76fzki2ba5ysqdib33akdav9krbj8p";
     };
   });
-  yojson = ocamlPackages.yojson.overrideAttrs (o: {
+  yojson-with-position = ocamlPackages.buildDunePackage {
+    pname = "yojson-with-position";
+    version = "1.4.2";
     src = fetchFromGitHub {
       owner = "gfngfn";
-      repo = "yojson";
-      rev = "v1.4.1+satysfi";
-      sha256 = "06lajzycwmvc6s26cf40s9xn001cjxrpxijgfha3s4f4rpybb1mp";
+      repo = "yojson-with-position";
+      rev = "v1.4.2+satysfi";
+      sha256 = "17s5xrnpim54d1apy972b5l08bph4c0m5kzbndk600fl0vnlirnl";
     };
-  });
+    useDune2 = true;
+    nativeBuildInputs = [ ocamlPackages.cppo ];
+    propagatedBuildInputs = [ ocamlPackages.biniou ];
+    inherit (ocamlPackages.yojson) meta;
+  };
 in
   stdenv.mkDerivation rec {
     pname = "satysfi";
-    version = "0.0.4";
+    version = "0.0.5";
     src = fetchFromGitHub {
       owner = "gfngfn";
       repo = "SATySFi";
       rev = "v${version}";
-      sha256 = "0ilvgixglklqwavf8p9mcbrjq6cjfm9pk4kqx163c0irh0lh0adv";
+      sha256 = "1y72by6d15bc6qb1lv1ch6cm1i74gyr0w127nnvs2s657snm0y1n";
       fetchSubmodules = true;
     };
 
@@ -44,11 +50,11 @@ in
       $out/share/satysfi
     '';
 
-    nativeBuildInputs = [ ruby dune ];
+    nativeBuildInputs = [ ruby dune_2 ];
 
-    buildInputs = [ camlpdf otfm ] ++ (with ocamlPackages; [
+    buildInputs = [ camlpdf otfm yojson-with-position ] ++ (with ocamlPackages; [
       ocaml findlib menhir
-      batteries camlimages core_kernel ppx_deriving uutf yojson omd cppo re
+      batteries camlimages core_kernel ppx_deriving uutf omd cppo re
     ]);
 
     installPhase = ''
diff --git a/pkgs/tools/typesetting/tikzit/default.nix b/pkgs/tools/typesetting/tikzit/default.nix
index 31baa431bfc9e..76b9b285d153e 100644
--- a/pkgs/tools/typesetting/tikzit/default.nix
+++ b/pkgs/tools/typesetting/tikzit/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation {
   pname = "tikzit";
-  version = "2.1.5";
+  version = "2.1.6";
 
   src = fetchFromGitHub {
     owner = "tikzit";
     repo = "tikzit";
-    rev = "v2.1.5";
-    sha256 = "1xrx7r8b6nb912k91pkdwaz2gijfq6lzssyqxard0591h2mycbcg";
+    rev = "v2.1.6";
+    sha256 = "0ba99pgv54pj1xvhrwn9db2w0v4h07vsjajcnhpa2smy88ypg32h";
   };
 
   nativeBuildInputs = [ qmake qttools flex bison ];
diff --git a/pkgs/tools/video/vcsi/default.nix b/pkgs/tools/video/vcsi/default.nix
new file mode 100644
index 0000000000000..84e6c2e6d41dd
--- /dev/null
+++ b/pkgs/tools/video/vcsi/default.nix
@@ -0,0 +1,28 @@
+{ lib, python3Packages, ffmpeg }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "vcsi";
+  version = "7.0.12";
+
+  src = python3Packages.fetchPypi {
+    inherit pname version;
+    sha256 = "0dks0yr2a0cpr32vrwhdrhsb4qyj7rz1yv44fjbr8z8j8p84yjx5";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    numpy
+    pillow
+    jinja2
+    texttable
+    parsedatetime
+  ];
+
+  makeWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath [ ffmpeg ]}" ];
+
+  meta = with lib; {
+    description = "Create video contact sheets";
+    homepage = "https://github.com/amietn/vcsi";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dandellion ];
+  };
+}
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index b020d6fac559e..b96bcd40c791c 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -104,6 +104,7 @@ mapAliases ({
   deadbeef-mpris2-plugin = deadbeefPlugins.mpris2; # added 2018-02-23
   deadpixi-sam = deadpixi-sam-unstable;
   debian_devscripts = debian-devscripts; # added 2016-03-23
+  deepin = throw "deepin was a work in progress and it has been canceled and removed https://github.com/NixOS/nixpkgs/issues/94870"; # added 2020-08-31
   desktop_file_utils = desktop-file-utils; # added 2018-02-25
   devicemapper = lvm2; # added 2018-04-25
   digikam5 = digikam; # added 2017-02-18
@@ -187,11 +188,6 @@ mapAliases ({
   googleAuthenticator = google-authenticator; # added 2016-10-16
   grantlee5 = libsForQt5.grantlee;  # added 2015-12-19
   gsettings_desktop_schemas = gsettings-desktop-schemas; # added 2018-02-25
-  gst_plugins_bad = gst-plugins-bad;  # added 2017-02
-  gst_plugins_base = gst-plugins-base;  # added 2017-02
-  gst_plugins_good = gst-plugins-good;  # added 2017-02
-  gst_plugins_ugly = gst-plugins-ugly;  # added 2017-02
-  gst_python = gst-python;  # added 2017-02
   gtk_doc = gtk-doc; # added 2018-02-25
   guileCairo = guile-cairo; # added 2017-09-24
   guileGnome = guile-gnome; # added 2017-09-24
@@ -218,6 +214,7 @@ mapAliases ({
   jikes = throw "deprecated in 2019-10-07: jikes was abandoned by upstream";
   joseki = apache-jena-fuseki; # added 2016-02-28
   json_glib = json-glib; # added 2018-02-25
+  kdecoration-viewer = throw "kdecoration-viewer has been removed from nixpkgs, as there is no upstream activity"; # 2020-06-16
   kdiff3-qt5 = kdiff3; # added 2017-02-18
   keepass-keefox = keepass-keepassrpc; # backwards compatibility alias, added 2018-02
   keepassx-community = keepassxc; # added 2017-11
@@ -326,6 +323,7 @@ mapAliases ({
   nagiosPluginsOfficial = monitoring-plugins;
   ncat = nmap;  # added 2016-01-26
   netcat-openbsd = libressl.nc; # added 2018-04-25
+  netease-cloud-music = throw "netease-cloud-music has been removed together with deepin"; # added 2020-08-31
   networkmanager_fortisslvpn = networkmanager-fortisslvpn; # added 2018-02-25
   networkmanager_iodine = networkmanager-iodine; # added 2018-02-25
   networkmanager_l2tp = networkmanager-l2tp; # added 2018-02-25
@@ -456,6 +454,7 @@ mapAliases ({
   phonon = throw "Please use libsForQt5.phonon, as Qt4 support in this package has been removed."; # added 2019-11-22
   qca-qt5 = libsForQt5.qca-qt5;  # added 2015-12-19
   quake3game = ioquake3; # added 2016-01-14
+  qvim = throw "qvim has been removed."; # added 2020-08-31
   qwt6 = libsForQt5.qwt;  # added 2015-12-19
   qtpfsgui = throw "Is now luminanceHDR"; # added 2019-06-26
   quaternion-git = throw "quaternion-git has been removed in favor of the stable version 'quaternion'"; # added 2020-04-09
@@ -677,18 +676,6 @@ 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;
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 44e294af2f1f9..f5120b333ce09 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -123,6 +123,8 @@ in
 
   appimageTools = callPackage ../build-support/appimage { };
 
+  appindicator-sharp = callPackage ../development/libraries/appindicator-sharp { };
+
   ensureNewerSourcesHook = { year }: makeSetupHook {}
     (writeScript "ensure-newer-sources-hook.sh" ''
       postUnpackHooks+=(_ensureNewerSources)
@@ -1372,6 +1374,11 @@ in
     then python.pkgs.tensorflow.libtensorflow
     else libtensorflow-bin;
 
+  libtorch-bin = callPackage ../development/libraries/science/math/libtorch/bin.nix {
+    inherit (linuxPackages) nvidia_x11;
+    cudaSupport = pkgs.config.cudaSupport or false;
+  };
+
   behdad-fonts = callPackage ../data/fonts/behdad-fonts { };
 
   bless = callPackage ../applications/editors/bless { };
@@ -2041,6 +2048,8 @@ in
 
   gorilla-bin = callPackage ../tools/security/gorilla-bin { };
 
+  godu = callPackage ../tools/misc/godu { };
+
   gosu = callPackage ../tools/misc/gosu { };
 
   gotify-cli = callPackage ../tools/misc/gotify-cli { };
@@ -2151,6 +2160,8 @@ in
 
   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 { };
@@ -4051,6 +4062,8 @@ in
 
   gopro = callPackage ../tools/video/gopro { };
 
+  goreplay = callPackage ../tools/networking/goreplay { };
+
   gource = callPackage ../applications/version-management/gource { };
 
   govc = callPackage ../tools/virtualization/govc { };
@@ -4550,7 +4563,9 @@ in
     buildGoModule = buildGo114Module;
   };
   ipfs-migrator = callPackage ../applications/networking/ipfs-migrator { };
-  ipfs-cluster = callPackage ../applications/networking/ipfs-cluster { };
+  ipfs-cluster = callPackage ../applications/networking/ipfs-cluster {
+    buildGoModule = buildGo114Module;
+  };
 
   ipget = callPackage ../applications/networking/ipget { };
 
@@ -4889,11 +4904,6 @@ in
 
   kippo = callPackage ../servers/kippo { };
 
-  kimg = callPackage ../development/tools/misc/kimg {
-    asciidoc = asciidoc-full;
-    imagemagick = imagemagick7Big;
-  };
-
   kristall = libsForQt5.callPackage ../applications/networking/browsers/kristall { };
 
   kzipmix = pkgsi686Linux.callPackage ../tools/compression/kzipmix { };
@@ -7396,6 +7406,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 { };
@@ -7602,6 +7614,8 @@ in
 
   vbetool = callPackage ../tools/system/vbetool { };
 
+  vcsi = callPackage ../tools/video/vcsi { };
+
   vde2 = callPackage ../tools/networking/vde2 { };
 
   vboot_reference = callPackage ../tools/system/vboot_reference {};
@@ -9169,6 +9183,7 @@ in
   openjdk_headless = openjdk8_headless;
 
   jdk8 = openjdk8;
+  jdk8_headless = openjdk8_headless;
   jre8 = openjdk8.jre;
   jre8_headless = openjdk8_headless.jre;
 
@@ -9253,7 +9268,20 @@ in
 
   jwasm =  callPackage ../development/compilers/jwasm { };
 
-  knightos-kcc = callPackage ../development/compilers/kcc { };
+  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 { };
 
@@ -9648,8 +9676,6 @@ in
   scala_2_13 = callPackage ../development/compilers/scala/2.13.nix { jre = jre8; };
   scala = scala_2_13;
 
-  scas = callPackage ../development/compilers/scas { };
-
   metal = callPackage ../development/libraries/metal { };
   metals = callPackage ../development/tools/metals { };
   scalafix = callPackage ../development/tools/scalafix { };
@@ -10226,6 +10252,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;
@@ -10446,7 +10474,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;
@@ -10455,7 +10483,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;
@@ -10465,7 +10493,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;
@@ -10475,7 +10503,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;
@@ -10534,6 +10562,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 { };
@@ -11082,8 +11112,6 @@ in
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
-  kpack = callPackage ../development/tools/misc/kpack { };
-
   kustomize = callPackage ../development/tools/kustomize { };
 
   ktlint = callPackage ../development/tools/ktlint { };
@@ -11156,10 +11184,6 @@ in
 
   mkcert = callPackage ../development/tools/misc/mkcert { };
 
-  mkrom = callPackage ../development/tools/misc/mkrom {
-    asciidoc = asciidoc-full;
-  };
-
   mkdocs = callPackage ../development/tools/documentation/mkdocs { };
 
   mockgen = callPackage ../development/tools/mockgen { };
@@ -11483,6 +11507,10 @@ in
 
   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 { };
@@ -12555,24 +12583,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 {};
@@ -12951,6 +12961,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;
@@ -14846,8 +14858,9 @@ in
       knotifyconfig kpackage kparts kpeople kplotting kpty kross krunner
       kservice ktexteditor ktextwidgets kunitconversion kwallet kwayland
       kwidgetsaddons kwindowsystem kxmlgui kxmlrpcclient modemmanager-qt
-      networkmanager-qt plasma-framework prison 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
 
@@ -15366,8 +15379,6 @@ in
   streamlink = callPackage ../applications/video/streamlink { pythonPackages = python3Packages; };
   streamlink-twitch-gui-bin = callPackage ../applications/video/streamlink-twitch-gui/bin.nix {};
 
-  strigi = callPackage ../development/libraries/strigi { clucene_core = clucene_core_2; };
-
   subdl = callPackage ../applications/video/subdl { };
 
   subtitleeditor = callPackage ../applications/video/subtitleeditor { enchant = enchant1; };
@@ -15703,19 +15714,15 @@ in
   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;
   };
@@ -15728,7 +15735,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;
   };
@@ -16315,17 +16321,9 @@ in
 
   hashi-ui = callPackage ../servers/hashi-ui {};
 
-  /* This package duplicates a lot of functionality from haskellPackages
-     instead of using the packages we maintain there. Now, a recent update to
-     haskellPackages causes these tools to fail evaluation, and I have been
-     unable to mark them as "broken" in a way that ofBorg bot recognizes. Since
-     I don't want to merge code into master that generates evaluation errors, I
-     have no other idea but to comment them out entirely.
+  hasura-graphql-engine = haskellPackages.graphql-engine;
 
-  inherit (callPackage ../servers/hasura { })
-    hasura-cli
-    hasura-graphql-engine;
-   */
+  hasura-cli = callPackage ../servers/hasura/cli.nix { };
 
   heapster = callPackage ../servers/monitoring/heapster { };
 
@@ -17573,6 +17571,22 @@ in
     ];
   };
 
+  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
+      kernelPatches.export_kernel_fpu_functions."5.3"
+    ];
+  };
+
   linux_5_7 = callPackage ../os-specific/linux/kernel/linux-5.7.nix {
     kernelPatches = [
       kernelPatches.bridge_stp_helper
@@ -17663,8 +17677,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 { };
@@ -17757,6 +17769,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;
@@ -17817,12 +17831,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);
@@ -17831,7 +17853,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.
 
@@ -18383,6 +18405,7 @@ in
     ubootPine64
     ubootPine64LTS
     ubootPinebook
+    ubootPinebookPro
     ubootQemuAarch64
     ubootQemuArm
     ubootRaspberryPi
@@ -18893,6 +18916,8 @@ in
 
   marwaita = callPackage ../data/themes/marwaita { };
 
+  marwaita-manjaro = callPackage ../data/themes/marwaita-manjaro { };
+
   matcha-gtk-theme = callPackage ../data/themes/matcha { };
 
   materia-theme = callPackage ../data/themes/materia-theme { };
@@ -19692,7 +19717,7 @@ in
 
   catimg = callPackage ../tools/misc/catimg { };
 
-  catt = python3Packages.callPackage ../applications/video/catt { };
+  catt = callPackage ../applications/video/catt { };
 
   cava = callPackage ../applications/audio/cava { };
 
@@ -19823,6 +19848,8 @@ in
 
   convchain = callPackage ../tools/graphics/convchain {};
 
+  cordless = callPackage ../applications/networking/instant-messengers/cordless { };
+
   coursera-dl = callPackage ../applications/misc/coursera-dl {};
 
   coyim = callPackage ../applications/networking/instant-messengers/coyim {};
@@ -19980,9 +20007,7 @@ in
     buildServerGui = false;
   };
 
-  droopy = callPackage ../applications/networking/droopy {
-    inherit (python3Packages) wrapPython;
-  };
+  droopy = python37Packages.callPackage ../applications/networking/droopy { };
 
   drumgizmo = callPackage ../applications/audio/drumgizmo { };
 
@@ -20886,8 +20911,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 { };
 
@@ -21259,8 +21284,6 @@ in
 
   kdeconnect = libsForQt5.callPackage ../applications/misc/kdeconnect { };
 
-  kdecoration-viewer = libsForQt5.callPackage ../tools/misc/kdecoration-viewer { };
-
   inherit (kdeFrameworks) kdesu;
 
   kdevelop-pg-qt = libsForQt5.callPackage ../applications/editors/kdevelop5/kdevelop-pg-qt.nix { };
@@ -21452,6 +21475,7 @@ in
     libreoffice = callPackage ../applications/office/libreoffice
       (libreoffice-args // {
         variant = "fresh";
+        jdk = jdk11;
       });
   });
   libreoffice-fresh-unwrapped = libreoffice-fresh.libreoffice;
@@ -21874,6 +21898,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 {
@@ -21916,8 +21941,6 @@ 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 {
@@ -22210,6 +22233,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 {
@@ -22995,6 +23020,8 @@ in
 
   prusa-slicer = callPackage ../applications/misc/prusa-slicer { };
 
+  robustirc-bridge = callPackage ../servers/irc/robustirc-bridge { };
+
   sddm = libsForQt5.callPackage ../applications/display-managers/sddm { };
 
   skrooge = libsForQt5.callPackage ../applications/office/skrooge {};
@@ -23107,6 +23134,11 @@ in
 
   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 { };
@@ -23388,6 +23420,10 @@ in
 
   tudu = callPackage ../applications/office/tudu { };
 
+  tunefish = callPackage ../applications/audio/tunefish {
+    stdenv = clangStdenv; # https://github.com/jpcima/tunefish/issues/4
+  };
+
   tut = callPackage ../applications/misc/tut { };
 
   tuxguitar = callPackage ../applications/editors/music/tuxguitar { };
@@ -23481,12 +23517,6 @@ in
     inherit (xorg) libxcb;
   };
 
-  qvim = lowPrio (callPackage ../applications/editors/vim/qvim.nix {
-    features = "huge"; # one of  tiny, small, normal, big or huge
-    lua = pkgs.lua5;
-    flags = [ "python" "X11" ]; # only flag "X11" by now
-  });
-
   vimpc = callPackage ../applications/audio/vimpc { };
 
   wrapNeovim = callPackage ../applications/editors/neovim/wrapper.nix { };
@@ -24633,7 +24663,6 @@ in
   fsg = callPackage ../games/fsg {
     wxGTK = wxGTK28.override {
       unicode = false;
-      gst-plugins-base = null;
     };
   };
 
@@ -24745,6 +24774,8 @@ in
 
   legendary-gl = python38Packages.callPackage ../games/legendary-gl { };
 
+  left4gore-bin = callPackage ../games/left4gore { };
+
   lgogdownloader = callPackage ../games/lgogdownloader { };
 
   liberal-crime-squad = callPackage ../games/liberal-crime-squad { };
@@ -24840,8 +24871,6 @@ in
 
   nxengine-evo = callPackage ../games/nxengine-evo { };
 
-  oci-seccomp-bpf-hook = callPackage ../applications/virtualization/oci-seccomp-bpf-hook { };
-
   odamex = callPackage ../games/odamex { };
 
   oilrush = callPackage ../games/oilrush { };
@@ -25330,11 +25359,6 @@ in
 
   cinnamon = recurseIntoAttrs (callPackage ../desktops/cinnamon { });
 
-  deepin = recurseIntoAttrs (import ../desktops/deepin {
-    inherit pkgs libsForQt5;
-    inherit (lib) makeScope;
-  });
-
   enlightenment = recurseIntoAttrs (callPackage ../desktops/enlightenment {
     callPackage = newScope pkgs.enlightenment;
   });
@@ -25444,6 +25468,8 @@ in
 
   plasma-applet-caffeine-plus = libsForQt5.callPackage ../desktops/plasma-5/addons/caffeine-plus.nix { };
 
+  kwin-dynamic-workspaces = libsForQt5.callPackage ../desktops/plasma-5/kwin/scripts/dynamic-workspaces.nix { };
+
   kwin-tiling = libsForQt5.callPackage ../desktops/plasma-5/kwin/scripts/tiling.nix { };
 
   krohnkite = libsForQt5.callPackage ../desktops/plasma-5/kwin/scripts/krohnkite.nix { };
@@ -26673,11 +26699,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 { };
 
@@ -27158,9 +27184,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.
@@ -27336,6 +27360,10 @@ in
 
   vokoscreen = libsForQt5.callPackage ../applications/video/vokoscreen { };
 
+  vokoscreen-ng = libsForQt5.callPackage ../applications/video/vokoscreen-ng {
+    inherit (gst_all_1) gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly;
+  };
+
   vttest = callPackage ../tools/misc/vttest { };
 
   wacomtablet = libsForQt5.callPackage ../tools/misc/wacomtablet { };
@@ -27355,6 +27383,8 @@ in
 
   webfs = callPackage ../servers/http/webfs { };
 
+  webkit2-sharp = callPackage ../development/libraries/webkit2-sharp {  };
+
   websocketd = callPackage ../applications/networking/websocketd { };
 
   wikicurses = callPackage ../applications/misc/wikicurses {
@@ -27794,4 +27824,6 @@ in
   gpio-utils = callPackage ../os-specific/linux/kernel/gpio-utils.nix { };
 
   navidrome = callPackage ../servers/misc/navidrome {};
+
+  zettlr = callPackage ../applications/misc/zettlr { };
 }
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index 32bb7d3378608..4ce0c1a96dd19 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -173,6 +173,8 @@ let
 
     cryptokit = callPackage ../development/ocaml-modules/cryptokit { };
 
+    csexp = callPackage ../development/ocaml-modules/csexp { };
+
     cstruct =
       if lib.versionAtLeast ocaml.version "4.2"
       then callPackage ../development/ocaml-modules/cstruct {}
@@ -284,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 { };
@@ -912,6 +916,10 @@ let
 
     sqlite3EZ = callPackage ../development/ocaml-modules/sqlite3EZ { };
 
+    srt = callPackage ../development/ocaml-modules/srt {
+      inherit (pkgs) srt;
+    };
+
     ssl = callPackage ../development/ocaml-modules/ssl { };
 
     stdlib-shims = callPackage ../development/ocaml-modules/stdlib-shims { };
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 72fd49c64f78e..e17ccce7f27f9 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -142,163 +142,364 @@ in {
   else
     callPackage ../development/python-modules/setuptools { };
 
-  vowpalwabbit = callPackage ../development/python-modules/vowpalwabbit { };
+  aadict = callPackage ../development/python-modules/aadict { };
 
-  acoustics = callPackage ../development/python-modules/acoustics { };
+  aafigure = callPackage ../development/python-modules/aafigure { };
 
-  py3to2 = callPackage ../development/python-modules/3to2 { };
+  absl-py = callPackage ../development/python-modules/absl-py { };
 
-  pynamodb = callPackage ../development/python-modules/pynamodb { };
+  accupy = callPackage ../development/python-modules/accupy { };
 
-  aadict = callPackage ../development/python-modules/aadict { };
+  acme = callPackage ../development/python-modules/acme { };
 
-  absl-py = callPackage ../development/python-modules/absl-py { };
+  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 { };
 
-  aiojobs = callPackage ../development/python-modules/aiojobs { };
+  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 { };
+
+  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 { };
 
-  ansiwrap =  callPackage ../development/python-modules/ansiwrap { };
+  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 { };
@@ -325,30 +526,6 @@ in {
 
   azure-loganalytics = callPackage ../development/python-modules/azure-loganalytics { };
 
-  azure-servicebus = callPackage ../development/python-modules/azure-servicebus { };
-
-  azure-servicefabric = callPackage ../development/python-modules/azure-servicefabric { };
-
-  azure-servicemanagement-legacy = callPackage ../development/python-modules/azure-servicemanagement-legacy { };
-
-  azure-storage-nspkg = callPackage ../development/python-modules/azure-storage-nspkg { };
-
-  azure-storage-common = callPackage ../development/python-modules/azure-storage-common { };
-
-  azure-storage = callPackage ../development/python-modules/azure-storage { };
-
-  azure-storage-blob = callPackage ../development/python-modules/azure-storage-blob { };
-
-  azure-storage-file = callPackage ../development/python-modules/azure-storage-file { };
-
-  azure-storage-file-share = callPackage ../development/python-modules/azure-storage-file-share { };
-
-  azure-storage-queue = callPackage ../development/python-modules/azure-storage-queue { };
-
-  azure-mgmt-nspkg = callPackage ../development/python-modules/azure-mgmt-nspkg { };
-
-  azure-mgmt-common = callPackage ../development/python-modules/azure-mgmt-common { };
-
   azure-mgmt-advisor = callPackage ../development/python-modules/azure-mgmt-advisor { };
 
   azure-mgmt-apimanagement = callPackage ../development/python-modules/azure-mgmt-apimanagement { };
@@ -359,10 +536,10 @@ in {
 
   azure-mgmt-authorization = callPackage ../development/python-modules/azure-mgmt-authorization { };
 
-  azure-mgmt-batch = callPackage ../development/python-modules/azure-mgmt-batch { };
-
   azure-mgmt-batchai = callPackage ../development/python-modules/azure-mgmt-batchai { };
 
+  azure-mgmt-batch = callPackage ../development/python-modules/azure-mgmt-batch { };
+
   azure-mgmt-billing = callPackage ../development/python-modules/azure-mgmt-billing { };
 
   azure-mgmt-botservice = callPackage ../development/python-modules/azure-mgmt-botservice { };
@@ -373,6 +550,8 @@ in {
 
   azure-mgmt-commerce = callPackage ../development/python-modules/azure-mgmt-commerce { };
 
+  azure-mgmt-common = callPackage ../development/python-modules/azure-mgmt-common { };
+
   azure-mgmt-compute = callPackage ../development/python-modules/azure-mgmt-compute { };
 
   azure-mgmt-consumption = callPackage ../development/python-modules/azure-mgmt-consumption { };
@@ -397,12 +576,12 @@ in {
 
   azure-mgmt-datamigration = callPackage ../development/python-modules/azure-mgmt-datamigration { };
 
+  azure-mgmt-deploymentmanager = callPackage ../development/python-modules/azure-mgmt-deploymentmanager { };
+
   azure-mgmt-devspaces = callPackage ../development/python-modules/azure-mgmt-devspaces { };
 
   azure-mgmt-devtestlabs = callPackage ../development/python-modules/azure-mgmt-devtestlabs { };
 
-  azure-mgmt-deploymentmanager = callPackage ../development/python-modules/azure-mgmt-deploymentmanager { };
-
   azure-mgmt-dns = callPackage ../development/python-modules/azure-mgmt-dns { };
 
   azure-mgmt-eventgrid = callPackage ../development/python-modules/azure-mgmt-eventgrid { };
@@ -419,7 +598,8 @@ in {
 
   azure-mgmt-iothub = callPackage ../development/python-modules/azure-mgmt-iothub { };
 
-  azure-mgmt-iothubprovisioningservices = callPackage ../development/python-modules/azure-mgmt-iothubprovisioningservices { };
+  azure-mgmt-iothubprovisioningservices =
+    callPackage ../development/python-modules/azure-mgmt-iothubprovisioningservices { };
 
   azure-mgmt-keyvault = callPackage ../development/python-modules/azure-mgmt-keyvault { };
 
@@ -453,6 +633,8 @@ in {
 
   azure-mgmt-notificationhubs = callPackage ../development/python-modules/azure-mgmt-notificationhubs { };
 
+  azure-mgmt-nspkg = callPackage ../development/python-modules/azure-mgmt-nspkg { };
+
   azure-mgmt-policyinsights = callPackage ../development/python-modules/azure-mgmt-policyinsights { };
 
   azure-mgmt-powerbiembedded = callPackage ../development/python-modules/azure-mgmt-powerbiembedded { };
@@ -461,10 +643,10 @@ in {
 
   azure-mgmt-rdbms = callPackage ../development/python-modules/azure-mgmt-rdbms { };
 
-  azure-mgmt-recoveryservices = callPackage ../development/python-modules/azure-mgmt-recoveryservices { };
-
   azure-mgmt-recoveryservicesbackup = callPackage ../development/python-modules/azure-mgmt-recoveryservicesbackup { };
 
+  azure-mgmt-recoveryservices = callPackage ../development/python-modules/azure-mgmt-recoveryservices { };
+
   azure-mgmt-redhatopenshift = callPackage ../development/python-modules/azure-mgmt-redhatopenshift { };
 
   azure-mgmt-redis = callPackage ../development/python-modules/azure-mgmt-redis { };
@@ -495,5398 +677,5180 @@ 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 {};
-
-  backports-shutil-which = callPackage ../development/python-modules/backports-shutil-which {};
-
-  bacpypes = callPackage ../development/python-modules/bacpypes {};
-
-  bap = callPackage ../development/python-modules/bap {
-    bap = pkgs.ocaml-ng.ocamlPackages_4_06.bap;
-  };
-
-  baselines = callPackage ../development/python-modules/baselines { };
+  azure-nspkg = callPackage ../development/python-modules/azure-nspkg { };
 
-  bash_kernel = callPackage ../development/python-modules/bash_kernel {
-    inherit (pkgs) bash;
-  };
+  azure-servicebus = callPackage ../development/python-modules/azure-servicebus { };
 
-  bashlex = callPackage ../development/python-modules/bashlex { };
+  azure-servicefabric = callPackage ../development/python-modules/azure-servicefabric { };
 
-  bayesian-optimization = callPackage ../development/python-modules/bayesian-optimization { };
+  azure-servicemanagement-legacy = callPackage ../development/python-modules/azure-servicemanagement-legacy { };
 
-  bayespy = callPackage ../development/python-modules/bayespy { };
+  azure-storage-blob = callPackage ../development/python-modules/azure-storage-blob { };
 
-  beanstalkc = callPackage ../development/python-modules/beanstalkc { };
+  azure-storage = callPackage ../development/python-modules/azure-storage { };
 
-  beancount_docverif = callPackage ../development/python-modules/beancount_docverif { };
+  azure-storage-common = callPackage ../development/python-modules/azure-storage-common { };
 
-  biplist = callPackage ../development/python-modules/biplist { };
+  azure-storage-file = callPackage ../development/python-modules/azure-storage-file { };
 
-  bip_utils = callPackage ../development/python-modules/bip_utils { };
+  azure-storage-file-share = callPackage ../development/python-modules/azure-storage-file-share { };
 
-  bitarray = callPackage ../development/python-modules/bitarray { };
+  azure-storage-nspkg = callPackage ../development/python-modules/azure-storage-nspkg { };
 
-  bitcoinlib = callPackage ../development/python-modules/bitcoinlib { };
+  azure-storage-queue = callPackage ../development/python-modules/azure-storage-queue { };
 
-  bitcoin-price-api = callPackage ../development/python-modules/bitcoin-price-api { };
+  azure-synapse-accesscontrol = callPackage ../development/python-modules/azure-synapse-accesscontrol { };
 
-  blivet = callPackage ../development/python-modules/blivet { };
+  azure-synapse-spark = callPackage ../development/python-modules/azure-synapse-spark { };
 
-  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 { };
 
-  brother = callPackage ../development/python-modules/brother { };
+  backports_abc = callPackage ../development/python-modules/backports_abc { };
 
-  build = callPackage ../development/python-modules/build { };
+  backports_csv = callPackage ../development/python-modules/backports_csv { };
 
-  bytecode = callPackage ../development/python-modules/bytecode { };
+  backports_functools_lru_cache = callPackage ../development/python-modules/backports_functools_lru_cache { };
 
-  ciso8601 = callPackage ../development/python-modules/ciso8601 { };
+  backports_lzma = callPackage ../development/python-modules/backports_lzma { };
 
-  deepdiff = callPackage ../development/python-modules/deepdiff { };
+  backports_os = callPackage ../development/python-modules/backports_os { };
 
-  deepmerge = callPackage ../development/python-modules/deepmerge { };
+  backports_shutil_get_terminal_size = callPackage ../development/python-modules/backports_shutil_get_terminal_size { };
 
-  django-sesame = callPackage ../development/python-modules/django-sesame { };
+  backports-shutil-which = callPackage ../development/python-modules/backports-shutil-which { };
 
-  bravado-core = callPackage ../development/python-modules/bravado-core { };
+  backports_ssl_match_hostname =
+    if !(pythonOlder "3.5") then null else callPackage ../development/python-modules/backports_ssl_match_hostname { };
 
-  breathe = callPackage ../development/python-modules/breathe { };
+  backports_tempfile = callPackage ../development/python-modules/backports_tempfile { };
 
-  brotli = callPackage ../development/python-modules/brotli { };
+  backports_unittest-mock = callPackage ../development/python-modules/backports_unittest-mock { };
 
-  broadlink = callPackage ../development/python-modules/broadlink { };
+  backports_weakref = callPackage ../development/python-modules/backports_weakref { };
 
-  browser-cookie3 = callPackage ../development/python-modules/browser-cookie3 { };
+  bacpypes = callPackage ../development/python-modules/bacpypes { };
 
-  browsermob-proxy = disabledIf isPy3k (callPackage ../development/python-modules/browsermob-proxy {});
+  bandit = callPackage ../development/python-modules/bandit { };
 
-  btrfs = callPackage ../development/python-modules/btrfs { };
+  bap = callPackage ../development/python-modules/bap { bap = pkgs.ocaml-ng.ocamlPackages_4_06.bap; };
 
-  bt_proximity = callPackage ../development/python-modules/bt-proximity { };
+  base58 = callPackage ../development/python-modules/base58 { };
 
-  bugseverywhere = throw "bugseverywhere has been removed: Abandoned by upstream."; # Added 2019-11-27
+  baselines = callPackage ../development/python-modules/baselines { };
 
-  bugsnag = callPackage ../development/python-modules/bugsnag { };
+  basemap = callPackage ../development/python-modules/basemap { };
 
-  cachecontrol = callPackage ../development/python-modules/cachecontrol { };
+  bash_kernel = callPackage ../development/python-modules/bash_kernel { inherit (pkgs) bash; };
 
-  cachelib = callPackage ../development/python-modules/cachelib { };
+  bashlex = callPackage ../development/python-modules/bashlex { };
 
-  cachy = callPackage ../development/python-modules/cachy { };
+  basiciw = callPackage ../development/python-modules/basiciw { inherit (pkgs) gcc wirelesstools; };
 
-  cadquery = callPackage ../development/python-modules/cadquery { };
+  batchgenerators = callPackage ../development/python-modules/batchgenerators { };
 
-  catalogue = callPackage ../development/python-modules/catalogue { };
+  batchspawner = callPackage ../development/python-modules/batchspawner { };
 
-  cbeams = callPackage ../misc/cbeams { };
+  batinfo = callPackage ../development/python-modules/batinfo { };
 
-  cdecimal = callPackage ../development/python-modules/cdecimal { };
+  bayesian-optimization = callPackage ../development/python-modules/bayesian-optimization { };
 
-  certbot = callPackage ../development/python-modules/certbot { };
+  bayespy = callPackage ../development/python-modules/bayespy { };
 
-  certbot-dns-cloudflare = callPackage ../development/python-modules/certbot-dns-cloudflare { };
+  bcdoc = callPackage ../development/python-modules/bcdoc { };
 
-  certbot-dns-rfc2136 = callPackage ../development/python-modules/certbot-dns-rfc2136 { };
+  bcrypt = callPackage ../development/python-modules/bcrypt { };
 
-  certbot-dns-route53 = callPackage ../development/python-modules/certbot-dns-route53 { };
+  beaker = callPackage ../development/python-modules/beaker { };
 
-  cfn-flip = callPackage ../development/python-modules/cfn-flip { };
+  beancount = callPackage ../development/python-modules/beancount { };
 
-  chalice = callPackage ../development/python-modules/chalice { };
+  beancount_docverif = callPackage ../development/python-modules/beancount_docverif { };
 
-  channels-redis = callPackage ../development/python-modules/channels-redis { };
+  beanstalkc = callPackage ../development/python-modules/beanstalkc { };
 
-  cleo = callPackage ../development/python-modules/cleo { };
+  beautifulsoup4 = callPackage ../development/python-modules/beautifulsoup4 { };
 
-  clikit = callPackage ../development/python-modules/clikit { };
+  bedup = callPackage ../development/python-modules/bedup { };
 
-  cliff = callPackage ../development/python-modules/cliff { };
+  behave = callPackage ../development/python-modules/behave { };
 
-  clifford = callPackage ../development/python-modules/clifford { };
+  bellows = callPackage ../development/python-modules/bellows { };
 
-  clickclick = callPackage ../development/python-modules/clickclick { };
+  bespon = callPackage ../development/python-modules/bespon { };
 
-  clustershell = callPackage ../development/python-modules/clustershell { };
+  betamax = callPackage ../development/python-modules/betamax { };
 
-  cnvkit = callPackage ../development/python-modules/cnvkit { };
+  betamax-matchers = callPackage ../development/python-modules/betamax-matchers { };
 
-  cocotb = callPackage ../development/python-modules/cocotb { };
+  betamax-serializers = callPackage ../development/python-modules/betamax-serializers { };
 
-  compiledb = callPackage ../development/python-modules/compiledb { };
+  bibtexparser = callPackage ../development/python-modules/bibtexparser { };
 
-  connexion = callPackage ../development/python-modules/connexion { };
+  bidict = callPackage ../development/python-modules/bidict { };
 
-  coordinates = callPackage ../development/python-modules/coordinates { };
+  bids-validator = callPackage ../development/python-modules/bids-validator { };
 
-  cozy = callPackage ../development/python-modules/cozy { };
+  billiard = callPackage ../development/python-modules/billiard { };
 
-  codespell = callPackage ../development/python-modules/codespell { };
+  binaryornot = callPackage ../development/python-modules/binaryornot { };
 
-  convertdate = callPackage ../development/python-modules/convertdate { };
+  binwalk = callPackage ../development/python-modules/binwalk {
+    pyqtgraph = null;
+    matplotlib = null;
+  };
 
-  cot = callPackage ../development/python-modules/cot { };
+  binwalk-full = appendToName "full" (self.binwalk.override {
+    pyqtgraph = self.pyqtgraph;
+    matplotlib = self.matplotlib;
+  });
 
-  crc32c = callPackage ../development/python-modules/crc32c { };
+  biopython = callPackage ../development/python-modules/biopython { };
 
-  curio = callPackage ../development/python-modules/curio { };
+  biplist = callPackage ../development/python-modules/biplist { };
 
-  dendropy = callPackage ../development/python-modules/dendropy { };
+  bip_utils = callPackage ../development/python-modules/bip_utils { };
 
-  denonavr = callPackage ../development/python-modules/denonavr { };
+  bitarray = callPackage ../development/python-modules/bitarray { };
 
-  dependency-injector = callPackage ../development/python-modules/dependency-injector { };
+  bitbucket_api = callPackage ../development/python-modules/bitbucket-api { };
 
-  btchip = callPackage ../development/python-modules/btchip { };
+  bitbucket-cli = callPackage ../development/python-modules/bitbucket-cli { };
 
-  databricks-cli = callPackage ../development/python-modules/databricks-cli { };
+  bitcoinlib = callPackage ../development/python-modules/bitcoinlib { };
 
-  datatable = callPackage ../development/python-modules/datatable {
-    inherit (pkgs.llvmPackages) openmp libcxx libcxxabi;
-  };
+  bitcoin-price-api = callPackage ../development/python-modules/bitcoin-price-api { };
 
-  databases = callPackage ../development/python-modules/databases { };
+  bitmath = callPackage ../development/python-modules/bitmath { };
 
-  datamodeldict = callPackage ../development/python-modules/datamodeldict { };
+  bitstring = callPackage ../development/python-modules/bitstring { };
 
-  datasette = callPackage ../development/python-modules/datasette { };
+  bitstruct = callPackage ../development/python-modules/bitstruct { };
 
-  datashader = callPackage ../development/python-modules/datashader { };
+  bjoern = callPackage ../development/python-modules/bjoern { };
 
-  dbf = callPackage ../development/python-modules/dbf { };
+  bkcharts = callPackage ../development/python-modules/bkcharts { };
 
-  dbfread = callPackage ../development/python-modules/dbfread { };
+  black = callPackage ../development/python-modules/black { };
 
-  deap = callPackage ../development/python-modules/deap { };
+  black-macchiato = callPackage ../development/python-modules/black-macchiato { };
 
-  deeptoolsintervals = callPackage ../development/python-modules/deeptoolsintervals { };
+  bleach = callPackage ../development/python-modules/bleach { };
 
-  dkimpy = callPackage ../development/python-modules/dkimpy { };
+  bleak = callPackage ../development/python-modules/bleak { };
 
-  diceware = callPackage ../development/python-modules/diceware { };
+  blessed = callPackage ../development/python-modules/blessed { };
 
-  dictionaries = callPackage ../development/python-modules/dictionaries { };
+  blessings = callPackage ../development/python-modules/blessings { };
 
-  diff_cover = callPackage ../development/python-modules/diff_cover { };
+  blinker = callPackage ../development/python-modules/blinker { };
 
-  diofant = callPackage ../development/python-modules/diofant { };
+  BlinkStick = callPackage ../development/python-modules/blinkstick { };
 
-  dipy = callPackage ../development/python-modules/dipy { };
+  blis = callPackage ../development/python-modules/blis { };
 
-  docrep = callPackage ../development/python-modules/docrep { };
+  blist = callPackage ../development/python-modules/blist { };
 
-  dominate = callPackage ../development/python-modules/dominate { };
+  blivet = callPackage ../development/python-modules/blivet { };
 
-  dotnetcore2 = callPackage ../development/python-modules/dotnetcore2 {
-    inherit (pkgs) substituteAll dotnet-sdk;
-  };
+  blockdiag = callPackage ../development/python-modules/blockdiag { };
 
-  emcee = callPackage ../development/python-modules/emcee { };
+  blockdiagcontrib-cisco = callPackage ../development/python-modules/blockdiagcontrib-cisco { };
 
-  emailthreads = callPackage ../development/python-modules/emailthreads { };
+  block-io = callPackage ../development/python-modules/block-io { };
 
-  email_validator = callPackage ../development/python-modules/email-validator { };
+  bluepy = callPackage ../development/python-modules/bluepy { };
 
-  ewmh = callPackage ../development/python-modules/ewmh { };
+  bokeh = callPackage ../development/python-modules/bokeh { };
 
-  exchangelib = callPackage ../development/python-modules/exchangelib { };
+  boltons = callPackage ../development/python-modules/boltons { };
 
-  dcmstack = callPackage ../development/python-modules/dcmstack { };
+  boltztrap2 = callPackage ../development/python-modules/boltztrap2 { };
 
-  dbus-python = callPackage ../development/python-modules/dbus {
-    inherit (pkgs) dbus pkgconfig;
-  };
+  booleanoperations = callPackage ../development/python-modules/booleanoperations { };
 
-  debts = callPackage ../development/python-modules/debts { };
+  boolean-py = callPackage ../development/python-modules/boolean-py { };
 
-  dftfit = callPackage ../development/python-modules/dftfit { };
+  # 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;
+  });
 
-  dicom2nifti = callPackage ../development/python-modules/dicom2nifti { };
+  boto3 = callPackage ../development/python-modules/boto3 { };
 
-  discid = callPackage ../development/python-modules/discid { };
+  boto = callPackage ../development/python-modules/boto { };
 
-  discordpy = callPackage ../development/python-modules/discordpy { };
+  botocore = callPackage ../development/python-modules/botocore { };
 
-  parver = callPackage ../development/python-modules/parver { };
-  arpeggio = callPackage ../development/python-modules/arpeggio { };
+  bottle = callPackage ../development/python-modules/bottle { };
 
-  influxdb-client = callPackage ../development/python-modules/influxdb-client { };
+  bottleneck = callPackage ../development/python-modules/bottleneck { };
 
-  invoke = callPackage ../development/python-modules/invoke { };
+  box2d = callPackage ../development/python-modules/box2d { };
 
-  distorm3 = callPackage ../development/python-modules/distorm3 { };
+  bpython = callPackage ../development/python-modules/bpython { };
 
-  distlib = callPackage ../development/python-modules/distlib { };
+  braintree = callPackage ../development/python-modules/braintree { };
 
-  distributed = callPackage ../development/python-modules/distributed { };
+  branca = callPackage ../development/python-modules/branca { };
 
-  docutils = callPackage ../development/python-modules/docutils { };
+  bravado-core = callPackage ../development/python-modules/bravado-core { };
 
-  dogtail = callPackage ../development/python-modules/dogtail { };
+  bravia-tv = callPackage ../development/python-modules/bravia-tv { };
 
-  diff-match-patch = callPackage ../development/python-modules/diff-match-patch { };
+  breathe = callPackage ../development/python-modules/breathe { };
 
-  eliot = callPackage ../development/python-modules/eliot {};
+  breezy = callPackage ../development/python-modules/breezy { };
 
-  entrance = callPackage ../development/python-modules/entrance { routerFeatures = false; };
+  broadlink = callPackage ../development/python-modules/broadlink { };
 
-  entrance-with-router-features = callPackage ../development/python-modules/entrance { routerFeatures = true; };
+  brother = callPackage ../development/python-modules/brother { };
 
-  eradicate = callPackage ../development/python-modules/eradicate {  };
+  brotli = callPackage ../development/python-modules/brotli { };
 
-  face = callPackage ../development/python-modules/face { };
+  brotlipy = callPackage ../development/python-modules/brotlipy { };
 
-  fastparquet = callPackage ../development/python-modules/fastparquet { };
+  browser-cookie3 = callPackage ../development/python-modules/browser-cookie3 { };
 
-  fastpbkdf2 = callPackage ../development/python-modules/fastpbkdf2 {  };
+  browsermob-proxy = disabledIf isPy3k (callPackage ../development/python-modules/browsermob-proxy { });
 
-  fasttext = callPackage ../development/python-modules/fasttext {  };
+  bsddb3 = callPackage ../development/python-modules/bsddb3 { };
 
-  facedancer = callPackage ../development/python-modules/facedancer {  };
+  bsdiff4 = callPackage ../development/python-modules/bsdiff4 { };
 
-  favicon = callPackage ../development/python-modules/favicon {  };
+  btchip = callPackage ../development/python-modules/btchip { };
 
-  fdint = callPackage ../development/python-modules/fdint { };
+  bt_proximity = callPackage ../development/python-modules/bt-proximity { };
 
-  fido2 = callPackage ../development/python-modules/fido2 {  };
+  BTrees = callPackage ../development/python-modules/btrees { };
 
-  filterpy = callPackage ../development/python-modules/filterpy { };
+  btrfs = callPackage ../development/python-modules/btrfs { };
 
-  filemagic = callPackage ../development/python-modules/filemagic { };
+  bugseverywhere = throw "bugseverywhere has been removed: Abandoned by upstream."; # Added 2019-11-27
 
-  finalfusion = callPackage ../development/python-modules/finalfusion { };
+  bugsnag = callPackage ../development/python-modules/bugsnag { };
 
-  fints = callPackage ../development/python-modules/fints { };
+  bugwarrior = callPackage ../development/python-modules/bugwarrior { };
 
-  fire = callPackage ../development/python-modules/fire { };
+  bugz = callPackage ../development/python-modules/bugz { };
 
-  firetv = callPackage ../development/python-modules/firetv { };
+  bugzilla = callPackage ../development/python-modules/bugzilla { };
 
-  flower = callPackage ../development/python-modules/flower { };
+  buildbot = callPackage ../development/python-modules/buildbot { };
 
-  flufl_bounce = callPackage ../development/python-modules/flufl/bounce.nix { };
+  buildbot-ui = self.buildbot.withPlugins (with self.buildbot-plugins; [ www ]);
 
-  flufl_i18n = callPackage ../development/python-modules/flufl/i18n.nix { };
+  buildbot-full = self.buildbot.withPlugins
+    (with self.buildbot-plugins; [ www console-view waterfall-view grid-view wsgi-dashboards ]);
 
-  flufl_lock = callPackage ../development/python-modules/flufl/lock.nix { };
+  buildbot-pkg = callPackage ../development/python-modules/buildbot/pkg.nix { };
 
-  foxdot = callPackage ../development/python-modules/foxdot { };
+  buildbot-plugins = pkgs.recurseIntoAttrs (callPackage ../development/python-modules/buildbot/plugins.nix { });
 
-  freetype-py = callPackage ../development/python-modules/freetype-py { };
+  buildbot-worker = callPackage ../development/python-modules/buildbot/worker.nix { };
 
-  fsspec = callPackage ../development/python-modules/fsspec { };
+  build = callPackage ../development/python-modules/build { };
 
-  furl = callPackage ../development/python-modules/furl { };
+  bumps = callPackage ../development/python-modules/bumps { };
 
-  fuse = callPackage ../development/python-modules/fuse-python {
-    inherit (pkgs) fuse pkgconfig;
-  };
+  bunch = callPackage ../development/python-modules/bunch { };
 
-  fuzzywuzzy = callPackage ../development/python-modules/fuzzywuzzy { };
+  bx-python = callPackage ../development/python-modules/bx-python { inherit (pkgs) zlib; };
 
-  genanki = callPackage ../development/python-modules/genanki { };
+  bytecode = callPackage ../development/python-modules/bytecode { };
 
-  geoip2 = callPackage ../development/python-modules/geoip2 { };
+  bz2file = callPackage ../development/python-modules/bz2file { };
 
-  getmac = callPackage ../development/python-modules/getmac { };
+  cachecontrol = callPackage ../development/python-modules/cachecontrol { };
 
-  gidgethub = callPackage ../development/python-modules/gidgethub { };
+  cached-property = callPackage ../development/python-modules/cached-property { };
 
-  gin-config = callPackage ../development/python-modules/gin-config { };
+  cachelib = callPackage ../development/python-modules/cachelib { };
 
-  globus-sdk = callPackage ../development/python-modules/globus-sdk { };
+  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;
 
-  glymur = callPackage ../development/python-modules/glymur { };
+  cachy = callPackage ../development/python-modules/cachy { };
 
-  glob2 = callPackage ../development/python-modules/glob2 { };
+  cadquery = callPackage ../development/python-modules/cadquery { };
 
-  globre = callPackage ../development/python-modules/globre { };
+  caffe = toPythonModule (pkgs.caffe.override {
+    pythonSupport = true;
+    inherit (self) python numpy boost;
+  });
 
-  glom = callPackage ../development/python-modules/glom { };
+  cairocffi = if isPy3k then
+    callPackage ../development/python-modules/cairocffi { }
+  else
+    callPackage ../development/python-modules/cairocffi/0_9.nix { };
 
-  gdcm = disabledIf isPy27 (toPythonModule (pkgs.gdcm.override {
-    inherit (self) python;
-    enablePython = true;
-  }));
+  cairosvg = if isPy3k then
+    callPackage ../development/python-modules/cairosvg { }
+  else
+    callPackage ../development/python-modules/cairosvg/1_x.nix { };
 
-  goocalendar = callPackage ../development/python-modules/goocalendar { };
+  caldav = callPackage ../development/python-modules/caldav { };
 
-  grandalf = callPackage ../development/python-modules/grandalf { };
+  can = callPackage ../development/python-modules/can { };
 
-  gprof2dot = callPackage ../development/python-modules/gprof2dot {
-    inherit (pkgs) graphviz;
-  };
+  canmatrix = callPackage ../development/python-modules/canmatrix { };
 
-  gsd = if isPy27 then
-      callPackage ../development/python-modules/gsd/1.7.nix { }
-    else
-      callPackage ../development/python-modules/gsd { };
+  canonicaljson = callPackage ../development/python-modules/canonicaljson { };
 
-  gssapi = callPackage ../development/python-modules/gssapi {
-    inherit (pkgs) darwin krb5Full;
-  };
+  canopen = callPackage ../development/python-modules/canopen { };
 
-  guestfs = callPackage ../development/python-modules/guestfs { };
+  capstone = callPackage ../development/python-modules/capstone { inherit (pkgs) capstone; };
 
-  gumath = callPackage ../development/python-modules/gumath { };
+  capturer = callPackage ../development/python-modules/capturer { };
 
-  h3 = callPackage ../development/python-modules/h3 { inherit (pkgs) h3; };
+  carbon = callPackage ../development/python-modules/carbon { };
 
-  h5py = callPackage ../development/python-modules/h5py {
-    hdf5 = pkgs.hdf5;
-  };
+  carrot = callPackage ../development/python-modules/carrot { };
 
-  h5py-mpi = self.h5py.override {
-    hdf5 = pkgs.hdf5-mpi;
-  };
+  cartopy = callPackage ../development/python-modules/cartopy { };
 
-  h5netcdf = callPackage ../development/python-modules/h5netcdf { };
+  casbin = callPackage ../development/python-modules/casbin { };
 
-  ha-ffmpeg = callPackage ../development/python-modules/ha-ffmpeg { };
+  case = callPackage ../development/python-modules/case { };
 
-  habanero = callPackage ../development/python-modules/habanero { };
+  cassandra-driver = callPackage ../development/python-modules/cassandra-driver { };
 
-  handout = callPackage ../development/python-modules/handout { };
+  casttube = callPackage ../development/python-modules/casttube { };
 
-  HAP-python = callPackage ../development/python-modules/HAP-python { };
+  catalogue = callPackage ../development/python-modules/catalogue { };
 
-  helper = callPackage ../development/python-modules/helper { };
+  cbeams = callPackage ../misc/cbeams { };
 
-  hdmedians = callPackage ../development/python-modules/hdmedians { };
+  cbor2 = callPackage ../development/python-modules/cbor2 { };
 
-  hdlparse = callPackage ../development/python-modules/hdlparse { };
+  cbor = callPackage ../development/python-modules/cbor { };
 
-  hiyapyco = callPackage ../development/python-modules/hiyapyco { };
+  cccolutils = callPackage ../development/python-modules/cccolutils { };
 
-  hocr-tools = callPackage ../development/python-modules/hocr-tools { };
+  cchardet = callPackage ../development/python-modules/cchardet { };
 
-  holidays = callPackage ../development/python-modules/holidays { };
+  CDDB = callPackage ../development/python-modules/cddb { };
 
-  holoviews = callPackage ../development/python-modules/holoviews { };
+  cdecimal = callPackage ../development/python-modules/cdecimal { };
 
-  hoomd-blue = toPythonModule (callPackage ../development/python-modules/hoomd-blue {
-    inherit python;
-  });
+  celery = callPackage ../development/python-modules/celery { };
 
-  hopcroftkarp = callPackage ../development/python-modules/hopcroftkarp { };
+  cement = callPackage ../development/python-modules/cement { };
 
-  http-ece = callPackage ../development/python-modules/http-ece { };
+  cerberus = callPackage ../development/python-modules/cerberus { };
 
-  httpsig = callPackage ../development/python-modules/httpsig { };
+  certbot = callPackage ../development/python-modules/certbot { };
 
-  httptools = callPackage ../development/python-modules/httptools { };
+  certbot-dns-cloudflare = callPackage ../development/python-modules/certbot-dns-cloudflare { };
 
-  hwi = callPackage ../development/python-modules/hwi { };
+  certbot-dns-rfc2136 = callPackage ../development/python-modules/certbot-dns-rfc2136 { };
 
-  i3ipc = callPackage ../development/python-modules/i3ipc { };
+  certbot-dns-route53 = callPackage ../development/python-modules/certbot-dns-route53 { };
 
-  ignite = callPackage ../development/python-modules/ignite { };
+  certifi = callPackage ../development/python-modules/certifi { };
 
-  ihatemoney = callPackage ../development/python-modules/ihatemoney { };
+  certipy = callPackage ../development/python-modules/certipy { };
 
-  imutils = callPackage ../development/python-modules/imutils { };
+  cffi = callPackage ../development/python-modules/cffi { };
 
-  inotify-simple = callPackage ../development/python-modules/inotify-simple { };
+  cfgv = callPackage ../development/python-modules/cfgv { };
 
-  intake = callPackage ../development/python-modules/intake { };
+  cfn-flip = callPackage ../development/python-modules/cfn-flip { };
 
-  intelhex = callPackage ../development/python-modules/intelhex { };
+  cfn-lint = callPackage ../development/python-modules/cfn-lint { };
 
-  inquirer = callPackage ../development/python-modules/inquirer { };
+  cftime = callPackage ../development/python-modules/cftime { };
 
-  ipympl = callPackage ../development/python-modules/ipympl { };
+  cgen = callPackage ../development/python-modules/cgen { };
 
-  itanium_demangler = callPackage ../development/python-modules/itanium_demangler { };
+  cgroup-utils = callPackage ../development/python-modules/cgroup-utils { };
 
-  itemadapter = callPackage ../development/python-modules/itemadapter { };
+  chai = callPackage ../development/python-modules/chai { };
 
-  itemloaders = callPackage ../development/python-modules/itemloaders { };
+  chainer = callPackage ../development/python-modules/chainer { cudaSupport = pkgs.config.cudaSupport or false; };
 
-  iterm2 = callPackage ../development/python-modules/iterm2 { };
+  chainmap = callPackage ../development/python-modules/chainmap { };
 
-  janus = callPackage ../development/python-modules/janus { };
+  chalice = callPackage ../development/python-modules/chalice { };
 
-  jc = callPackage ../development/python-modules/jc { };
+  chameleon = callPackage ../development/python-modules/chameleon { };
 
-  jellyfin-apiclient-python = callPackage ../development/python-modules/jellyfin-apiclient-python { };
+  channels = callPackage ../development/python-modules/channels { };
 
-  jira = callPackage ../development/python-modules/jira { };
+  channels-redis = callPackage ../development/python-modules/channels-redis { };
 
-  jsonpath = callPackage ../development/python-modules/jsonpath { };
+  characteristic = callPackage ../development/python-modules/characteristic { };
 
-  junit-xml = callPackage ../development/python-modules/junit-xml { };
+  chardet = callPackage ../development/python-modules/chardet { };
 
-  junitparser = callPackage ../development/python-modules/junitparser { };
+  chart-studio = callPackage ../development/python-modules/chart-studio { };
 
-  jwcrypto = callPackage ../development/python-modules/jwcrypto { };
+  check-manifest = callPackage ../development/python-modules/check-manifest { };
 
-  kconfiglib = callPackage ../development/python-modules/kconfiglib { };
+  cheetah3 = callPackage ../development/python-modules/cheetah3 { };
 
-  kinparse = callPackage ../development/python-modules/kinparse { };
+  cheetah = callPackage ../development/python-modules/cheetah { };
 
-  labelbox = callPackage ../development/python-modules/labelbox { };
+  cheroot = callPackage ../development/python-modules/cheroot { };
 
-  lammps-cython = callPackage ../development/python-modules/lammps-cython {
-    mpi = pkgs.openmpi;
-  };
+  cherrypy = if isPy3k then
+    callPackage ../development/python-modules/cherrypy { }
+  else
+    callPackage ../development/python-modules/cherrypy/17.nix { };
 
-  langdetect = callPackage ../development/python-modules/langdetect { };
+  chevron = callPackage ../development/python-modules/chevron { };
 
-  launchpadlib = callPackage ../development/python-modules/launchpadlib { };
+  ci-info = callPackage ../development/python-modules/ci-info { };
 
-  lazr_config = callPackage ../development/python-modules/lazr/config.nix { };
+  ci-py = callPackage ../development/python-modules/ci-py { };
 
-  lazr_delegates = callPackage ../development/python-modules/lazr/delegates.nix { };
+  cirq = callPackage ../development/python-modules/cirq { };
 
-  lazr-restfulclient = callPackage ../development/python-modules/lazr-restfulclient { };
+  ciso8601 = callPackage ../development/python-modules/ciso8601 { };
 
-  lazr-uri = callPackage ../development/python-modules/lazr-uri { };
+  citeproc-py = callPackage ../development/python-modules/citeproc-py { };
 
-  libmr = callPackage ../development/python-modules/libmr { };
+  cjson = callPackage ../development/python-modules/cjson { };
 
-  limitlessled = callPackage ../development/python-modules/limitlessled { };
+  ckcc-protocol = callPackage ../development/python-modules/ckcc-protocol { };
 
-  livelossplot = callPackage ../development/python-modules/livelossplot { };
+  cld2-cffi = callPackage ../development/python-modules/cld2-cffi { };
 
-  lmtpd = callPackage ../development/python-modules/lmtpd { };
+  cleo = callPackage ../development/python-modules/cleo { };
 
-  logster = callPackage ../development/python-modules/logster { };
+  clf = callPackage ../development/python-modules/clf { };
 
-  loguru = callPackage ../development/python-modules/loguru { };
+  cliapp = callPackage ../development/python-modules/cliapp { };
 
-  logzero = callPackage ../development/python-modules/logzero { };
+  click = callPackage ../development/python-modules/click { };
 
-  mac_alias = callPackage ../development/python-modules/mac_alias { };
+  clickclick = callPackage ../development/python-modules/clickclick { };
 
-  macropy = callPackage ../development/python-modules/macropy { };
+  click-completion = callPackage ../development/python-modules/click-completion { };
 
-  mail-parser = callPackage ../development/python-modules/mail-parser { };
+  click-datetime = callPackage ../development/python-modules/click-datetime { };
 
-  mailman = callPackage ../servers/mail/mailman { };
+  click-default-group = callPackage ../development/python-modules/click-default-group { };
 
-  mailman-web = callPackage ../servers/mail/mailman/web.nix { };
+  click-didyoumean = callPackage ../development/python-modules/click-didyoumean { };
 
-  mailmanclient = callPackage ../development/python-modules/mailmanclient { };
+  click-log = callPackage ../development/python-modules/click-log { };
 
-  mailman-hyperkitty = callPackage ../development/python-modules/mailman-hyperkitty { };
+  click-plugins = callPackage ../development/python-modules/click-plugins { };
 
-  manhole = callPackage ../development/python-modules/manhole { };
+  click-repl = callPackage ../development/python-modules/click-repl { };
 
-  mapbox = callPackage ../development/python-modules/mapbox { };
+  click-threading = callPackage ../development/python-modules/click-threading { };
 
-  markerlib = callPackage ../development/python-modules/markerlib { };
+  cliff = callPackage ../development/python-modules/cliff { };
 
-  mask-rcnn = callPackage ../development/python-modules/mask-rcnn { };
+  clifford = callPackage ../development/python-modules/clifford { };
 
-  matchpy = callPackage ../development/python-modules/matchpy { };
+  cligj = callPackage ../development/python-modules/cligj { };
 
-  mathlibtools = callPackage ../development/python-modules/mathlibtools {};
+  cli-helpers = callPackage ../development/python-modules/cli-helpers { };
 
-  maxminddb = callPackage ../development/python-modules/maxminddb { };
+  clikit = callPackage ../development/python-modules/clikit { };
 
-  mininet-python = (toPythonModule (pkgs.mininet.override{ inherit python; })).py;
+  clint = callPackage ../development/python-modules/clint { };
 
-  mkl-service = callPackage ../development/python-modules/mkl-service { };
+  clize = callPackage ../development/python-modules/clize { };
 
-  mnist = callPackage ../development/python-modules/mnist { };
+  closure-linter = callPackage ../development/python-modules/closure-linter { };
 
-  monkeyhex = callPackage ../development/python-modules/monkeyhex { };
+  cloudflare = callPackage ../development/python-modules/cloudflare { };
 
-  monty = callPackage ../development/python-modules/monty { };
+  cloudpickle = callPackage ../development/python-modules/cloudpickle { };
 
-  mpi4py = callPackage ../development/python-modules/mpi4py {
-    mpi = pkgs.openmpi;
-  };
+  clustershell = callPackage ../development/python-modules/clustershell { };
 
-  pytest-freezegun = callPackage ../development/python-modules/pytest-freezegun { };
+  cma = callPackage ../development/python-modules/cma { };
 
-  python-baseconv = callPackage ../development/python-modules/python-baseconv { };
+  cmarkgfm = callPackage ../development/python-modules/cmarkgfm { };
 
-  pycognito = callPackage ../development/python-modules/pycognito { };
+  cmd2 = callPackage ../development/python-modules/cmd2 { };
 
-  python-mpv-jsonipc = callPackage ../development/python-modules/python-mpv-jsonipc { };
+  cmdline = callPackage ../development/python-modules/cmdline { };
 
-  mortgage = callPackage ../development/python-modules/mortgage { };
+  cmdtest = callPackage ../development/python-modules/cmdtest { };
 
-  msal = callPackage ../development/python-modules/msal { };
+  cntk = callPackage ../development/python-modules/cntk { };
 
-  msal-extensions = callPackage ../development/python-modules/msal-extensions { };
+  cnvkit = callPackage ../development/python-modules/cnvkit { };
 
-  msrest = callPackage ../development/python-modules/msrest { };
+  cocotb = callPackage ../development/python-modules/cocotb { };
 
-  msrestazure = callPackage ../development/python-modules/msrestazure { };
+  codecov = callPackage ../development/python-modules/codecov { };
 
-  multiset = callPackage ../development/python-modules/multiset { };
+  codespell = callPackage ../development/python-modules/codespell { };
 
-  mwclient = callPackage ../development/python-modules/mwclient { };
+  cogapp = callPackage ../development/python-modules/cogapp { };
 
-  mwoauth = callPackage ../development/python-modules/mwoauth { };
+  coilmq = callPackage ../development/python-modules/coilmq { };
 
-  nagiosplugin = callPackage ../development/python-modules/nagiosplugin { };
+  coinmarketcap = callPackage ../development/python-modules/coinmarketcap { };
 
-  nanomsg-python = callPackage ../development/python-modules/nanomsg-python { inherit (pkgs) nanomsg; };
+  ColanderAlchemy = callPackage ../development/python-modules/colanderalchemy { };
 
-  nassl = callPackage ../development/python-modules/nassl { };
+  colander = callPackage ../development/python-modules/colander { };
 
-  nbsmoke = callPackage ../development/python-modules/nbsmoke { };
+  colorama = callPackage ../development/python-modules/colorama { };
 
-  nbsphinx = callPackage ../development/python-modules/nbsphinx { };
+  colorcet = callPackage ../development/python-modules/colorcet { };
 
-  nbval = callPackage ../development/python-modules/nbval { };
+  colorclass = callPackage ../development/python-modules/colorclass { };
 
-  ndtypes = callPackage ../development/python-modules/ndtypes { };
+  colored = callPackage ../development/python-modules/colored { };
 
-  neo = callPackage ../development/python-modules/neo { };
+  coloredlogs = callPackage ../development/python-modules/coloredlogs { };
 
-  nest-asyncio = callPackage ../development/python-modules/nest-asyncio { };
+  colorful = callPackage ../development/python-modules/colorful { };
 
-  neuron = pkgs.neuron.override {
-    inherit python;
-  };
+  colorlog = callPackage ../development/python-modules/colorlog { };
 
-  neuron-mpi = pkgs.neuron-mpi.override {
-    inherit python;
-  };
+  colorlover = callPackage ../development/python-modules/colorlover { };
 
-  nix-prefetch-github = callPackage ../development/python-modules/nix-prefetch-github { };
+  colormath = callPackage ../development/python-modules/colormath { };
 
-  nixpart = callPackage ../tools/filesystems/nixpart { };
+  colorspacious = callPackage ../development/python-modules/colorspacious { };
 
-  # 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 { };
+  colour = callPackage ../development/python-modules/colour { };
 
-  nltk = callPackage ../development/python-modules/nltk { };
+  CommonMark = callPackage ../development/python-modules/commonmark { };
 
-  ntlm-auth = callPackage ../development/python-modules/ntlm-auth { };
+  compiledb = callPackage ../development/python-modules/compiledb { };
 
-  nvchecker = callPackage ../development/python-modules/nvchecker { };
+  conda = callPackage ../development/python-modules/conda { };
 
-  numericalunits = callPackage ../development/python-modules/numericalunits { };
+  ConfigArgParse = callPackage ../development/python-modules/configargparse { };
 
-  nunavut = callPackage ../development/python-modules/nunavut { };
+  configobj = callPackage ../development/python-modules/configobj { };
 
-  oath = callPackage ../development/python-modules/oath { };
+  configparser = if pythonOlder "3.6" then
+    callPackage ../development/python-modules/configparser/4.nix { }
+  else
+    callPackage ../development/python-modules/configparser { };
 
-  oauthenticator = callPackage ../development/python-modules/oauthenticator { };
+  configshell = callPackage ../development/python-modules/configshell { };
 
-  onnx = callPackage ../development/python-modules/onnx { };
+  confluent-kafka = callPackage ../development/python-modules/confluent-kafka { };
 
-  ordered-set = callPackage ../development/python-modules/ordered-set { };
+  connexion = callPackage ../development/python-modules/connexion { };
 
-  orderedmultidict = callPackage ../development/python-modules/orderedmultidict { };
+  consonance = callPackage ../development/python-modules/consonance { };
 
-  ortools = (toPythonModule (pkgs.or-tools.override {
-    inherit (self) python;
-  })).python;
+  constantly = callPackage ../development/python-modules/constantly { };
 
-  osmnx = callPackage ../development/python-modules/osmnx { };
+  construct = callPackage ../development/python-modules/construct { };
 
-  osmpythontools = callPackage ../development/python-modules/osmpythontools { };
+  consul = callPackage ../development/python-modules/consul { };
 
-  outcome = callPackage ../development/python-modules/outcome {};
+  contexter = callPackage ../development/python-modules/contexter { };
 
-  ovito = toPythonModule (pkgs.libsForQt5.callPackage ../development/python-modules/ovito {
-      pythonPackages = self;
-    });
+  contextlib2 = callPackage ../development/python-modules/contextlib2 { };
 
-  palettable = callPackage ../development/python-modules/palettable { };
+  contextvars = callPackage ../development/python-modules/contextvars { };
 
-  papermill = callPackage ../development/python-modules/papermill { };
+  convertdate = callPackage ../development/python-modules/convertdate { };
 
-  parsley = callPackage ../development/python-modules/parsley { };
+  cookiecutter = callPackage ../development/python-modules/cookiecutter { };
 
-  pastel = callPackage ../development/python-modules/pastel { };
+  cookies = callPackage ../development/python-modules/cookies { };
 
-  pathlib = callPackage ../development/python-modules/pathlib { };
+  coordinates = callPackage ../development/python-modules/coordinates { };
 
-  pc-ble-driver-py = toPythonModule (callPackage ../development/python-modules/pc-ble-driver-py { });
+  coreapi = callPackage ../development/python-modules/coreapi { };
 
-  pcpp = callPackage ../development/python-modules/pcpp { };
+  coreschema = callPackage ../development/python-modules/coreschema { };
 
-  pdf2image = callPackage ../development/python-modules/pdf2image { };
+  cornice = callPackage ../development/python-modules/cornice { };
 
-  pdfminer = callPackage ../development/python-modules/pdfminer_six { };
+  cot = callPackage ../development/python-modules/cot { };
 
-  pdfposter = callPackage ../development/python-modules/pdfposter { };
+  covCore = callPackage ../development/python-modules/cov-core { };
 
-  pdftotext = callPackage ../development/python-modules/pdftotext { };
+  coverage = callPackage ../development/python-modules/coverage { };
 
-  pdfx = callPackage ../development/python-modules/pdfx { };
+  coveralls = callPackage ../development/python-modules/coveralls { };
 
-  pushover-complete = callPackage ../development/python-modules/pushover-complete { };
+  cozy = callPackage ../development/python-modules/cozy { };
 
-  pyicloud = callPackage ../development/python-modules/pyicloud { };
+  cppy = callPackage ../development/python-modules/cppy { };
 
-  pyperf = callPackage ../development/python-modules/pyperf { };
+  cram = callPackage ../development/python-modules/cram { };
 
-  pyphotonfile = callPackage ../development/python-modules/pyphotonfile { };
+  crashtest = callPackage ../development/python-modules/crashtest { };
 
-  pefile = callPackage ../development/python-modules/pefile { };
+  crayons = callPackage ../development/python-modules/crayons { };
 
-  perfplot = callPackage ../development/python-modules/perfplot { };
+  crc16 = callPackage ../development/python-modules/crc16 { };
 
-  phonopy = callPackage ../development/python-modules/phonopy { };
+  crc32c = callPackage ../development/python-modules/crc32c { };
 
-  phik = callPackage ../development/python-modules/phik {};
+  crccheck = callPackage ../development/python-modules/crccheck { };
 
-  piccata = callPackage ../development/python-modules/piccata {};
+  crcmod = callPackage ../development/python-modules/crcmod { };
 
-  pims = callPackage ../development/python-modules/pims { };
+  credstash = callPackage ../development/python-modules/credstash { };
 
-  poetry = callPackage ../development/python-modules/poetry { };
+  croniter = callPackage ../development/python-modules/croniter { };
 
-  poetry-core = callPackage ../development/python-modules/poetry-core { };
+  cryptacular = callPackage ../development/python-modules/cryptacular { };
 
-  polyline = callPackage ../development/python-modules/polyline { };
+  cryptography = if isPy27 then
+    callPackage ../development/python-modules/cryptography/2.9.nix { }
+  else
+    callPackage ../development/python-modules/cryptography { };
 
-  postorius = disabledIf (!isPy3k) (callPackage ../servers/mail/mailman/postorius.nix { });
+  cryptography_vectors = if isPy27 then
+    callPackage ../development/python-modules/cryptography/vectors-2.9.nix { }
+  else
+    callPackage ../development/python-modules/cryptography/vectors.nix { };
 
-  pplpy = callPackage ../development/python-modules/pplpy { };
+  csscompressor = callPackage ../development/python-modules/csscompressor { };
 
-  pprintpp = callPackage ../development/python-modules/pprintpp { };
+  cssmin = callPackage ../development/python-modules/cssmin { };
 
-  progress = callPackage ../development/python-modules/progress { };
+  css-parser = callPackage ../development/python-modules/css-parser { };
 
-  proglog = callPackage ../development/python-modules/proglog { };
+  cssselect2 = callPackage ../development/python-modules/cssselect2 { };
 
-  pulsectl = callPackage ../development/python-modules/pulsectl { };
+  cssselect = callPackage ../development/python-modules/cssselect { };
 
-  pure-python-adb-homeassistant = callPackage ../development/python-modules/pure-python-adb-homeassistant { };
+  cssutils = callPackage ../development/python-modules/cssutils { };
 
-  pure-eval = callPackage ../development/python-modules/pure-eval {};
+  csvs-to-sqlite = callPackage ../development/python-modules/csvs-to-sqlite { };
 
-  purl = callPackage ../development/python-modules/purl { };
+  cucumber-tag-expressions = callPackage ../development/python-modules/cucumber-tag-expressions { };
 
-  pyclipper = callPackage ../development/python-modules/pyclipper { };
+  cufflinks = callPackage ../development/python-modules/cufflinks { };
 
-  pymystem3 = callPackage ../development/python-modules/pymystem3 { };
+  cupy = callPackage ../development/python-modules/cupy {
+    cudatoolkit = pkgs.cudatoolkit_10_0;
+    cudnn = pkgs.cudnn_cudatoolkit_10_0;
+    nccl = pkgs.nccl_cudatoolkit_10;
+  };
 
-  pymysql = callPackage ../development/python-modules/pymysql { };
+  curio = callPackage ../development/python-modules/curio { };
 
-  pymupdf = callPackage ../development/python-modules/pymupdf { };
+  curtsies = callPackage ../development/python-modules/curtsies { };
 
-  pynamecheap = callPackage ../development/python-modules/pynamecheap { };
+  curve25519-donna = callPackage ../development/python-modules/curve25519-donna { };
 
-  Pmw = callPackage ../development/python-modules/Pmw { };
+  cvxopt = callPackage ../development/python-modules/cvxopt { };
 
-  py_stringmatching = callPackage ../development/python-modules/py_stringmatching { };
+  cvxpy = callPackage ../development/python-modules/cvxpy { };
 
-  pyaes = callPackage ../development/python-modules/pyaes { };
+  cx_Freeze = callPackage ../development/python-modules/cx_freeze { };
 
-  pyairvisual = callPackage ../development/python-modules/pyairvisual { };
+  cx_oracle = callPackage ../development/python-modules/cx_oracle { };
 
-  pyamf = callPackage ../development/python-modules/pyamf { };
+  cycler = callPackage ../development/python-modules/cycler { };
 
-  pyarrow = callPackage ../development/python-modules/pyarrow {
-    inherit (pkgs) arrow-cpp cmake pkgconfig;
-  };
+  cymem = callPackage ../development/python-modules/cymem { };
 
-  pyannotate = callPackage ../development/python-modules/pyannotate { };
+  cypari2 = callPackage ../development/python-modules/cypari2 { };
 
-  pyatspi = callPackage ../development/python-modules/pyatspi {
-    inherit (pkgs) pkgconfig;
-  };
+  cysignals = callPackage ../development/python-modules/cysignals { };
 
-  pyaxmlparser = callPackage ../development/python-modules/pyaxmlparser { };
+  cython = callPackage ../development/python-modules/Cython { };
 
-  pybids = callPackage ../development/python-modules/pybids { };
+  cytoolz = callPackage ../development/python-modules/cytoolz { };
 
-  pybind11 = callPackage ../development/python-modules/pybind11 { };
+  d2to1 = callPackage ../development/python-modules/d2to1 { };
 
-  py3buddy = toPythonModule (callPackage ../development/python-modules/py3buddy { });
+  daemonize = callPackage ../development/python-modules/daemonize { };
 
-  pybullet = callPackage ../development/python-modules/pybullet { };
+  daphne = callPackage ../development/python-modules/daphne { };
 
-  pycairo = callPackage ../development/python-modules/pycairo {
-    inherit (pkgs) meson pkgconfig;
-  };
+  darcsver = callPackage ../development/python-modules/darcsver { };
 
-  pycategories = callPackage ../development/python-modules/pycategories { };
+  dash = callPackage ../development/python-modules/dash { };
 
-  pycangjie = disabledIf (!isPy3k) (callPackage ../development/python-modules/pycangjie {
-    inherit (pkgs) pkgconfig;
-  });
+  dash-core-components = callPackage ../development/python-modules/dash-core-components { };
 
-  pycrc = callPackage ../development/python-modules/pycrc { };
+  dash-html-components = callPackage ../development/python-modules/dash-html-components { };
 
-  pycrypto = callPackage ../development/python-modules/pycrypto { };
+  dash-renderer = callPackage ../development/python-modules/dash-renderer { };
 
-  pycryptodome = callPackage ../development/python-modules/pycryptodome { };
+  dash-table = callPackage ../development/python-modules/dash-table { };
 
-  pycryptodomex = callPackage ../development/python-modules/pycryptodomex { };
+  dask = callPackage ../development/python-modules/dask { };
 
-  PyChromecast = callPackage ../development/python-modules/pychromecast { };
+  dask-gateway = callPackage ../development/python-modules/dask-gateway { };
 
-  pycm = callPackage ../development/python-modules/pycm { };
+  dask-gateway-server = callPackage ../development/python-modules/dask-gateway-server { inherit (pkgs) go; };
 
-  py-cpuinfo = callPackage ../development/python-modules/py-cpuinfo { };
+  dask-glm = callPackage ../development/python-modules/dask-glm { };
 
-  py-lru-cache = callPackage ../development/python-modules/py-lru-cache { };
+  dask-image = callPackage ../development/python-modules/dask-image { };
 
-  py-multibase = callPackage ../development/python-modules/py-multibase { };
+  dask-jobqueue = callPackage ../development/python-modules/dask-jobqueue { };
 
-  py-multihash = callPackage ../development/python-modules/py-multihash { };
+  dask-ml = callPackage ../development/python-modules/dask-ml { };
 
-  py-radix = callPackage ../development/python-modules/py-radix { };
+  dask-mpi = callPackage ../development/python-modules/dask-mpi { };
 
-  pydbus = callPackage ../development/python-modules/pydbus { };
+  dask-xgboost = callPackage ../development/python-modules/dask-xgboost { };
 
-  pydicom = callPackage ../development/python-modules/pydicom { };
+  databases = callPackage ../development/python-modules/databases { };
 
-  pydocstyle =
-    if isPy27 then
-      callPackage ../development/python-modules/pydocstyle/2.nix { }
-    else
-      callPackage ../development/python-modules/pydocstyle { };
+  databricks-cli = callPackage ../development/python-modules/databricks-cli { };
 
-  pydocumentdb = callPackage ../development/python-modules/pydocumentdb { };
+  databricks-connect = callPackage ../development/python-modules/databricks-connect { inherit (pkgs) jdk; };
 
-  pydrive = callPackage ../development/python-modules/pydrive { };
+  dataclasses = callPackage ../development/python-modules/dataclasses { };
 
-  pydy = callPackage ../development/python-modules/pydy { };
+  dataclasses-json = callPackage ../development/python-modules/dataclasses-json { };
 
-  pyexiv2 = disabledIf isPy3k (toPythonModule (callPackage ../development/python-modules/pyexiv2 {}));
+  datadiff = callPackage ../development/python-modules/datadiff { };
 
-  py3exiv2 = callPackage ../development/python-modules/py3exiv2 { };
+  datadog = callPackage ../development/python-modules/datadog { };
 
-  pyfakefs = callPackage ../development/python-modules/pyfakefs {};
+  datamodeldict = callPackage ../development/python-modules/datamodeldict { };
 
-  pyfaidx = callPackage ../development/python-modules/pyfaidx { };
+  datasette = callPackage ../development/python-modules/datasette { };
 
-  pyfcm = callPackage ../development/python-modules/pyfcm { };
+  datashader = callPackage ../development/python-modules/datashader { };
 
-  pyfttt = callPackage ../development/python-modules/pyfttt { };
+  datashape = callPackage ../development/python-modules/datashape { };
 
-  pyftdi = callPackage ../development/python-modules/pyftdi { };
+  datatable =
+    callPackage ../development/python-modules/datatable { inherit (pkgs.llvmPackages) openmp libcxx libcxxabi; };
 
-  pygame = callPackage ../development/python-modules/pygame { };
+  dateparser = callPackage ../development/python-modules/dateparser { };
 
-  pygbm = callPackage ../development/python-modules/pygbm { };
+  datrie = callPackage ../development/python-modules/datrie { };
 
-  pygame_sdl2 = callPackage ../development/python-modules/pygame_sdl2 { };
+  dbf = callPackage ../development/python-modules/dbf { };
 
-  pygdbmi = callPackage ../development/python-modules/pygdbmi { };
+  dbfread = callPackage ../development/python-modules/dbfread { };
 
-  pygmo = callPackage ../development/python-modules/pygmo { };
+  dbus-python = callPackage ../development/python-modules/dbus { inherit (pkgs) dbus pkgconfig; };
 
-  pygobject2 = callPackage ../development/python-modules/pygobject {
-    inherit (pkgs) pkgconfig;
-  };
+  dcmstack = callPackage ../development/python-modules/dcmstack { };
 
-  pygobject3 = callPackage ../development/python-modules/pygobject/3.nix {
-    inherit (pkgs) meson pkgconfig;
-  };
+  ddt = callPackage ../development/python-modules/ddt { };
 
-  pygtail = callPackage ../development/python-modules/pygtail { };
+  deap = callPackage ../development/python-modules/deap { };
 
-  pygtk = callPackage ../development/python-modules/pygtk {
-    inherit (pkgs) pkgconfig;
-    libglade = null;
-  };
+  debian = callPackage ../development/python-modules/debian { };
 
-  pygtksourceview = callPackage ../development/python-modules/pygtksourceview {
-    inherit (pkgs) pkgconfig;
-  };
+  debts = callPackage ../development/python-modules/debts { };
 
-  pyGtkGlade = self.pygtk.override {
-    libglade = pkgs.gnome2.libglade;
-  };
+  debugpy = callPackage ../development/python-modules/debugpy { };
 
-  pyjwkest = callPackage ../development/python-modules/pyjwkest { };
+  decorator = callPackage ../development/python-modules/decorator { };
 
-  pykdtree = callPackage ../development/python-modules/pykdtree {
-    inherit (pkgs.llvmPackages) openmp;
-  };
+  deepdiff = callPackage ../development/python-modules/deepdiff { };
 
-  pykerberos = callPackage ../development/python-modules/pykerberos { };
+  deepmerge = callPackage ../development/python-modules/deepmerge { };
 
-  pykeepass = callPackage ../development/python-modules/pykeepass { };
+  deeptoolsintervals = callPackage ../development/python-modules/deeptoolsintervals { };
 
-  pylev = callPackage ../development/python-modules/pylev { };
+  defcon = callPackage ../development/python-modules/defcon { };
 
-  pylibftdi = callPackage ../development/python-modules/pylibftdi {
-    inherit (pkgs) libusb1;
-  };
+  deform = callPackage ../development/python-modules/deform { };
 
-  pymatgen = callPackage ../development/python-modules/pymatgen { };
+  defusedxml = callPackage ../development/python-modules/defusedxml { };
 
-  pymatgen-lammps = callPackage ../development/python-modules/pymatgen-lammps { };
+  delegator-py = callPackage ../development/python-modules/delegator-py { };
 
-  pymavlink = callPackage ../development/python-modules/pymavlink { };
+  deluge-client = callPackage ../development/python-modules/deluge-client { };
 
-  pymeeus = callPackage ../development/python-modules/pymeeus { };
+  demjson = callPackage ../development/python-modules/demjson { };
 
-  pymsgbox = callPackage ../development/python-modules/pymsgbox { };
+  dendropy = callPackage ../development/python-modules/dendropy { };
 
-  pynanoleaf = callPackage ../development/python-modules/pynanoleaf { };
+  denonavr = callPackage ../development/python-modules/denonavr { };
 
-  pynisher = callPackage ../development/python-modules/pynisher { };
+  dependency-injector = callPackage ../development/python-modules/dependency-injector { };
 
-  pynput = callPackage ../development/python-modules/pynput { };
+  deprecated = callPackage ../development/python-modules/deprecated { };
 
-  pyparser = callPackage ../development/python-modules/pyparser { };
+  deprecation = callPackage ../development/python-modules/deprecation { };
 
-  pyres = callPackage ../development/python-modules/pyres { };
+  derpconf = callPackage ../development/python-modules/derpconf { };
 
-  PyRMVtransport = callPackage ../development/python-modules/PyRMVtransport { };
+  descartes = callPackage ../development/python-modules/descartes { };
 
-  pyqt4 = callPackage ../development/python-modules/pyqt/4.x.nix {
-    inherit (pkgs) pkgconfig;
-  };
+  deskcon = callPackage ../development/python-modules/deskcon { };
 
-  pyqt5 = pkgs.libsForQt5.callPackage ../development/python-modules/pyqt/5.x.nix {
-    pythonPackages = self;
-  };
+  detox = throw "detox is no longer maintained, and was broken since may 2019"; # added 2020-07-04
 
-  /*
-    `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; };
+  devpi-common = callPackage ../development/python-modules/devpi-common { };
 
-  pyqt5_with_qtmultimedia = self.pyqt5.override { withMultimedia = true; };
+  dftfit = callPackage ../development/python-modules/dftfit { };
 
-  pyqtwebengine = pkgs.libsForQt5.callPackage ../development/python-modules/pyqtwebengine {
-    pythonPackages = self;
-  };
+  diceware = callPackage ../development/python-modules/diceware { };
 
-  pysc2 = callPackage ../development/python-modules/pysc2 { };
+  dicom2nifti = callPackage ../development/python-modules/dicom2nifti { };
 
-  pyscard = callPackage ../development/python-modules/pyscard { inherit (pkgs.darwin.apple_sdk.frameworks) PCSC; };
+  dict2xml = callPackage ../development/python-modules/dict2xml { };
 
-  pyschedule = callPackage ../development/python-modules/pyschedule { };
+  dictionaries = callPackage ../development/python-modules/dictionaries { };
 
-  pyscreenshot = callPackage ../development/python-modules/pyscreenshot { };
+  dicttoxml = callPackage ../development/python-modules/dicttoxml { };
 
-  pydsdl = callPackage ../development/python-modules/pydsdl { };
+  diff_cover = callPackage ../development/python-modules/diff_cover { };
 
-  pyside = callPackage ../development/python-modules/pyside {
-    inherit (pkgs) mesa;
-  };
+  diff-match-patch = callPackage ../development/python-modules/diff-match-patch { };
 
-  pysideShiboken = callPackage ../development/python-modules/pyside/shiboken.nix {
-    inherit (pkgs) libxml2 libxslt; # Do not need the Python bindings.
-  };
+  digital-ocean = callPackage ../development/python-modules/digitalocean { };
 
-  pysideTools = callPackage ../development/python-modules/pyside/tools.nix { };
+  digi-xbee = callPackage ../development/python-modules/digi-xbee { };
 
-  pyside2 = toPythonModule (callPackage ../development/python-modules/pyside2 {
-    inherit (pkgs) cmake qt5 ninja;
-  });
+  dill = callPackage ../development/python-modules/dill { };
 
-  shiboken2 = toPythonModule (callPackage ../development/python-modules/shiboken2 {
-    inherit (pkgs) cmake qt5 llvmPackages;
-  });
+  diofant = callPackage ../development/python-modules/diofant { };
 
-  simplefix = callPackage ../development/python-modules/simplefix { };
+  dipy = callPackage ../development/python-modules/dipy { };
 
-  pyscrypt = callPackage ../development/python-modules/pyscrypt { };
+  discid = callPackage ../development/python-modules/discid { };
 
-  pyside2-tools = toPythonModule (callPackage ../development/python-modules/pyside2-tools {
-    inherit (pkgs) cmake qt5;
-  });
+  discogs_client = callPackage ../development/python-modules/discogs_client { };
 
-  pyslurm = callPackage ../development/python-modules/pyslurm {
-    slurm = pkgs.slurm;
-  };
+  discordpy = callPackage ../development/python-modules/discordpy { };
 
-  pysmb = callPackage ../development/python-modules/pysmb { };
+  diskcache = callPackage ../development/python-modules/diskcache { };
 
-  pysmf = callPackage ../development/python-modules/pysmf { };
+  dissononce = callPackage ../development/python-modules/dissononce { };
 
-  pyspinel = callPackage ../development/python-modules/pyspinel {};
+  distlib = callPackage ../development/python-modules/distlib { };
 
-  pyssim = callPackage ../development/python-modules/pyssim { };
+  distorm3 = callPackage ../development/python-modules/distorm3 { };
 
-  pystache = callPackage ../development/python-modules/pystache { };
+  distributed = callPackage ../development/python-modules/distributed { };
 
-  pystray = callPackage ../development/python-modules/pystray { };
+  distro = callPackage ../development/python-modules/distro { };
 
-  pytelegrambotapi = callPackage ../development/python-modules/pyTelegramBotAPI { };
+  distutils_extra = callPackage ../development/python-modules/distutils_extra { };
 
-  pytesseract = callPackage ../development/python-modules/pytesseract { };
+  django_2_2 = callPackage ../development/python-modules/django/2_2.nix { };
 
-  pytest-bdd = callPackage ../development/python-modules/pytest-bdd { };
+  django-allauth = callPackage ../development/python-modules/django-allauth { };
 
-  pytest-black = callPackage ../development/python-modules/pytest-black { };
+  django-anymail = callPackage ../development/python-modules/django-anymail { };
 
-  pytest-click = callPackage ../development/python-modules/pytest-click { };
+  django_appconf = callPackage ../development/python-modules/django_appconf { };
 
-  pytest-check = callPackage ../development/python-modules/pytest-check { };
+  django-auth-ldap = callPackage ../development/python-modules/django-auth-ldap { };
 
-  pytest-env = callPackage ../development/python-modules/pytest-env { };
+  django-cache-url = callPackage ../development/python-modules/django-cache-url { };
 
-  pytest-factoryboy = callPackage ../development/python-modules/pytest-factoryboy { };
+  django_classytags = callPackage ../development/python-modules/django_classytags { };
 
-  pytest-flask = callPackage ../development/python-modules/pytest-flask { };
+  django-cleanup = callPackage ../development/python-modules/django-cleanup { };
 
-  pytest-mypy = callPackage ../development/python-modules/pytest-mypy { };
+  django_colorful = callPackage ../development/python-modules/django_colorful { };
 
-  pytest-ordering = callPackage ../development/python-modules/pytest-ordering { };
+  django_compat = callPackage ../development/python-modules/django-compat { };
 
-  pytest-pylint = callPackage ../development/python-modules/pytest-pylint { };
+  django_compressor = callPackage ../development/python-modules/django_compressor { };
 
-  pytest-qt = callPackage ../development/python-modules/pytest-qt { };
+  django-configurations = callPackage ../development/python-modules/django-configurations { };
 
-  pytest-testmon = callPackage ../development/python-modules/pytest-testmon { };
+  django_contrib_comments = callPackage ../development/python-modules/django_contrib_comments { };
 
-  pytest-tornado = callPackage ../development/python-modules/pytest-tornado { };
+  django-cors-headers = callPackage ../development/python-modules/django-cors-headers { };
 
-  pytest-tornasync = callPackage ../development/python-modules/pytest-tornasync { };
+  django-csp = callPackage ../development/python-modules/django-csp { };
 
-  pytest-trio = callPackage ../development/python-modules/pytest-trio { };
+  django-discover-runner = callPackage ../development/python-modules/django-discover-runner { };
 
-  pytest-twisted = callPackage ../development/python-modules/pytest-twisted { };
+  django-dynamic-preferences = callPackage ../development/python-modules/django-dynamic-preferences { };
 
-  pytest-xprocess = callPackage ../development/python-modules/pytest-xprocess { };
+  django_environ = callPackage ../development/python-modules/django_environ { };
 
-  pytest-xvfb = callPackage ../development/python-modules/pytest-xvfb { };
+  django_evolution = callPackage ../development/python-modules/django_evolution { };
 
-  pytmx = callPackage ../development/python-modules/pytmx { };
+  django_extensions = callPackage ../development/python-modules/django-extensions { };
 
-  pythonmagick = callPackage ../development/python-modules/pythonmagick { };
+  django-filter = callPackage ../development/python-modules/django-filter { };
 
-  python-binance = callPackage ../development/python-modules/python-binance { };
+  django-gravatar2 = callPackage ../development/python-modules/django-gravatar2 { };
 
-  python-dbusmock = callPackage ../development/python-modules/python-dbusmock { };
+  django_guardian = callPackage ../development/python-modules/django_guardian { };
 
-  python-dotenv = callPackage ../development/python-modules/python-dotenv { };
+  django-haystack = callPackage ../development/python-modules/django-haystack { };
 
-  python-engineio = callPackage ../development/python-modules/python-engineio { };
+  django_hijack_admin = callPackage ../development/python-modules/django-hijack-admin { };
 
-  python-hosts = callPackage ../development/python-modules/python-hosts { };
+  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.
 
-  python-lz4 = callPackage ../development/python-modules/python-lz4 { };
-  lz4 = self.python-lz4; # alias 2018-12-05
+  django-ipware = callPackage ../development/python-modules/django-ipware { };
 
-  python-ldap-test = callPackage ../development/python-modules/python-ldap-test { };
+  django-jinja = callPackage ../development/python-modules/django-jinja2 { };
 
-  python-mnist = callPackage ../development/python-modules/python-mnist { };
+  django-logentry-admin = callPackage ../development/python-modules/django-logentry-admin { };
 
-  pythonocc-core = toPythonModule (callPackage ../development/python-modules/pythonocc-core {
-    inherit (pkgs.xorg) libX11;
-  });
+  django_lts = self.django_2_2;
 
-  python-igraph = callPackage ../development/python-modules/python-igraph {
-    pkgconfig = pkgs.pkgconfig;
-    igraph = pkgs.igraph;
-  };
+  django-mailman3 = callPackage ../development/python-modules/django-mailman3 { };
 
-  python-olm = callPackage ../development/python-modules/python-olm { };
+  django_modelcluster = callPackage ../development/python-modules/django_modelcluster { };
 
-  python3-openid = callPackage ../development/python-modules/python3-openid { };
+  django-multiselectfield = callPackage ../development/python-modules/django-multiselectfield { };
 
-  python-packer = callPackage ../development/python-modules/python-packer { };
+  django-maintenance-mode = callPackage ../development/python-modules/django-maintenance-mode { };
 
-  python-periphery = callPackage ../development/python-modules/python-periphery { };
+  django_nose = callPackage ../development/python-modules/django_nose { };
 
-  python-prctl = callPackage ../development/python-modules/python-prctl { };
+  django-oauth-toolkit = callPackage ../development/python-modules/django-oauth-toolkit { };
 
-  python-rapidjson = callPackage ../development/python-modules/python-rapidjson { };
+  django-paintstore = callPackage ../development/python-modules/django-paintstore { };
 
-  python-redis-lock = callPackage ../development/python-modules/python-redis-lock { };
+  django-pglocks = callPackage ../development/python-modules/django-pglocks { };
 
-  python-rtmidi = callPackage ../development/python-modules/python-rtmidi { };
+  django-picklefield = callPackage ../development/python-modules/django-picklefield { };
 
-  python-sql = callPackage ../development/python-modules/python-sql { };
+  django_pipeline = callPackage ../development/python-modules/django-pipeline { };
 
-  python-snappy = callPackage ../development/python-modules/python-snappy {
-    inherit (pkgs) snappy;
-  };
+  django_polymorphic = callPackage ../development/python-modules/django-polymorphic { };
 
-  python-stdnum = callPackage ../development/python-modules/python-stdnum { };
+  django-postgresql-netfields = callPackage ../development/python-modules/django-postgresql-netfields { };
 
-  python-socketio = callPackage ../development/python-modules/python-socketio { };
+  django-q = callPackage ../development/python-modules/django-q { };
 
-  python-utils = callPackage ../development/python-modules/python-utils { };
+  djangoql = callPackage ../development/python-modules/djangoql { };
 
-  python-vipaccess = callPackage ../development/python-modules/python-vipaccess { };
+  django-ranged-response = callPackage ../development/python-modules/django-ranged-response { };
 
-  pytimeparse =  callPackage ../development/python-modules/pytimeparse { };
+  django-raster = callPackage ../development/python-modules/django-raster { };
 
-  pytricia =  callPackage ../development/python-modules/pytricia { };
+  django_redis = callPackage ../development/python-modules/django_redis { };
 
-  pytrends = callPackage ../development/python-modules/pytrends { };
+  django-rest-auth = callPackage ../development/python-modules/django-rest-auth { };
 
-  py-vapid = callPackage ../development/python-modules/py-vapid { };
+  djangorestframework = callPackage ../development/python-modules/djangorestframework { };
 
-  PyWebDAV = callPackage ../development/python-modules/pywebdav { };
+  djangorestframework-jwt = callPackage ../development/python-modules/djangorestframework-jwt { };
 
-  pywebpush = callPackage ../development/python-modules/pywebpush { };
+  djangorestframework-simplejwt = callPackage ../development/python-modules/djangorestframework-simplejwt { };
 
-  pywebview = callPackage ../development/python-modules/pywebview { };
+  django_reversion = callPackage ../development/python-modules/django_reversion { };
 
-  pywick = callPackage ../development/python-modules/pywick { };
+  django-sampledatahelper = callPackage ../development/python-modules/django-sampledatahelper { };
 
-  pyxml = disabledIf isPy3k (callPackage ../development/python-modules/pyxml{ });
+  django = self.django_lts;
 
-  pyvcd = callPackage ../development/python-modules/pyvcd { };
+  django-sesame = callPackage ../development/python-modules/django-sesame { };
 
-  pyvcf = callPackage ../development/python-modules/pyvcf { };
+  django_silk = callPackage ../development/python-modules/django_silk { };
 
-  pyvoro = callPackage ../development/python-modules/pyvoro { };
+  django-simple-captcha = callPackage ../development/python-modules/django-simple-captcha { };
 
-  radish-bdd = callPackage ../development/python-modules/radish-bdd { };
+  django-sites = callPackage ../development/python-modules/django-sites { };
 
-  relatorio = callPackage ../development/python-modules/relatorio { };
+  django-sr = callPackage ../development/python-modules/django-sr { };
 
-  reproject = callPackage ../development/python-modules/reproject { };
+  django-storages = callPackage ../development/python-modules/django-storages { };
 
-  remotecv = callPackage ../development/python-modules/remotecv { };
+  django_tagging = callPackage ../development/python-modules/django_tagging { };
 
-  pyzufall = callPackage ../development/python-modules/pyzufall { };
+  django_taggit = callPackage ../development/python-modules/django_taggit { };
 
-  rig = callPackage ../development/python-modules/rig { };
+  django_treebeard = callPackage ../development/python-modules/django_treebeard { };
 
-  rhpl = disabledIf isPy3k (callPackage ../development/python-modules/rhpl {});
+  django-versatileimagefield = callPackage ../development/python-modules/django-versatileimagefield { };
 
-  rlp = callPackage ../development/python-modules/rlp { };
+  django-webpack-loader = callPackage ../development/python-modules/django-webpack-loader { };
 
-  rq = callPackage ../development/python-modules/rq { };
+  django-widget-tweaks = callPackage ../development/python-modules/django-widget-tweaks { };
 
-  rtmidi-python = callPackage ../development/python-modules/rtmidi-python { };
+  dj-database-url = callPackage ../development/python-modules/dj-database-url { };
 
-  rx = callPackage ../development/python-modules/rx { };
+  dj-email-url = callPackage ../development/python-modules/dj-email-url { };
 
-  sabyenc = callPackage ../development/python-modules/sabyenc { };
+  djmail = callPackage ../development/python-modules/djmail { };
 
-  sabyenc3 = callPackage ../development/python-modules/sabyenc3 { };
+  dj-search-url = callPackage ../development/python-modules/dj-search-url { };
 
-  salmon-mail = callPackage ../development/python-modules/salmon-mail { };
+  dkimpy = callPackage ../development/python-modules/dkimpy { };
 
-  sanic-auth = callPackage ../development/python-modules/sanic-auth { };
+  dlib = callPackage ../development/python-modules/dlib { inherit (pkgs) dlib; };
 
-  sapi-python-client = callPackage ../development/python-modules/sapi-python-client { };
+  dlx = callPackage ../development/python-modules/dlx { };
 
-  seekpath = callPackage ../development/python-modules/seekpath { };
+  dmenu-python = callPackage ../development/python-modules/dmenu { };
 
-  selectors2 = callPackage ../development/python-modules/selectors2 { };
+  dm-sonnet = callPackage ../development/python-modules/dm-sonnet { };
 
-  sacremoses = callPackage ../development/python-modules/sacremoses { };
+  dnslib = callPackage ../development/python-modules/dnslib { };
 
-  sentencepiece = callPackage ../development/python-modules/sentencepiece {
-    inherit (pkgs) sentencepiece pkgconfig;
-  };
+  dnspython = if isPy3k then
+    callPackage ../development/python-modules/dnspython { }
+  else
+    self.dnspython_1;
 
-  tokenizers = disabledIf (!isPy3k)
-    (toPythonModule (callPackage ../development/python-modules/tokenizers { }));
+  dnspython_1 = callPackage ../development/python-modules/dnspython/1.nix { };
 
-  towncrier = callPackage ../development/python-modules/towncrier {
-    inherit (pkgs) git;
-  };
+  dns = self.dnspython; # Alias for compatibility, 2017-12-10
 
-  transformers = callPackage ../development/python-modules/transformers { };
+  doc8 = callPackage ../development/python-modules/doc8 { };
 
-  transforms3d = callPackage ../development/python-modules/transforms3d { };
+  docker = callPackage ../development/python-modules/docker { };
 
-  trimesh = callPackage ../development/python-modules/trimesh {};
+  dockerfile-parse = callPackage ../development/python-modules/dockerfile-parse { };
 
-  sentinel = callPackage ../development/python-modules/sentinel { };
+  dockerpty = callPackage ../development/python-modules/dockerpty { };
 
-  sentry-sdk = callPackage ../development/python-modules/sentry-sdk {};
+  docker_pycreds = callPackage ../development/python-modules/docker-pycreds { };
 
-  sepaxml = callPackage ../development/python-modules/sepaxml { };
+  docker-py = disabledIf isPy27 (callPackage ../development/python-modules/docker-py { });
 
-  serversyncstorage = callPackage ../development/python-modules/serversyncstorage {};
+  dockerspawner = callPackage ../development/python-modules/dockerspawner { };
 
-  shellingham = callPackage ../development/python-modules/shellingham {};
+  docloud = callPackage ../development/python-modules/docloud { };
 
-  simpleaudio = callPackage ../development/python-modules/simpleaudio { };
+  docopt = callPackage ../development/python-modules/docopt { };
 
-  simpleeval = callPackage ../development/python-modules/simpleeval { };
+  docplex = callPackage ../development/python-modules/docplex { };
 
-  simple-salesforce = callPackage ../development/python-modules/simple-salesforce { };
+  docrep = callPackage ../development/python-modules/docrep { };
 
-  singledispatch = callPackage ../development/python-modules/singledispatch { };
+  doctest-ignore-unicode = callPackage ../development/python-modules/doctest-ignore-unicode { };
 
-  sip = callPackage ../development/python-modules/sip { };
+  docutils = callPackage ../development/python-modules/docutils { };
 
-  sortedcontainers = callPackage ../development/python-modules/sortedcontainers { };
+  dodgy = callPackage ../development/python-modules/dodgy { };
 
-  sklearn-deap = callPackage ../development/python-modules/sklearn-deap { };
+  dogpile_cache = callPackage ../development/python-modules/dogpile.cache { };
 
-  skorch = callPackage ../development/python-modules/skorch { };
+  dogpile_core = callPackage ../development/python-modules/dogpile.core { };
 
-  slackclient = callPackage ../development/python-modules/slackclient { };
+  dogtail = callPackage ../development/python-modules/dogtail { };
 
-  slicedimage = callPackage ../development/python-modules/slicedimage { };
+  dominate = callPackage ../development/python-modules/dominate { };
 
-  slicerator = callPackage ../development/python-modules/slicerator { };
+  dopy = callPackage ../development/python-modules/dopy { };
 
-  slither-analyzer = callPackage ../development/python-modules/slither-analyzer { };
+  dot2tex = callPackage ../development/python-modules/dot2tex { inherit (pkgs) graphviz; };
 
-  sly = callPackage ../development/python-modules/sly { };
+  dotnetcore2 = callPackage ../development/python-modules/dotnetcore2 { inherit (pkgs) substituteAll dotnet-sdk; };
 
-  snapcast = callPackage ../development/python-modules/snapcast { };
+  dparse = callPackage ../development/python-modules/dparse { };
 
-  soapysdr = toPythonModule (pkgs.soapysdr.override {
-    python = self.python;
-    usePython = true;
-  });
+  dpath = callPackage ../development/python-modules/dpath { };
 
-  soapysdr-with-plugins = toPythonModule (pkgs.soapysdr-with-plugins.override {
-    python = self.python;
-    usePython = true;
-  });
+  dpkt = callPackage ../development/python-modules/dpkt { };
 
-  softlayer = callPackage ../development/python-modules/softlayer { };
+  drf-yasg = callPackage ../development/python-modules/drf-yasg { };
 
-  sparse = callPackage ../development/python-modules/sparse { };
+  drms = callPackage ../development/python-modules/drms { };
 
-  spglib = callPackage ../development/python-modules/spglib { };
+  dropbox = callPackage ../development/python-modules/dropbox { };
 
-  spidev = callPackage ../development/python-modules/spidev { };
+  ds4drv = callPackage ../development/python-modules/ds4drv { inherit (pkgs) fetchFromGitHub bluez; };
 
-  srvlookup = callPackage ../development/python-modules/srvlookup { };
+  dtopt = callPackage ../development/python-modules/dtopt { };
 
-  sshpubkeys = callPackage ../development/python-modules/sshpubkeys { };
+  duckdb = callPackage ../development/python-modules/duckdb { duckdb = pkgs.duckdb; };
 
-  sshtunnel = callPackage ../development/python-modules/sshtunnel { };
+  duecredit = callPackage ../development/python-modules/duecredit { };
 
-  sslib = callPackage ../development/python-modules/sslib { };
+  dugong = callPackage ../development/python-modules/dugong { };
 
-  sslyze = callPackage ../development/python-modules/sslyze { };
+  dulwich = if isPy3k then
+    callPackage ../development/python-modules/dulwich { }
+  else
+    callPackage ../development/python-modules/dulwich/0_19.nix { };
 
-  statistics = callPackage ../development/python-modules/statistics { };
+  dyn = callPackage ../development/python-modules/dyn { };
 
-  stm32loader = callPackage ../development/python-modules/stm32loader { };
+  dynd = callPackage ../development/python-modules/dynd { };
 
-  stumpy = callPackage ../development/python-modules/stumpy { };
+  easydict = callPackage ../development/python-modules/easydict { };
 
-  stups-cli-support = callPackage ../development/python-modules/stups-cli-support { };
+  easygui = callPackage ../development/python-modules/easygui { };
 
-  stups-fullstop = callPackage ../development/python-modules/stups-fullstop { };
+  EasyProcess = callPackage ../development/python-modules/easyprocess { };
 
-  stups-pierone = callPackage ../development/python-modules/stups-pierone { };
+  easysnmp = callPackage ../development/python-modules/easysnmp {
+    openssl = pkgs.openssl;
+    net-snmp = pkgs.net-snmp;
+  };
 
-  stups-tokens = callPackage ../development/python-modules/stups-tokens { };
+  easy-thumbnails = callPackage ../development/python-modules/easy-thumbnails { };
 
-  stups-zign = callPackage ../development/python-modules/stups-zign { };
+  easywatch = callPackage ../development/python-modules/easywatch { };
 
-  sumo = callPackage ../development/python-modules/sumo { };
+  eccodes = toPythonModule (pkgs.eccodes.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
 
-  supervise_api = callPackage ../development/python-modules/supervise_api { };
+  ecdsa = callPackage ../development/python-modules/ecdsa { };
 
-  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; };
-  };
+  ecos = callPackage ../development/python-modules/ecos { };
 
-  tag-expressions = callPackage ../development/python-modules/tag-expressions { };
+  ecpy = callPackage ../development/python-modules/ecpy { };
 
-  tableaudocumentapi = callPackage ../development/python-modules/tableaudocumentapi { };
+  ed25519 = callPackage ../development/python-modules/ed25519 { };
 
-  tesserocr = callPackage ../development/python-modules/tesserocr { };
+  editorconfig = callPackage ../development/python-modules/editorconfig { };
 
-  tls-parser = callPackage ../development/python-modules/tls-parser { };
+  edward = callPackage ../development/python-modules/edward { };
 
-  trueskill = callPackage ../development/python-modules/trueskill { };
+  effect = callPackage ../development/python-modules/effect { };
 
-  trustme = callPackage ../development/python-modules/trustme {};
+  eggdeps = callPackage ../development/python-modules/eggdeps { };
 
-  trio = callPackage ../development/python-modules/trio {};
+  elasticsearch = callPackage ../development/python-modules/elasticsearch { };
 
-  sniffio = callPackage ../development/python-modules/sniffio { };
+  elasticsearch-dsl = callPackage ../development/python-modules/elasticsearch-dsl { };
 
-  spyder-kernels = callPackage ../development/python-modules/spyder-kernels {};
-  spyder-kernels_0_5 = callPackage ../development/python-modules/spyder-kernels/0.x.nix {};
+  elasticsearchdsl = self.elasticsearch-dsl; # alias
 
-  spyder = callPackage ../development/python-modules/spyder {};
-  spyder_3 = callPackage ../development/python-modules/spyder/3.nix { };
+  elementpath = callPackage ../development/python-modules/elementpath { };
 
-  tenacity = callPackage ../development/python-modules/tenacity { };
+  eliot = callPackage ../development/python-modules/eliot { };
 
-  tokenserver = callPackage ../development/python-modules/tokenserver {};
+  emailthreads = callPackage ../development/python-modules/emailthreads { };
 
-  toml = callPackage ../development/python-modules/toml { };
+  email_validator = callPackage ../development/python-modules/email-validator { };
 
-  tomlkit = callPackage ../development/python-modules/tomlkit { };
+  emcee = callPackage ../development/python-modules/emcee { };
 
-  toggl-cli = callPackage ../development/python-modules/toggl-cli { };
+  emoji = callPackage ../development/python-modules/emoji { };
 
-  uamqp = callPackage ../development/python-modules/uamqp {
-    inherit (pkgs.darwin.apple_sdk.frameworks) CFNetwork Security;
-  };
+  enaml = callPackage ../development/python-modules/enaml { };
 
-  ufonormalizer = callPackage ../development/python-modules/ufonormalizer { };
+  enamlx = callPackage ../development/python-modules/enamlx { };
 
-  ufoprocessor = callPackage ../development/python-modules/ufoprocessor { };
+  entrance = callPackage ../development/python-modules/entrance { routerFeatures = false; };
 
-  unifi = callPackage ../development/python-modules/unifi { };
+  entrance-with-router-features = callPackage ../development/python-modules/entrance { routerFeatures = true; };
 
-  uvcclient = callPackage ../development/python-modules/uvcclient { };
+  entrypoints = callPackage ../development/python-modules/entrypoints { };
 
-  uvloop = callPackage ../development/python-modules/uvloop {
-    inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices CoreServices;
-  };
+  enum34 = callPackage ../development/python-modules/enum34 { };
 
-  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";
-      };
-    });
-  };
+  enum = callPackage ../development/python-modules/enum { };
 
-  pyunifi = callPackage ../development/python-modules/pyunifi { };
+  enum-compat = callPackage ../development/python-modules/enum-compat { };
 
-  vdf = callPackage ../development/python-modules/vdf { };
+  envisage = callPackage ../development/python-modules/envisage { };
 
-  vdirsyncer = callPackage ../development/python-modules/vdirsyncer {
-    inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices Security;
-    inherit (pkgs) pkg-config openssl rustPlatform;
-  };
+  envs = callPackage ../development/python-modules/envs { };
 
-  vdirsyncerStable = callPackage ../development/python-modules/vdirsyncer/stable.nix { };
+  enzyme = callPackage ../development/python-modules/enzyme { };
 
-  vidstab = callPackage ../development/python-modules/vidstab { };
+  epc = callPackage ../development/python-modules/epc { };
 
-  webapp2 = callPackage ../development/python-modules/webapp2 { };
+  ephem = callPackage ../development/python-modules/ephem { };
 
-  webdavclient3 = callPackage ../development/python-modules/webdavclient3 { };
+  eradicate = callPackage ../development/python-modules/eradicate { };
 
-  wordcloud = callPackage ../development/python-modules/wordcloud { };
+  escapism = callPackage ../development/python-modules/escapism { };
 
-  wrf-python = callPackage ../development/python-modules/wrf-python { };
+  etcd = callPackage ../development/python-modules/etcd { };
 
-  pyunbound = callPackage ../tools/networking/unbound/python.nix { };
+  etelemetry = callPackage ../development/python-modules/etelemetry { };
 
-  WazeRouteCalculator = callPackage ../development/python-modules/WazeRouteCalculator { };
+  etesync = callPackage ../development/python-modules/etesync { };
 
-  yarg = callPackage ../development/python-modules/yarg { };
+  eth-hash = callPackage ../development/python-modules/eth-hash { };
 
-  yt = callPackage ../development/python-modules/yt { };
+  eth-typing = callPackage ../development/python-modules/eth-typing { };
 
-  # packages defined here
+  eth-utils = callPackage ../development/python-modules/eth-utils { };
 
-  aafigure = callPackage ../development/python-modules/aafigure { };
+  et_xmlfile = callPackage ../development/python-modules/et_xmlfile { };
 
-  addic7ed-cli = callPackage ../development/python-modules/addic7ed-cli { };
+  evdev = callPackage ../development/python-modules/evdev { };
 
-  algebraic-data-types = callPackage ../development/python-modules/algebraic-data-types { };
+  eve = callPackage ../development/python-modules/eve { };
 
-  altair = callPackage ../development/python-modules/altair { };
+  eventlet = callPackage ../development/python-modules/eventlet { };
 
-  vega = callPackage ../development/python-modules/vega { };
+  eventlib = callPackage ../development/python-modules/eventlib { };
 
-  accupy = callPackage ../development/python-modules/accupy { };
+  events = callPackage ../development/python-modules/events { };
 
-  acme = callPackage ../development/python-modules/acme { };
+  evernote = callPackage ../development/python-modules/evernote { };
 
-  acme-tiny = callPackage ../development/python-modules/acme-tiny { };
+  ewmh = callPackage ../development/python-modules/ewmh { };
 
-  actdiag = callPackage ../development/python-modules/actdiag { };
+  exchangelib = callPackage ../development/python-modules/exchangelib { };
 
-  adal = callPackage ../development/python-modules/adal { };
+  execnet = callPackage ../development/python-modules/execnet { };
 
-  affine = callPackage ../development/python-modules/affine { };
+  executing = callPackage ../development/python-modules/executing { };
 
-  aioconsole = callPackage ../development/python-modules/aioconsole { };
+  executor = callPackage ../development/python-modules/executor { };
 
-  aiodns = callPackage ../development/python-modules/aiodns { };
+  exifread = callPackage ../development/python-modules/exifread { };
 
-  aiofiles = callPackage ../development/python-modules/aiofiles { };
+  extension-helpers = callPackage ../development/python-modules/extension-helpers { };
 
-  aioh2 = callPackage ../development/python-modules/aioh2 { };
+  extras = callPackage ../development/python-modules/extras { };
 
-  aioftp = callPackage ../development/python-modules/aioftp { };
+  eyeD3 = callPackage ../development/python-modules/eyed3 { };
 
-  aioharmony = callPackage ../development/python-modules/aioharmony { };
+  ezdxf = callPackage ../development/python-modules/ezdxf { };
 
-  aiohttp = callPackage ../development/python-modules/aiohttp { };
+  Fabric = callPackage ../development/python-modules/Fabric { };
 
-  aiohttp-cors = callPackage ../development/python-modules/aiohttp-cors { };
+  facebook-sdk = callPackage ../development/python-modules/facebook-sdk { };
 
-  aiohttp-jinja2 = callPackage ../development/python-modules/aiohttp-jinja2 { };
+  face = callPackage ../development/python-modules/face { };
 
-  aiohttp-remotes = callPackage ../development/python-modules/aiohttp-remotes { };
+  facedancer = callPackage ../development/python-modules/facedancer { };
 
-  aiohttp-socks = callPackage ../development/python-modules/aiohttp-socks { };
+  face_recognition = callPackage ../development/python-modules/face_recognition { };
 
-  aiohttp-swagger = callPackage ../development/python-modules/aiohttp-swagger { };
+  face_recognition_models = callPackage ../development/python-modules/face_recognition_models { };
 
-  aiomysql = callPackage ../development/python-modules/aiomysql { };
+  factory_boy = callPackage ../development/python-modules/factory_boy { };
 
-  aioprocessing = callPackage ../development/python-modules/aioprocessing { };
+  fake_factory = callPackage ../development/python-modules/fake_factory { };
 
-  aioresponses = callPackage ../development/python-modules/aioresponses { };
+  faker = callPackage ../development/python-modules/faker { };
 
-  aiosqlite = callPackage ../development/python-modules/aiosqlite { };
+  fake-useragent = callPackage ../development/python-modules/fake-useragent { };
 
-  aiorpcx = callPackage ../development/python-modules/aiorpcx { };
+  falcon = callPackage ../development/python-modules/falcon { };
 
-  aiosmtpd = callPackage ../development/python-modules/aiosmtpd { };
+  fastapi = callPackage ../development/python-modules/fastapi { };
 
-  aiounifi = callPackage ../development/python-modules/aiounifi { };
+  fastcache = callPackage ../development/python-modules/fastcache { };
 
-  aiounittest = callPackage ../development/python-modules/aiounittest { };
+  fastdtw = callPackage ../development/python-modules/fastdtw { };
 
-  aiozeroconf = callPackage ../development/python-modules/aiozeroconf { };
+  fasteners = callPackage ../development/python-modules/fasteners { };
 
-  ajpy = callPackage ../development/python-modules/ajpy { };
+  fastentrypoints = callPackage ../development/python-modules/fastentrypoints { };
 
-  alabaster = callPackage ../development/python-modules/alabaster {};
+  fastimport = callPackage ../development/python-modules/fastimport { };
 
-  alarmdecoder = callPackage ../development/python-modules/alarmdecoder {};
+  fastjsonschema = callPackage ../development/python-modules/fastjsonschema { };
 
-  alembic = callPackage ../development/python-modules/alembic {};
+  fastpair = callPackage ../development/python-modules/fastpair { };
 
-  allpairspy = callPackage ../development/python-modules/allpairspy { };
+  fastparquet = callPackage ../development/python-modules/fastparquet { };
 
-  annexremote = callPackage ../development/python-modules/annexremote { };
+  fastpbkdf2 = callPackage ../development/python-modules/fastpbkdf2 { };
 
-  ansible = callPackage ../development/python-modules/ansible { };
+  fastrlock = callPackage ../development/python-modules/fastrlock { };
 
-  ansible-kernel = callPackage ../development/python-modules/ansible-kernel { };
+  fasttext = callPackage ../development/python-modules/fasttext { };
 
-  ansible-lint = callPackage ../development/python-modules/ansible-lint { };
+  faulthandler = if !isPy3k then
+    callPackage ../development/python-modules/faulthandler { }
+  else
+    throw "faulthandler is built into ${python.executable}";
 
-  ansible-runner = callPackage ../development/python-modules/ansible-runner { };
+  favicon = callPackage ../development/python-modules/favicon { };
 
-  ansicolors = callPackage ../development/python-modules/ansicolors {};
+  fb-re2 = callPackage ../development/python-modules/fb-re2 { };
 
-  aniso8601 = callPackage ../development/python-modules/aniso8601 {};
+  fdint = callPackage ../development/python-modules/fdint { };
 
-  anonip = callPackage ../development/python-modules/anonip { };
+  feedgen = callPackage ../development/python-modules/feedgen { };
 
-  asgiref = callPackage ../development/python-modules/asgiref { };
+  feedgenerator = callPackage ../development/python-modules/feedgenerator { inherit (pkgs) glibcLocales; };
 
-  python-editor = callPackage ../development/python-modules/python-editor { };
+  feedparser = callPackage ../development/python-modules/feedparser { };
 
-  python-gnupg = callPackage ../development/python-modules/python-gnupg {};
+  fenics = callPackage ../development/libraries/science/math/fenics {
+    inherit (pkgs) pkg-config;
+    mpi = pkgs.openmpi;
+    pytest = self.pytest_4;
+  };
 
-  python-uinput = callPackage ../development/python-modules/python-uinput {};
+  ffmpeg-python = callPackage ../development/python-modules/ffmpeg-python { };
 
-  python-sybase = callPackage ../development/python-modules/sybase {};
+  fido2 = callPackage ../development/python-modules/fido2 { };
 
-  alot = callPackage ../development/python-modules/alot {};
+  filebrowser_safe = callPackage ../development/python-modules/filebrowser_safe { };
 
-  anyjson = callPackage ../development/python-modules/anyjson {};
+  filebytes = callPackage ../development/python-modules/filebytes { };
 
-  amqp = callPackage ../development/python-modules/amqp {};
+  filelock = callPackage ../development/python-modules/filelock { };
 
-  amqplib = callPackage ../development/python-modules/amqplib {};
+  filemagic = callPackage ../development/python-modules/filemagic { };
 
-  antlr4-python2-runtime = callPackage ../development/python-modules/antlr4-python2-runtime { antlr4 = pkgs.antlr4; };
+  filetype = callPackage ../development/python-modules/filetype { };
 
-  antlr4-python3-runtime = callPackage ../development/python-modules/antlr4-python3-runtime { antlr4 = pkgs.antlr4; };
+  filterpy = callPackage ../development/python-modules/filterpy { };
 
-  apache-airflow = callPackage ../development/python-modules/apache-airflow { };
+  finalfusion = callPackage ../development/python-modules/finalfusion { };
 
-  apipkg = callPackage ../development/python-modules/apipkg {};
+  fints = callPackage ../development/python-modules/fints { };
 
-  apispec = callPackage ../development/python-modules/apispec {};
+  fiona = callPackage ../development/python-modules/fiona { gdal_2 = pkgs.gdal_2; };
 
-  appdirs = callPackage ../development/python-modules/appdirs { };
+  fipy = callPackage ../development/python-modules/fipy { };
 
-  appleseed = disabledIf isPy3k
-    (toPythonModule (pkgs.appleseed.override {
-      inherit (self) python;
-    }));
+  fire = callPackage ../development/python-modules/fire { };
 
-  application = callPackage ../development/python-modules/application { };
+  firetv = callPackage ../development/python-modules/firetv { };
 
-  applicationinsights = callPackage ../development/python-modules/applicationinsights { };
+  first = callPackage ../development/python-modules/first { };
 
-  appnope = callPackage ../development/python-modules/appnope { };
+  fitbit = callPackage ../development/python-modules/fitbit { };
 
-  approvaltests = callPackage ../development/python-modules/approvaltests { };
+  fixtures = callPackage ../development/python-modules/fixtures { };
 
-  apptools = callPackage ../development/python-modules/apptools {};
+  flake8-blind-except = callPackage ../development/python-modules/flake8-blind-except { };
 
-  apsw = callPackage ../development/python-modules/apsw {};
+  flake8 = callPackage ../development/python-modules/flake8 { };
 
-  astor = callPackage ../development/python-modules/astor {};
+  flake8-debugger = callPackage ../development/python-modules/flake8-debugger { };
 
-  asyncpg = callPackage ../development/python-modules/asyncpg { };
+  flake8-future-import = callPackage ../development/python-modules/flake8-future-import { };
 
-  asyncssh = callPackage ../development/python-modules/asyncssh { };
+  flake8-import-order = callPackage ../development/python-modules/flake8-import-order { };
 
-  atpublic = callPackage ../development/python-modules/atpublic { };
+  flake8-polyfill = callPackage ../development/python-modules/flake8-polyfill { };
 
-  python-fontconfig = callPackage ../development/python-modules/python-fontconfig { };
+  flaky = callPackage ../development/python-modules/flaky { };
 
-  funcsigs = callPackage ../development/python-modules/funcsigs { };
+  flammkuchen = callPackage ../development/python-modules/flammkuchen { };
 
-  APScheduler = callPackage ../development/python-modules/APScheduler { };
+  flask-admin = callPackage ../development/python-modules/flask-admin { };
 
-  args = callPackage ../development/python-modules/args { };
+  flask-api = callPackage ../development/python-modules/flask-api { };
 
-  argcomplete = callPackage ../development/python-modules/argcomplete { };
+  flask-appbuilder = callPackage ../development/python-modules/flask-appbuilder { };
 
-  area = callPackage ../development/python-modules/area { };
+  flask_assets = callPackage ../development/python-modules/flask-assets { };
 
-  arxiv2bib = callPackage ../development/python-modules/arxiv2bib { };
+  flask-autoindex = callPackage ../development/python-modules/flask-autoindex { };
 
-  chai = callPackage ../development/python-modules/chai { };
+  flask-babel = callPackage ../development/python-modules/flask-babel { };
 
-  chainmap = callPackage ../development/python-modules/chainmap { };
+  flaskbabel = callPackage ../development/python-modules/flaskbabel { };
 
-  arelle = callPackage ../development/python-modules/arelle {
-    gui = true;
-  };
+  flask-babelex = callPackage ../development/python-modules/flask-babelex { };
 
-  arelle-headless = callPackage ../development/python-modules/arelle {
-    gui = false;
-  };
+  flask-bcrypt = callPackage ../development/python-modules/flask-bcrypt { };
 
-  delegator-py = callPackage ../development/python-modules/delegator-py { };
+  flask-bootstrap = callPackage ../development/python-modules/flask-bootstrap { };
 
-  deluge-client = callPackage ../development/python-modules/deluge-client { };
+  flask-caching = callPackage ../development/python-modules/flask-caching { };
 
-  arrow = callPackage ../development/python-modules/arrow { };
+  flask = callPackage ../development/python-modules/flask { };
 
-  asynctest = callPackage ../development/python-modules/asynctest { };
+  flask-common = callPackage ../development/python-modules/flask-common { };
 
-  async-timeout = callPackage ../development/python-modules/async_timeout { };
+  flask-compress = callPackage ../development/python-modules/flask-compress { };
 
-  async_generator = callPackage ../development/python-modules/async_generator { };
+  flask-cors = callPackage ../development/python-modules/flask-cors { };
 
-  async-upnp-client = callPackage ../development/python-modules/async-upnp-client { };
+  flask_elastic = callPackage ../development/python-modules/flask-elastic { };
 
-  asn1ate = callPackage ../development/python-modules/asn1ate { };
+  flask-httpauth = callPackage ../development/python-modules/flask-httpauth { };
 
-  atlassian-python-api = callPackage ../development/python-modules/atlassian-python-api { };
+  flask-jwt-extended = callPackage ../development/python-modules/flask-jwt-extended { };
 
-  atomiclong = callPackage ../development/python-modules/atomiclong { };
+  flask_ldap_login = callPackage ../development/python-modules/flask-ldap-login { };
 
-  atomicwrites = callPackage ../development/python-modules/atomicwrites { };
+  flask-limiter = callPackage ../development/python-modules/flask-limiter { };
 
-  astroid = if isPy3k then callPackage ../development/python-modules/astroid { }
-            else callPackage ../development/python-modules/astroid/1.6.nix { };
+  flask_login = callPackage ../development/python-modules/flask-login { };
 
-  attrdict = callPackage ../development/python-modules/attrdict { };
+  flask_mail = callPackage ../development/python-modules/flask-mail { };
 
-  attrs = callPackage ../development/python-modules/attrs { };
+  flask_marshmallow = callPackage ../development/python-modules/flask-marshmallow { };
 
-  atsim_potentials = callPackage ../development/python-modules/atsim_potentials { };
+  flask_migrate = callPackage ../development/python-modules/flask-migrate { };
 
-  audio-metadata = callPackage ../development/python-modules/audio-metadata { };
+  flask-mongoengine = callPackage ../development/python-modules/flask-mongoengine { };
 
-  audioread = callPackage ../development/python-modules/audioread { };
+  flask-openid = callPackage ../development/python-modules/flask-openid { };
 
-  audiotools = callPackage ../development/python-modules/audiotools { };
+  flask-paginate = callPackage ../development/python-modules/flask-paginate { };
 
-  autopep8 = callPackage ../development/python-modules/autopep8 { };
+  flask_principal = callPackage ../development/python-modules/flask-principal { };
 
-  av = callPackage ../development/python-modules/av {
-    inherit (pkgs) pkgconfig;
-  };
+  flask-pymongo = callPackage ../development/python-modules/Flask-PyMongo { };
 
-  avro = callPackage ../development/python-modules/avro {};
+  flask-restful = callPackage ../development/python-modules/flask-restful { };
 
-  avro3k = callPackage ../development/python-modules/avro3k {};
+  flask-restplus = callPackage ../development/python-modules/flask-restplus { };
 
-  avro-python3 = callPackage ../development/python-modules/avro-python3 {};
+  flask-restx = callPackage ../development/python-modules/flask-restx { };
 
-  aws-lambda-builders = callPackage ../development/python-modules/aws-lambda-builders { };
+  flask-reverse-proxy-fix = callPackage ../development/python-modules/flask-reverse-proxy-fix { };
 
-  python-slugify = callPackage ../development/python-modules/python-slugify { };
+  flask_script = callPackage ../development/python-modules/flask-script { };
 
-  awesome-slugify = callPackage ../development/python-modules/awesome-slugify {};
+  flask-silk = callPackage ../development/python-modules/flask-silk { };
 
-  noise = callPackage ../development/python-modules/noise {};
+  flask-socketio = callPackage ../development/python-modules/flask-socketio { };
 
-  backcall = callPackage ../development/python-modules/backcall { };
+  flask-sockets = callPackage ../development/python-modules/flask-sockets { };
 
-  backoff = callPackage ../development/python-modules/backoff { };
+  flask_sqlalchemy = callPackage ../development/python-modules/flask-sqlalchemy { };
 
-  backports_abc = callPackage ../development/python-modules/backports_abc { };
+  flask-swagger = callPackage ../development/python-modules/flask-swagger { };
 
-  backports_functools_lru_cache = callPackage ../development/python-modules/backports_functools_lru_cache { };
+  flask-swagger-ui = callPackage ../development/python-modules/flask-swagger-ui { };
 
-  backports_os = callPackage ../development/python-modules/backports_os { };
+  flask_testing = callPackage ../development/python-modules/flask-testing { };
 
-  backports_shutil_get_terminal_size = callPackage ../development/python-modules/backports_shutil_get_terminal_size { };
+  flask-versioned = callPackage ../development/python-modules/flask-versioned { };
 
-  backports_ssl_match_hostname = if !(pythonOlder "3.5") then null else
-    callPackage ../development/python-modules/backports_ssl_match_hostname { };
+  flask_wtf = callPackage ../development/python-modules/flask-wtf { };
 
-  backports_lzma = callPackage ../development/python-modules/backports_lzma { };
+  flexmock = callPackage ../development/python-modules/flexmock { };
 
-  backports_tempfile = callPackage ../development/python-modules/backports_tempfile { };
+  flickrapi = callPackage ../development/python-modules/flickrapi { };
 
-  backports_unittest-mock = callPackage ../development/python-modules/backports_unittest-mock {};
+  flit = callPackage ../development/python-modules/flit { };
 
-  babelfish = callPackage ../development/python-modules/babelfish {};
+  flit-core = callPackage ../development/python-modules/flit-core { };
 
-  bandit = callPackage ../development/python-modules/bandit {};
+  flower = callPackage ../development/python-modules/flower { };
 
-  basiciw = callPackage ../development/python-modules/basiciw {
-    inherit (pkgs) gcc wirelesstools;
-  };
+  flowlogs_reader = callPackage ../development/python-modules/flowlogs_reader { };
 
-  base58 = callPackage ../development/python-modules/base58 {};
+  fluent-logger = callPackage ../development/python-modules/fluent-logger { };
 
-  batchgenerators = callPackage ../development/python-modules/batchgenerators { };
+  flufl_bounce = callPackage ../development/python-modules/flufl/bounce.nix { };
 
-  batinfo = callPackage ../development/python-modules/batinfo {};
+  flufl_i18n = callPackage ../development/python-modules/flufl/i18n.nix { };
 
-  bcdoc = callPackage ../development/python-modules/bcdoc {};
+  flufl_lock = callPackage ../development/python-modules/flufl/lock.nix { };
 
-  beancount = callPackage ../development/python-modules/beancount { };
+  flup = callPackage ../development/python-modules/flup { };
 
-  beautifulsoup4 = callPackage ../development/python-modules/beautifulsoup4 { };
+  flux-led = callPackage ../development/python-modules/flux-led { };
 
-  beaker = callPackage ../development/python-modules/beaker { };
+  fn = callPackage ../development/python-modules/fn { };
 
-  bespon = callPackage ../development/python-modules/bespon { };
+  folium = callPackage ../development/python-modules/folium { };
 
-  betamax = callPackage ../development/python-modules/betamax {};
+  fontforge = disabledIf (!isPy3k) (toPythonModule (pkgs.fontforge.override {
+    withPython = true;
+    inherit python;
+  }));
 
-  betamax-matchers = callPackage ../development/python-modules/betamax-matchers { };
+  fontmath = callPackage ../development/python-modules/fontmath { };
 
-  betamax-serializers = callPackage ../development/python-modules/betamax-serializers { };
+  fontparts = callPackage ../development/python-modules/fontparts { };
 
-  bibtexparser = callPackage ../development/python-modules/bibtexparser { };
+  fontpens = callPackage ../development/python-modules/fontpens { };
 
-  bidict = callPackage ../development/python-modules/bidict { };
+  fonttools = callPackage ../development/python-modules/fonttools { };
 
-  bids-validator = callPackage ../development/python-modules/bids-validator { };
+  foolscap = callPackage ../development/python-modules/foolscap { };
 
-  binwalk = callPackage ../development/python-modules/binwalk {
-    pyqtgraph = null;
-    matplotlib = null;
-  };
+  forbiddenfruit = callPackage ../development/python-modules/forbiddenfruit { };
 
-  binwalk-full = appendToName "full" (self.binwalk.override {
-    pyqtgraph = self.pyqtgraph;
-    matplotlib = self.matplotlib;
-  });
+  FormEncode = callPackage ../development/python-modules/FormEncode { };
 
-  bitmath = callPackage ../development/python-modules/bitmath { };
+  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; };
 
-  bitstruct = callPackage ../development/python-modules/bitstruct { };
+  foxdot = callPackage ../development/python-modules/foxdot { };
 
-  caldav = callPackage ../development/python-modules/caldav { };
+  fpdf = callPackage ../development/python-modules/fpdf { };
 
-  biopython = callPackage ../development/python-modules/biopython { };
+  fpylll = callPackage ../development/python-modules/fpylll { };
 
-  bedup = callPackage ../development/python-modules/bedup { };
+  freetype-py = callPackage ../development/python-modules/freetype-py { };
 
-  blessed = callPackage ../development/python-modules/blessed {};
+  freezegun = callPackage ../development/python-modules/freezegun { };
 
-  block-io = callPackage ../development/python-modules/block-io {};
+  fritzconnection = callPackage ../development/python-modules/fritzconnection { };
 
-  # 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;
-  });
+  frozendict = callPackage ../development/python-modules/frozendict { };
 
-  boltztrap2 = callPackage ../development/python-modules/boltztrap2 { };
+  fs = callPackage ../development/python-modules/fs { };
 
-  booleanoperations = callPackage ../development/python-modules/booleanoperations { };
+  fs-s3fs = callPackage ../development/python-modules/fs-s3fs { };
 
-  boolean-py = callPackage ../development/python-modules/boolean-py { };
+  fsspec = callPackage ../development/python-modules/fsspec { };
 
-  bumps = callPackage ../development/python-modules/bumps {};
+  ftfy = callPackage ../development/python-modules/ftfy { };
 
-  bx-python = callPackage ../development/python-modules/bx-python {
-    inherit (pkgs) zlib;
-  };
+  ftputil = callPackage ../development/python-modules/ftputil { };
 
-  cached-property = callPackage ../development/python-modules/cached-property { };
+  fudge = callPackage ../development/python-modules/fudge { };
 
-  caffe = toPythonModule (pkgs.caffe.override {
-    pythonSupport = true;
-    inherit (self) python numpy boost;
-  });
+  funcparserlib = callPackage ../development/python-modules/funcparserlib { };
 
-  capstone = callPackage ../development/python-modules/capstone { inherit (pkgs) capstone; };
+  funcsigs = callPackage ../development/python-modules/funcsigs { };
 
-  capturer = callPackage ../development/python-modules/capturer { };
+  functools32 = callPackage ../development/python-modules/functools32 { };
 
-  cement = callPackage ../development/python-modules/cement {};
+  funcy = callPackage ../development/python-modules/funcy { };
 
-  cgen = callPackage ../development/python-modules/cgen { };
+  furl = callPackage ../development/python-modules/furl { };
 
-  cgroup-utils = callPackage ../development/python-modules/cgroup-utils {};
+  fuse = callPackage ../development/python-modules/fuse-python { inherit (pkgs) fuse pkgconfig; };
 
-  chainer = callPackage ../development/python-modules/chainer {
-    cudaSupport = pkgs.config.cudaSupport or false;
-  };
+  fusepy = callPackage ../development/python-modules/fusepy { };
 
-  channels = callPackage ../development/python-modules/channels {};
+  future = callPackage ../development/python-modules/future { };
 
-  cheroot = callPackage ../development/python-modules/cheroot {};
+  future-fstrings = callPackage ../development/python-modules/future-fstrings { };
 
-  chevron = callPackage ../development/python-modules/chevron {};
+  futures = callPackage ../development/python-modules/futures { };
 
-  ci-info = callPackage ../development/python-modules/ci-info { };
+  fuzzywuzzy = callPackage ../development/python-modules/fuzzywuzzy { };
 
-  ci-py = callPackage ../development/python-modules/ci-py { };
+  fx2 = callPackage ../development/python-modules/fx2 { };
 
-  cli-helpers = callPackage ../development/python-modules/cli-helpers {};
+  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
 
-  cmarkgfm = callPackage ../development/python-modules/cmarkgfm { };
+  galario = toPythonModule (pkgs.galario.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
 
-  cirq = callPackage ../development/python-modules/cirq { };
+  gast = callPackage ../development/python-modules/gast { };
 
-  citeproc-py = callPackage ../development/python-modules/citeproc-py { };
+  gateone = callPackage ../development/python-modules/gateone { };
 
-  colorcet = callPackage ../development/python-modules/colorcet { };
+  gcovr = callPackage ../development/python-modules/gcovr { };
 
-  coloredlogs = callPackage ../development/python-modules/coloredlogs { };
+  gdal = toPythonModule (pkgs.gdal.override { pythonPackages = self; });
 
-  colorclass = callPackage ../development/python-modules/colorclass {};
+  gdata = callPackage ../development/python-modules/gdata { };
 
-  colorful = callPackage ../development/python-modules/colorful {};
+  gdcm = disabledIf isPy27 (toPythonModule (pkgs.gdcm.override {
+    inherit (self) python;
+    enablePython = true;
+  }));
 
-  colorlog = callPackage ../development/python-modules/colorlog { };
+  gdown = callPackage ../development/python-modules/gdown { };
 
-  colorspacious = callPackage ../development/python-modules/colorspacious { };
+  gdrivefs = callPackage ../development/python-modules/gdrivefs { };
 
-  colour = callPackage ../development/python-modules/colour {};
+  geant4 = disabledIf (!isPy3k) (toPythonModule (pkgs.geant4.override {
+    enablePython = true;
+    python3 = python;
+  }));
 
-  colormath = callPackage ../development/python-modules/colormath {};
+  geeknote = callPackage ../development/python-modules/geeknote { };
 
-  configshell = callPackage ../development/python-modules/configshell { };
+  genanki = callPackage ../development/python-modules/genanki { };
 
-  consonance = callPackage ../development/python-modules/consonance { };
+  genpy = callPackage ../development/python-modules/genpy { };
 
-  constantly = callPackage ../development/python-modules/constantly { };
+  genshi = callPackage ../development/python-modules/genshi { };
 
-  cornice = callPackage ../development/python-modules/cornice { };
+  gensim = callPackage ../development/python-modules/gensim { };
 
-  crashtest = callPackage ../development/python-modules/crashtest { };
+  gentools = callPackage ../development/python-modules/gentools { };
 
-  cram = callPackage ../development/python-modules/cram { };
+  genzshcomp = callPackage ../development/python-modules/genzshcomp { };
 
-  crc16 = callPackage ../development/python-modules/crc16 { };
+  geoalchemy2 = callPackage ../development/python-modules/geoalchemy2 { };
 
-  crccheck = callPackage ../development/python-modules/crccheck { };
+  geographiclib = callPackage ../development/python-modules/geographiclib { };
 
-  croniter = callPackage ../development/python-modules/croniter { };
+  geoip2 = callPackage ../development/python-modules/geoip2 { };
 
-  csscompressor = callPackage ../development/python-modules/csscompressor {};
+  GeoIP = callPackage ../development/python-modules/GeoIP { };
 
-  csvs-to-sqlite = callPackage ../development/python-modules/csvs-to-sqlite { };
+  geojson = callPackage ../development/python-modules/geojson { };
 
-  cufflinks = callPackage ../development/python-modules/cufflinks { };
+  geopandas = callPackage ../development/python-modules/geopandas { };
 
-  cupy = callPackage ../development/python-modules/cupy {
-    cudatoolkit = pkgs.cudatoolkit_10_0;
-    cudnn = pkgs.cudnn_cudatoolkit_10_0;
-    nccl = pkgs.nccl_cudatoolkit_10;
-  };
+  geopy = if isPy3k then
+    callPackage ../development/python-modules/geopy { }
+  else
+    callPackage ../development/python-modules/geopy/2.nix { };
 
-  cx_Freeze = callPackage ../development/python-modules/cx_freeze {};
+  getmac = callPackage ../development/python-modules/getmac { };
 
-  cx_oracle = callPackage ../development/python-modules/cx_oracle {};
+  gevent = callPackage ../development/python-modules/gevent { };
 
-  cvxopt = callPackage ../development/python-modules/cvxopt { };
+  geventhttpclient = callPackage ../development/python-modules/geventhttpclient { };
 
-  cvxpy = callPackage ../development/python-modules/cvxpy { };
+  gevent-socketio = callPackage ../development/python-modules/gevent-socketio { };
 
-  cycler = callPackage ../development/python-modules/cycler { };
+  gevent-websocket = callPackage ../development/python-modules/gevent-websocket { };
 
-  cysignals = callPackage ../development/python-modules/cysignals { };
+  gflags = callPackage ../development/python-modules/gflags { };
 
-  cypari2 = callPackage ../development/python-modules/cypari2 { };
+  ghdiff = callPackage ../development/python-modules/ghdiff { };
 
-  dlib = callPackage ../development/python-modules/dlib {
-    inherit (pkgs) dlib;
-  };
+  gidgethub = callPackage ../development/python-modules/gidgethub { };
 
-  datadog = callPackage ../development/python-modules/datadog {};
+  gin-config = callPackage ../development/python-modules/gin-config { };
 
-  dataclasses = callPackage ../development/python-modules/dataclasses { };
+  gipc = callPackage ../development/python-modules/gipc { };
 
-  dataclasses-json = callPackage ../development/python-modules/dataclasses-json { };
+  git-annex-adapter =
+    callPackage ../development/python-modules/git-annex-adapter { inherit (pkgs.gitAndTools) git-annex; };
 
-  debian = callPackage ../development/python-modules/debian {};
+  gitdb2 = throw "gitdb2 has been deprecated, use gitdb instead."; # added 2020-03-14
 
-  defcon = callPackage ../development/python-modules/defcon { };
+  gitdb = callPackage ../development/python-modules/gitdb { };
 
-  defusedxml = callPackage ../development/python-modules/defusedxml {};
+  github3_py = callPackage ../development/python-modules/github3_py { };
 
-  dodgy = callPackage ../development/python-modules/dodgy { };
+  github-webhook = callPackage ../development/python-modules/github-webhook { };
 
-  duecredit = callPackage ../development/python-modules/duecredit { };
+  GitPython = callPackage ../development/python-modules/GitPython { };
 
-  dugong = callPackage ../development/python-modules/dugong {};
+  git-revise = callPackage ../development/python-modules/git-revise { };
 
-  easysnmp = callPackage ../development/python-modules/easysnmp {
-    openssl = pkgs.openssl;
-    net-snmp = pkgs.net-snmp;
-  };
+  git-sweep = callPackage ../development/python-modules/git-sweep { };
 
-  iowait = callPackage ../development/python-modules/iowait {};
+  glances = throw "glances has moved to pkgs.glances"; # added 2020-20-28
 
-  responses = callPackage ../development/python-modules/responses {};
+  glasgow = callPackage ../development/python-modules/glasgow { };
 
-  rarfile = callPackage ../development/python-modules/rarfile { inherit (pkgs) libarchive; };
+  glob2 = callPackage ../development/python-modules/glob2 { };
 
-  proboscis = callPackage ../development/python-modules/proboscis {};
+  globre = callPackage ../development/python-modules/globre { };
 
-  poster3 = callPackage ../development/python-modules/poster3 { };
+  globus-sdk = callPackage ../development/python-modules/globus-sdk { };
 
-  py4j = callPackage ../development/python-modules/py4j { };
+  glom = callPackage ../development/python-modules/glom { };
 
-  pyechonest = callPackage ../development/python-modules/pyechonest { };
+  glymur = callPackage ../development/python-modules/glymur { };
 
-  pyepsg = callPackage ../development/python-modules/pyepsg { };
+  gmpy2 = callPackage ../development/python-modules/gmpy2 { };
 
-  billiard = callPackage ../development/python-modules/billiard { };
+  gmpy = callPackage ../development/python-modules/gmpy { };
 
-  binaryornot = callPackage ../development/python-modules/binaryornot { };
+  gmusicapi = callPackage ../development/python-modules/gmusicapi { };
 
-  bitbucket_api = callPackage ../development/python-modules/bitbucket-api { };
+  gnureadline = callPackage ../development/python-modules/gnureadline { };
 
-  bitbucket-cli = callPackage ../development/python-modules/bitbucket-cli { };
+  gnutls = callPackage ../development/python-modules/gnutls { };
 
-  bitstring = callPackage ../development/python-modules/bitstring { };
+  goobook = callPackage ../development/python-modules/goobook { };
 
-  html5-parser = callPackage ../development/python-modules/html5-parser {
-    inherit (pkgs) pkgconfig;
-  };
+  goocalendar = callPackage ../development/python-modules/goocalendar { };
 
-  HTSeq = callPackage ../development/python-modules/HTSeq { };
+  google_api_core = callPackage ../development/python-modules/google_api_core { };
 
-  httpserver = callPackage ../development/python-modules/httpserver {};
+  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";
+        };
+      });
 
-  bleach = callPackage ../development/python-modules/bleach { };
+  googleapis_common_protos = callPackage ../development/python-modules/googleapis_common_protos { };
 
-  bleak = callPackage ../development/python-modules/bleak { };
+  google_apputils = callPackage ../development/python-modules/google_apputils { };
 
-  blinker = callPackage ../development/python-modules/blinker { };
+  google_auth = callPackage ../development/python-modules/google_auth { };
 
-  blockdiag = callPackage ../development/python-modules/blockdiag { };
+  google-auth-httplib2 = callPackage ../development/python-modules/google-auth-httplib2 { };
 
-  blockdiagcontrib-cisco = callPackage ../development/python-modules/blockdiagcontrib-cisco { };
+  google-auth-oauthlib = callPackage ../development/python-modules/google-auth-oauthlib { };
 
-  bpython = callPackage ../development/python-modules/bpython {};
+  google_cloud_asset = callPackage ../development/python-modules/google_cloud_asset { };
 
-  bsddb3 = callPackage ../development/python-modules/bsddb3 { };
+  google_cloud_automl = callPackage ../development/python-modules/google_cloud_automl { };
 
-  bsdiff4 = callPackage ../development/python-modules/bsdiff4 { };
+  google_cloud_bigquery = callPackage ../development/python-modules/google_cloud_bigquery { };
 
-  bkcharts = callPackage ../development/python-modules/bkcharts { };
+  google_cloud_bigquery_datatransfer = callPackage ../development/python-modules/google_cloud_bigquery_datatransfer { };
 
-  bokeh = callPackage ../development/python-modules/bokeh { };
+  google_cloud_bigtable = callPackage ../development/python-modules/google_cloud_bigtable { };
 
-  boto = callPackage ../development/python-modules/boto { };
+  google_cloud_container = callPackage ../development/python-modules/google_cloud_container { };
 
-  boto3 = callPackage ../development/python-modules/boto3 { };
+  google_cloud_core = callPackage ../development/python-modules/google_cloud_core { };
 
-  botocore = callPackage ../development/python-modules/botocore { };
+  google_cloud_dataproc = callPackage ../development/python-modules/google_cloud_dataproc { };
 
-  bottle = callPackage ../development/python-modules/bottle { };
+  google_cloud_datastore = callPackage ../development/python-modules/google_cloud_datastore { };
 
-  box2d = callPackage ../development/python-modules/box2d { };
+  google_cloud_dlp = callPackage ../development/python-modules/google_cloud_dlp { };
 
-  branca = callPackage ../development/python-modules/branca { };
+  google_cloud_dns = callPackage ../development/python-modules/google_cloud_dns { };
 
-  bugwarrior = callPackage ../development/python-modules/bugwarrior { };
+  google_cloud_error_reporting = callPackage ../development/python-modules/google_cloud_error_reporting { };
 
-  bugz = callPackage ../development/python-modules/bugz { };
+  google_cloud_firestore = callPackage ../development/python-modules/google_cloud_firestore { };
 
-  bugzilla = callPackage ../development/python-modules/bugzilla { };
+  google_cloud_iot = callPackage ../development/python-modules/google_cloud_iot { };
 
-  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 { };
+  google_cloud_kms = callPackage ../development/python-modules/google_cloud_kms { };
 
-  check-manifest = callPackage ../development/python-modules/check-manifest { };
+  google_cloud_language = callPackage ../development/python-modules/google_cloud_language { };
 
-  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 { };
+  google_cloud_logging = callPackage ../development/python-modules/google_cloud_logging { };
 
-  zc_buildout = self.zc_buildout221;
+  google_cloud_monitoring = callPackage ../development/python-modules/google_cloud_monitoring { };
 
-  zc_buildout221 = callPackage ../development/python-modules/buildout { };
+  google_cloud_pubsub = callPackage ../development/python-modules/google_cloud_pubsub { };
 
-  z3c-checkversions = callPackage ../development/python-modules/z3c-checkversions { };
+  google_cloud_redis = callPackage ../development/python-modules/google_cloud_redis { };
 
-  bunch = callPackage ../development/python-modules/bunch { };
+  google_cloud_resource_manager = callPackage ../development/python-modules/google_cloud_resource_manager { };
 
-  can = callPackage ../development/python-modules/can {};
+  google_cloud_runtimeconfig = callPackage ../development/python-modules/google_cloud_runtimeconfig { };
 
-  canopen = callPackage ../development/python-modules/canopen {};
+  google_cloud_secret_manager = callPackage ../development/python-modules/google_cloud_secret_manager { };
 
-  canmatrix = callPackage ../development/python-modules/canmatrix {};
+  google_cloud_securitycenter = callPackage ../development/python-modules/google_cloud_securitycenter { };
 
+  google_cloud_spanner = callPackage ../development/python-modules/google_cloud_spanner { };
 
-  cairocffi = if isPy3k then
-    callPackage ../development/python-modules/cairocffi {}
-  else
-    callPackage ../development/python-modules/cairocffi/0_9.nix {};
+  google_cloud_speech = callPackage ../development/python-modules/google_cloud_speech { };
 
-  cairosvg = if isPy3k then
-    callPackage ../development/python-modules/cairosvg {}
-  else
-    callPackage ../development/python-modules/cairosvg/1_x.nix {};
+  google_cloud_storage = callPackage ../development/python-modules/google_cloud_storage { };
 
-  carrot = callPackage ../development/python-modules/carrot {};
+  google_cloud_tasks = callPackage ../development/python-modules/google_cloud_tasks { };
 
-  cartopy = callPackage ../development/python-modules/cartopy {};
+  google_cloud_testutils = callPackage ../development/python-modules/google_cloud_testutils { };
 
-  casbin = callPackage ../development/python-modules/casbin { };
+  google_cloud_texttospeech = callPackage ../development/python-modules/google_cloud_texttospeech { };
 
-  case = callPackage ../development/python-modules/case {};
+  google_cloud_trace = callPackage ../development/python-modules/google_cloud_trace { };
 
-  cbor = callPackage ../development/python-modules/cbor {};
+  google_cloud_translate = callPackage ../development/python-modules/google_cloud_translate { };
 
-  cbor2 = callPackage ../development/python-modules/cbor2 {};
+  google_cloud_videointelligence = callPackage ../development/python-modules/google_cloud_videointelligence { };
 
-  cassandra-driver = callPackage ../development/python-modules/cassandra-driver { };
+  google_cloud_vision = callPackage ../development/python-modules/google_cloud_vision { };
 
-  cccolutils = callPackage ../development/python-modules/cccolutils {};
+  google_cloud_websecurityscanner = callPackage ../development/python-modules/google_cloud_websecurityscanner { };
 
-  cchardet = callPackage ../development/python-modules/cchardet { };
+  google-compute-engine = callPackage ../tools/virtualization/google-compute-engine { };
 
-  CDDB = callPackage ../development/python-modules/cddb { };
+  google-i18n-address = callPackage ../development/python-modules/google-i18n-address { };
 
-  cntk = callPackage ../development/python-modules/cntk { };
+  google-music = callPackage ../development/python-modules/google-music { };
 
-  celery = callPackage ../development/python-modules/celery { };
+  google-music-proto = callPackage ../development/python-modules/google-music-proto { };
 
-  cerberus = callPackage ../development/python-modules/cerberus { };
+  google-music-utils = callPackage ../development/python-modules/google-music-utils { };
 
-  certifi = callPackage ../development/python-modules/certifi { };
+  google-pasta = callPackage ../development/python-modules/google-pasta { };
 
-  certipy = callPackage ../development/python-modules/certipy {};
+  google_resumable_media = callPackage ../development/python-modules/google_resumable_media { };
 
-  characteristic = callPackage ../development/python-modules/characteristic { };
+  googletrans = callPackage ../development/python-modules/googletrans { };
 
-  chart-studio = callPackage ../development/python-modules/chart-studio { };
+  gorilla = callPackage ../development/python-modules/gorilla { };
 
-  cheetah = callPackage ../development/python-modules/cheetah { };
+  gpapi = callPackage ../development/python-modules/gpapi { };
+  gplaycli = callPackage ../development/python-modules/gplaycli { };
 
-  cheetah3 = callPackage ../development/python-modules/cheetah3 { };
+  gpgme = toPythonModule (pkgs.gpgme.override {
+    pythonSupport = true;
+    inherit python;
+  });
 
-  cherrypy = if isPy3k then
-    callPackage ../development/python-modules/cherrypy { }
-  else
-    callPackage ../development/python-modules/cherrypy/17.nix { };
+  gphoto2 = callPackage ../development/python-modules/gphoto2 { inherit (pkgs) pkgconfig; };
 
-  cfgv = callPackage ../development/python-modules/cfgv { };
+  gprof2dot = callPackage ../development/python-modules/gprof2dot { inherit (pkgs) graphviz; };
 
-  cfn-lint = callPackage ../development/python-modules/cfn-lint { };
+  gpsoauth = callPackage ../development/python-modules/gpsoauth { };
 
-  cftime = callPackage ../development/python-modules/cftime {};
+  gpxpy = callPackage ../development/python-modules/gpxpy { };
 
-  cjson = callPackage ../development/python-modules/cjson { };
+  gpy = callPackage ../development/python-modules/gpy { };
 
-  cld2-cffi = callPackage ../development/python-modules/cld2-cffi {};
+  gpyopt = callPackage ../development/python-modules/gpyopt { };
 
-  clf = callPackage ../development/python-modules/clf {};
+  grammalecte = callPackage ../development/python-modules/grammalecte { };
 
-  click = callPackage ../development/python-modules/click {};
+  grandalf = callPackage ../development/python-modules/grandalf { };
 
-  click-completion = callPackage ../development/python-modules/click-completion {};
+  graphite_api = callPackage ../development/python-modules/graphite-api { };
 
-  click-datetime = callPackage ../development/python-modules/click-datetime { };
+  graphite_beacon = callPackage ../development/python-modules/graphite_beacon { };
 
-  click-default-group = callPackage ../development/python-modules/click-default-group { };
+  graphite-web = callPackage ../development/python-modules/graphite-web { };
 
-  click-didyoumean = callPackage ../development/python-modules/click-didyoumean {};
+  graph_nets = callPackage ../development/python-modules/graph_nets { };
 
-  click-log = callPackage ../development/python-modules/click-log {};
+  graphql-core = callPackage ../development/python-modules/graphql-core { };
 
-  click-plugins = callPackage ../development/python-modules/click-plugins {};
+  graphql-server-core = callPackage ../development/python-modules/graphql-server-core { };
 
-  click-repl = callPackage ../development/python-modules/click-repl { };
+  graph-tool = callPackage ../development/python-modules/graph-tool/2.x.x.nix { inherit (pkgs) pkg-config; };
 
-  click-threading = callPackage ../development/python-modules/click-threading {};
+  graphviz = callPackage ../development/python-modules/graphviz { inherit (pkgs) graphviz; };
 
-  cligj = callPackage ../development/python-modules/cligj { };
+  grappelli_safe = callPackage ../development/python-modules/grappelli_safe { };
 
-  closure-linter = callPackage ../development/python-modules/closure-linter { };
+  graspy = callPackage ../development/python-modules/graspy { };
 
-  cloudflare = callPackage ../development/python-modules/cloudflare { };
+  greatfet = callPackage ../development/python-modules/greatfet { };
 
-  cloudpickle = callPackage ../development/python-modules/cloudpickle { };
+  green = callPackage ../development/python-modules/green { };
 
-  cmdline = callPackage ../development/python-modules/cmdline { };
+  greenlet = callPackage ../development/python-modules/greenlet { };
 
-  codecov = callPackage ../development/python-modules/codecov {};
+  grequests = callPackage ../development/python-modules/grequests { };
 
-  cogapp = callPackage ../development/python-modules/cogapp {};
+  grib-api = disabledIf (!isPy27) (toPythonModule (pkgs.grib-api.override {
+    enablePython = true;
+    pythonPackages = self;
+  }));
 
-  colorama = callPackage ../development/python-modules/colorama { };
+  grip = callPackage ../development/python-modules/grip { };
 
-  colorlover = callPackage ../development/python-modules/colorlover { };
+  grpc_google_iam_v1 = callPackage ../development/python-modules/grpc_google_iam_v1 { };
 
-  CommonMark = callPackage ../development/python-modules/commonmark { };
+  grpcio = callPackage ../development/python-modules/grpcio { };
 
-  coilmq = callPackage ../development/python-modules/coilmq { };
+  grpcio-gcp = callPackage ../development/python-modules/grpcio-gcp { };
 
-  colander = callPackage ../development/python-modules/colander { };
+  grpcio-tools = callPackage ../development/python-modules/grpcio-tools { };
 
-  # Backported version of the ConfigParser library of Python 3.3
-  configparser = if pythonOlder "3.6" then
-    callPackage ../development/python-modules/configparser/4.nix { }
+  gsd = if isPy27 then
+    callPackage ../development/python-modules/gsd/1.7.nix { }
   else
-    callPackage ../development/python-modules/configparser { };
-
-  ColanderAlchemy = callPackage ../development/python-modules/colanderalchemy { };
+    callPackage ../development/python-modules/gsd { };
 
-  conda = callPackage ../development/python-modules/conda { };
-
-  configobj = callPackage ../development/python-modules/configobj { };
-
-  confluent-kafka = callPackage ../development/python-modules/confluent-kafka {};
-
-  kafka-python = callPackage ../development/python-modules/kafka-python {};
+  gspread = callPackage ../development/python-modules/gspread { };
 
-  construct = callPackage ../development/python-modules/construct {};
+  gssapi = callPackage ../development/python-modules/gssapi { inherit (pkgs) darwin krb5Full; };
 
-  consul = callPackage ../development/python-modules/consul { };
+  gst-python = callPackage ../development/python-modules/gst-python {
+    inherit (pkgs) meson pkgconfig;
+    gst-plugins-base = pkgs.gst_all_1.gst-plugins-base;
+  };
 
-  contexter = callPackage ../development/python-modules/contexter { };
+  gtimelog = callPackage ../development/python-modules/gtimelog { };
 
-  contextvars = callPackage ../development/python-modules/contextvars {};
+  gtts = callPackage ../development/python-modules/gtts { };
 
-  contextlib2 = callPackage ../development/python-modules/contextlib2 { };
+  gtts-token = callPackage ../development/python-modules/gtts-token { };
 
-  cookiecutter = callPackage ../development/python-modules/cookiecutter { };
+  guessit = callPackage ../development/python-modules/guessit { };
 
-  cookies = callPackage ../development/python-modules/cookies { };
+  guestfs = callPackage ../development/python-modules/guestfs { };
 
-  coreapi = callPackage ../development/python-modules/coreapi { };
+  gumath = callPackage ../development/python-modules/gumath { };
 
-  coreschema = callPackage ../development/python-modules/coreschema { };
+  gunicorn = if isPy27 then
+    callPackage ../development/python-modules/gunicorn/19.nix { }
+  else
+    callPackage ../development/python-modules/gunicorn { };
 
-  coveralls = callPackage ../development/python-modules/coveralls { };
+  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}";
 
-  coverage = callPackage ../development/python-modules/coverage { };
+  guzzle_sphinx_theme = callPackage ../development/python-modules/guzzle_sphinx_theme { };
 
-  covCore = callPackage ../development/python-modules/cov-core { };
+  gwyddion = disabledIf isPy3k (toPythonModule (pkgs.gwyddion.override {
+    pythonSupport = true;
+    pythonPackages = self;
+  }));
 
-  crcmod = callPackage ../development/python-modules/crcmod { };
+  gym = callPackage ../development/python-modules/gym { };
 
-  credstash = callPackage ../development/python-modules/credstash { };
+  gyp = callPackage ../development/python-modules/gyp { };
 
-  cython = callPackage ../development/python-modules/Cython { };
+  h11 = callPackage ../development/python-modules/h11 { };
 
-  cytoolz = callPackage ../development/python-modules/cytoolz { };
+  h2 = callPackage ../development/python-modules/h2 { };
 
-  cppy = callPackage ../development/python-modules/cppy { };
+  h3 = callPackage ../development/python-modules/h3 { inherit (pkgs) h3; };
 
-  cryptacular = callPackage ../development/python-modules/cryptacular { };
+  h5netcdf = callPackage ../development/python-modules/h5netcdf { };
 
-  cryptography = if isPy27 then
-      callPackage ../development/python-modules/cryptography/2.9.nix { }
-    else
-      callPackage ../development/python-modules/cryptography { };
+  h5py = callPackage ../development/python-modules/h5py { hdf5 = pkgs.hdf5; };
 
-  cryptography_vectors = if isPy27 then
-      callPackage ../development/python-modules/cryptography/vectors-2.9.nix { }
-    else
-      callPackage ../development/python-modules/cryptography/vectors.nix { };
+  h5py-mpi = self.h5py.override { hdf5 = pkgs.hdf5-mpi; };
 
-  curtsies = callPackage ../development/python-modules/curtsies { };
+  habanero = callPackage ../development/python-modules/habanero { };
 
-  envs = callPackage ../development/python-modules/envs { };
+  ha-ffmpeg = callPackage ../development/python-modules/ha-ffmpeg { };
 
-  enaml = callPackage ../development/python-modules/enaml { };
+  handout = callPackage ../development/python-modules/handout { };
 
-  enamlx = callPackage ../development/python-modules/enamlx { };
+  HAP-python = callPackage ../development/python-modules/HAP-python { };
 
-  etelemetry = callPackage ../development/python-modules/etelemetry { };
+  hass-nabucasa = callPackage ../development/python-modules/hass-nabucasa { };
 
-  eth-hash = callPackage ../development/python-modules/eth-hash { };
+  hawkauthlib = callPackage ../development/python-modules/hawkauthlib { };
 
-  eth-typing = callPackage ../development/python-modules/eth-typing { };
+  hbmqtt = callPackage ../development/python-modules/hbmqtt { };
 
-  eth-utils = callPackage ../development/python-modules/eth-utils { };
+  hcloud = callPackage ../development/python-modules/hcloud { };
 
-  gwyddion = disabledIf isPy3k (toPythonModule (pkgs.gwyddion.override {
-    pythonSupport = true;
-    pythonPackages = self;
-  }));
+  hcs_utils = callPackage ../development/python-modules/hcs_utils { };
 
-  impacket = callPackage ../development/python-modules/impacket { };
+  hdbscan = callPackage ../development/python-modules/hdbscan { };
 
-  img2pdf = callPackage ../development/python-modules/img2pdf { };
+  hdlparse = callPackage ../development/python-modules/hdlparse { };
 
-  jsonlines = callPackage ../development/python-modules/jsonlines { };
+  hdmedians = callPackage ../development/python-modules/hdmedians { };
 
-  json-merge-patch = callPackage ../development/python-modules/json-merge-patch { };
+  heapdict = callPackage ../development/python-modules/heapdict { };
 
-  jsonrpc-async = callPackage ../development/python-modules/jsonrpc-async { };
+  helpdev = callPackage ../development/python-modules/helpdev { };
 
-  jsonrpc-base = callPackage ../development/python-modules/jsonrpc-base { };
+  helper = callPackage ../development/python-modules/helper { };
 
-  jsonrpc-websocket = callPackage ../development/python-modules/jsonrpc-websocket { };
+  hepmc3 = toPythonModule (pkgs.hepmc3.override { inherit python; });
 
-  hepmc3 = toPythonModule (pkgs.hepmc3.override {
-    inherit python;
-  });
+  hetzner = callPackage ../development/python-modules/hetzner { };
 
-  onkyo-eiscp = callPackage ../development/python-modules/onkyo-eiscp { };
+  heudiconv = callPackage ../development/python-modules/heudiconv { };
 
-  tablib = callPackage ../development/python-modules/tablib { };
+  hg-evolve = callPackage ../development/python-modules/hg-evolve { };
 
-  wakeonlan = callPackage ../development/python-modules/wakeonlan { };
+  hg-git = callPackage ../development/python-modules/hg-git { };
 
-  openant = callPackage ../development/python-modules/openant { };
+  hglib = callPackage ../development/python-modules/hglib { };
 
-  opencv = disabledIf isPy3k (toPythonModule (pkgs.opencv.override {
-    enablePython = true;
-    pythonPackages = self;
-  }));
+  hgsvn = callPackage ../development/python-modules/hgsvn { };
 
-  opencv3 = toPythonModule (pkgs.opencv3.override {
-    enablePython = true;
-    pythonPackages = self;
-  });
+  hickle = callPackage ../development/python-modules/hickle { };
 
-  opencv4 = toPythonModule (pkgs.opencv4.override {
-    enablePython = true;
-    pythonPackages = self;
-  });
+  hidapi = callPackage ../development/python-modules/hidapi { inherit (pkgs) udev libusb1; };
 
-  opentracing = callPackage ../development/python-modules/opentracing { };
+  hieroglyph = callPackage ../development/python-modules/hieroglyph { };
 
-  openidc-client = callPackage ../development/python-modules/openidc-client {};
+  hiredis = callPackage ../development/python-modules/hiredis { };
 
-  openwebifpy = callPackage ../development/python-modules/openwebifpy {};
+  hiro = callPackage ../development/python-modules/hiro { };
 
-  optuna = callPackage ../development/python-modules/optuna { };
+  hiyapyco = callPackage ../development/python-modules/hiyapyco { };
 
-  idna = callPackage ../development/python-modules/idna { };
+  hkdf = callPackage ../development/python-modules/hkdf { };
 
-  mahotas = callPackage ../development/python-modules/mahotas { };
+  hmmlearn = callPackage ../development/python-modules/hmmlearn { };
 
-  MDP = callPackage ../development/python-modules/mdp {};
+  hocr-tools = callPackage ../development/python-modules/hocr-tools { };
 
-  minidb = callPackage ../development/python-modules/minidb { };
+  holidays = callPackage ../development/python-modules/holidays { };
 
-  miniupnpc = callPackage ../development/python-modules/miniupnpc {};
+  holoviews = callPackage ../development/python-modules/holoviews { };
 
-  mixpanel = callPackage ../development/python-modules/mixpanel { };
+  homeassistant-pyozw = callPackage ../development/python-modules/homeassistant-pyozw { };
 
-  mpyq = callPackage ../development/python-modules/mpyq { };
+  hoomd-blue = toPythonModule (callPackage ../development/python-modules/hoomd-blue { inherit python; });
 
-  mxnet = callPackage ../development/python-modules/mxnet { };
+  hopcroftkarp = callPackage ../development/python-modules/hopcroftkarp { };
 
-  nplusone = callPackage ../development/python-modules/nplusone { };
+  howdoi = callPackage ../development/python-modules/howdoi { };
 
-  parsy = callPackage ../development/python-modules/parsy { };
+  hpack = callPackage ../development/python-modules/hpack { };
 
-  portalocker = callPackage ../development/python-modules/portalocker { };
+  hsaudiotag3k = callPackage ../development/python-modules/hsaudiotag3k { };
 
-  portpicker = callPackage ../development/python-modules/portpicker { };
+  hsaudiotag = callPackage ../development/python-modules/hsaudiotag { };
 
-  pkginfo = callPackage ../development/python-modules/pkginfo { };
+  hstspreload = callPackage ../development/python-modules/hstspreload { };
 
-  pre-commit = callPackage ../development/python-modules/pre-commit { };
+  html2text = if isPy3k then
+    callPackage ../development/python-modules/html2text { }
+  else
+    callPackage ../development/python-modules/html2text/2018.nix { };
 
-  pretend = callPackage ../development/python-modules/pretend { };
+  html5lib = callPackage ../development/python-modules/html5lib { };
 
-  detox = throw "detox is no longer maintained, and was broken since may 2019"; # added 2020-07-04
+  html5-parser = callPackage ../development/python-modules/html5-parser { inherit (pkgs) pkgconfig; };
 
-  pbkdf2 = callPackage ../development/python-modules/pbkdf2 { };
+  htmllaundry = callPackage ../development/python-modules/htmllaundry { };
 
-  bcrypt = callPackage ../development/python-modules/bcrypt { };
+  htmlmin = callPackage ../development/python-modules/htmlmin { };
 
-  cffi = callPackage ../development/python-modules/cffi { };
+  html-sanitizer = callPackage ../development/python-modules/html-sanitizer { };
 
-  pyavm = callPackage ../development/python-modules/pyavm { };
+  htmltreediff = callPackage ../development/python-modules/htmltreediff { };
 
-  pycollada = callPackage ../development/python-modules/pycollada { };
+  HTSeq = callPackage ../development/python-modules/HTSeq { };
 
-  pycontracts = callPackage ../development/python-modules/pycontracts { };
+  httmock = callPackage ../development/python-modules/httmock { };
 
-  pycparser = callPackage ../development/python-modules/pycparser { };
+  httpauth = callPackage ../development/python-modules/httpauth { };
 
-  pydub = callPackage ../development/python-modules/pydub {};
+  httpbin = callPackage ../development/python-modules/httpbin { };
 
-  pyjade = callPackage ../development/python-modules/pyjade {};
+  httpcore = callPackage ../development/python-modules/httpcore { };
 
-  pyjet = callPackage ../development/python-modules/pyjet {};
+  http-ece = callPackage ../development/python-modules/http-ece { };
 
-  pyjks = callPackage ../development/python-modules/pyjks {};
+  httplib2 = callPackage ../development/python-modules/httplib2 { };
 
-  PyLD = callPackage ../development/python-modules/PyLD { };
+  httpretty = if isPy3k then
+    callPackage ../development/python-modules/httpretty { }
+  else
+    callPackage ../development/python-modules/httpretty/0.nix { };
 
-  pysingleton = callPackage ../development/python-modules/pysingleton { };
+  httpserver = callPackage ../development/python-modules/httpserver { };
 
-  python-didl-lite = callPackage ../development/python-modules/python-didl-lite { };
+  httpsig = callPackage ../development/python-modules/httpsig { };
 
-  python-jose = callPackage ../development/python-modules/python-jose {};
+  http_signature = callPackage ../development/python-modules/http_signature { };
 
-  python-json-logger = callPackage ../development/python-modules/python-json-logger { };
+  httptools = callPackage ../development/python-modules/httptools { };
 
-  python-ly = callPackage ../development/python-modules/python-ly {};
+  httpx = callPackage ../development/python-modules/httpx { };
 
-  pyhcl = callPackage ../development/python-modules/pyhcl { };
+  huey = callPackage ../development/python-modules/huey { };
 
-  pyhs100 = callPackage ../development/python-modules/pyhs100 { };
+  hug = callPackage ../development/python-modules/hug { };
 
-  pyrealsense2 = toPythonModule (pkgs.librealsense.override {
-    enablePython = true;
-    pythonPackages = self;
-  });
+  humanfriendly = callPackage ../development/python-modules/humanfriendly { };
 
-  pyrealsense2WithCuda = toPythonModule (pkgs.librealsenseWithCuda.override {
-    enablePython = true;
-    pythonPackages = self;
-  });
+  humanize = callPackage ../development/python-modules/humanize { };
 
-  pyrealsense2WithoutCuda = toPythonModule (pkgs.librealsenseWithoutCuda.override {
-    enablePython = true;
-    pythonPackages = self;
-  });
+  hupper = callPackage ../development/python-modules/hupper { };
 
-  # pytest>=6 is too new for most packages
-  pytest = if isPy3k then self.pytest_5 else self.pytest_4;
+  hvac = callPackage ../development/python-modules/hvac { };
 
-  pytest_6 = callPackage ../development/python-modules/pytest {
-    # hypothesis tests require pytest that causes dependency cycle
-    hypothesis = self.hypothesis.override { doCheck = false; };
-  };
+  hvplot = callPackage ../development/python-modules/hvplot { };
 
-  pytest_5 = callPackage ../development/python-modules/pytest/5.nix {
-    # hypothesis tests require pytest that causes dependency cycle
-    hypothesis = self.hypothesis.override { doCheck = false; };
-  };
+  hwi = callPackage ../development/python-modules/hwi { };
 
-  pytest_4 = callPackage ../development/python-modules/pytest/4.nix {
-    # hypothesis tests require pytest that causes dependency cycle
-    hypothesis = self.hypothesis.override { doCheck = false; };
-  };
+  hydra = callPackage ../development/python-modules/hydra { };
 
-  pytest-helpers-namespace = callPackage ../development/python-modules/pytest-helpers-namespace { };
+  hydra-check = callPackage ../development/python-modules/hydra-check { };
 
-  pytest-httpbin = callPackage ../development/python-modules/pytest-httpbin { };
+  hypchat = callPackage ../development/python-modules/hypchat { };
 
-  pytest-asyncio = callPackage ../development/python-modules/pytest-asyncio { };
+  hyperframe = callPackage ../development/python-modules/hyperframe { };
 
-  pytest-annotate = callPackage ../development/python-modules/pytest-annotate { };
+  hyperkitty = callPackage ../servers/mail/mailman/hyperkitty.nix { };
 
-  pytest-ansible = callPackage ../development/python-modules/pytest-ansible { };
+  hyperlink = callPackage ../development/python-modules/hyperlink { };
 
-  pytest-aiohttp = callPackage ../development/python-modules/pytest-aiohttp { };
+  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-arraydiff = callPackage ../development/python-modules/pytest-arraydiff { };
+  hypothesis-auto = callPackage ../development/python-modules/hypothesis-auto { };
 
-  pytest-astropy = callPackage ../development/python-modules/pytest-astropy { };
+  hypothesis = if isPy3k then callPackage ../development/python-modules/hypothesis { } else self.hypothesis_4;
 
-  pytest-astropy-header = callPackage ../development/python-modules/pytest-astropy-header { };
+  i3ipc = callPackage ../development/python-modules/i3ipc { };
 
-  pytest-filter-subpackage = callPackage ../development/python-modules/pytest-filter-subpackage { };
+  i3-py = callPackage ../development/python-modules/i3-py { };
 
-  pytest-benchmark = callPackage ../development/python-modules/pytest-benchmark { };
+  iapws = callPackage ../development/python-modules/iapws { };
 
-  pytestcache = callPackage ../development/python-modules/pytestcache { };
+  ibis = callPackage ../development/python-modules/ibis { };
 
-  pytest-catchlog = callPackage ../development/python-modules/pytest-catchlog { };
+  ibis-framework = callPackage ../development/python-modules/ibis-framework { };
 
-  pytest-cram = callPackage ../development/python-modules/pytest-cram { };
+  icalendar = callPackage ../development/python-modules/icalendar { };
 
-  pytest-datadir = callPackage ../development/python-modules/pytest-datadir { };
+  icecream = callPackage ../development/python-modules/icecream { };
 
-  pytest-datafiles = callPackage ../development/python-modules/pytest-datafiles { };
+  ics = callPackage ../development/python-modules/ics { };
 
-  pytest-dependency = callPackage ../development/python-modules/pytest-dependency { };
+  identify = callPackage ../development/python-modules/identify { };
 
-  pytest-django = callPackage ../development/python-modules/pytest-django { };
+  idna = callPackage ../development/python-modules/idna { };
 
-  pytest-doctestplus = callPackage ../development/python-modules/pytest-doctestplus { };
+  idna-ssl = callPackage ../development/python-modules/idna-ssl { };
 
-  pytest-fixture-config = callPackage ../development/python-modules/pytest-fixture-config { };
+  ifaddr = callPackage ../development/python-modules/ifaddr { };
 
-  pytest-forked = callPackage ../development/python-modules/pytest-forked { };
+  ifconfig-parser = callPackage ../development/python-modules/ifconfig-parser { };
 
-  pytest-html = callPackage ../development/python-modules/pytest-html { };
+  ignite = callPackage ../development/python-modules/ignite { };
 
-  pytest-metadata = callPackage ../development/python-modules/pytest-metadata { };
+  ihatemoney = callPackage ../development/python-modules/ihatemoney { };
 
-  pytest-rerunfailures = callPackage ../development/python-modules/pytest-rerunfailures { };
+  ijson = callPackage ../development/python-modules/ijson { };
 
-  pytest-relaxed = callPackage ../development/python-modules/pytest-relaxed { };
+  imagecodecs-lite = disabledIf (!isPy3k) (callPackage ../development/python-modules/imagecodecs-lite { });
 
-  pytest-remotedata = callPackage ../development/python-modules/pytest-remotedata { };
+  imagecorruptions = callPackage ../development/python-modules/imagecorruptions { };
 
-  pytest-sanic = callPackage ../development/python-modules/pytest-sanic { };
+  imageio = callPackage ../development/python-modules/imageio { };
 
-  pytest-flake8 = callPackage ../development/python-modules/pytest-flake8 { };
+  imageio-ffmpeg = callPackage ../development/python-modules/imageio-ffmpeg { };
 
-  pytest-flakes = callPackage ../development/python-modules/pytest-flakes { };
+  image-match = callPackage ../development/python-modules/image-match { };
 
-  pytest-isort = callPackage ../development/python-modules/pytest-isort { };
+  imagesize = callPackage ../development/python-modules/imagesize { };
 
-  pytest-lazy-fixture = callPackage ../development/python-modules/pytest-lazy-fixture { };
+  IMAPClient = callPackage ../development/python-modules/imapclient { };
 
-  pytest-mpl = callPackage ../development/python-modules/pytest-mpl { };
+  imaplib2 = callPackage ../development/python-modules/imaplib2 { };
 
-  pytest-mock = if isPy3k then
-    callPackage ../development/python-modules/pytest-mock { }
+  imbalanced-learn = if isPy27 then
+    callPackage ../development/python-modules/imbalanced-learn/0.4.nix { }
   else
-    callPackage ../development/python-modules/pytest-mock/2.nix { };
+    callPackage ../development/python-modules/imbalanced-learn { };
 
-  pytest-openfiles = callPackage ../development/python-modules/pytest-openfiles { };
-
-  pytest-timeout = callPackage ../development/python-modules/pytest-timeout { };
-
-  pytest-warnings = callPackage ../development/python-modules/pytest-warnings { };
+  img2pdf = callPackage ../development/python-modules/img2pdf { };
 
-  pytest-watch = callPackage ../development/python-modules/pytest-watch { };
+  imgaug = callPackage ../development/python-modules/imgaug { };
 
-  pytestpep8 = callPackage ../development/python-modules/pytest-pep8 { };
+  immutables = callPackage ../development/python-modules/immutables { };
 
-  pytest-pep257 = callPackage ../development/python-modules/pytest-pep257 { };
+  impacket = callPackage ../development/python-modules/impacket { };
 
-  pytest-pythonpath = callPackage ../development/python-modules/pytest-pythonpath { };
+  importlib-metadata = callPackage ../development/python-modules/importlib-metadata { };
 
-  pytest-raisesregexp = callPackage ../development/python-modules/pytest-raisesregexp { };
+  importlib-resources = callPackage ../development/python-modules/importlib-resources { };
 
-  pytest-randomly = callPackage ../development/python-modules/pytest-randomly { };
-
-  pytest-random-order = callPackage ../development/python-modules/pytest-random-order { };
+  importmagic = callPackage ../development/python-modules/importmagic { };
 
-  pytest-repeat = callPackage ../development/python-modules/pytest-repeat { };
+  imread =
+    callPackage ../development/python-modules/imread { inherit (pkgs) pkgconfig libjpeg libpng libtiff libwebp; };
 
-  pytestrunner = callPackage ../development/python-modules/pytestrunner { };
+  imutils = callPackage ../development/python-modules/imutils { };
 
-  pytestquickcheck = callPackage ../development/python-modules/pytest-quickcheck { };
+  incremental = callPackage ../development/python-modules/incremental { };
 
-  pytest-server-fixtures = callPackage ../development/python-modules/pytest-server-fixtures { };
+  inflect = callPackage ../development/python-modules/inflect { };
 
-  pytest-services = callPackage ../development/python-modules/pytest-services { };
+  inflection = callPackage ../development/python-modules/inflection { };
 
-  pytest-shutil = callPackage ../development/python-modules/pytest-shutil { };
+  influxdb = callPackage ../development/python-modules/influxdb { };
 
-  pytest-socket = callPackage ../development/python-modules/pytest-socket { };
+  influxdb-client = callPackage ../development/python-modules/influxdb-client { };
 
-  pytestcov = callPackage ../development/python-modules/pytest-cov { };
+  influxgraph = callPackage ../development/python-modules/influxgraph { };
 
-  pytest-expect = callPackage ../development/python-modules/pytest-expect { };
+  infoqscraper = callPackage ../development/python-modules/infoqscraper { };
 
-  pytest-virtualenv = callPackage ../development/python-modules/pytest-virtualenv { };
+  iniconfig = callPackage ../development/python-modules/iniconfig { };
 
-  pytest_xdist = self.pytest_xdist_1;
+  inifile = callPackage ../development/python-modules/inifile { };
 
-  pytest_xdist_1 = callPackage ../development/python-modules/pytest-xdist { };
+  iniparse = callPackage ../development/python-modules/iniparse { };
 
-  pytest_xdist_2 = callPackage ../development/python-modules/pytest-xdist/2.nix { };
+  inotify-simple = callPackage ../development/python-modules/inotify-simple { };
 
-  pytest-localserver = callPackage ../development/python-modules/pytest-localserver { };
+  inquirer = callPackage ../development/python-modules/inquirer { };
 
-  pytest-subtesthack = callPackage ../development/python-modules/pytest-subtesthack { };
+  intake = callPackage ../development/python-modules/intake { };
 
-  pytest-sugar = callPackage ../development/python-modules/pytest-sugar { };
+  intelhex = callPackage ../development/python-modules/intelhex { };
 
-  tinycss = callPackage ../development/python-modules/tinycss { };
+  internetarchive = callPackage ../development/python-modules/internetarchive { };
 
-  tinycss2 = callPackage ../development/python-modules/tinycss2 { };
+  interruptingcow = callPackage ../development/python-modules/interruptingcow { };
 
-  cssselect = callPackage ../development/python-modules/cssselect { };
+  intervaltree = callPackage ../development/python-modules/intervaltree { };
 
-  cssselect2 = callPackage ../development/python-modules/cssselect2 { };
+  intreehooks = callPackage ../development/python-modules/intreehooks { };
 
-  cssutils = callPackage ../development/python-modules/cssutils { };
+  invoke = callPackage ../development/python-modules/invoke { };
 
-  css-parser = callPackage ../development/python-modules/css-parser { };
+  iocapture = callPackage ../development/python-modules/iocapture { };
 
-  darcsver = callPackage ../development/python-modules/darcsver { };
+  iowait = callPackage ../development/python-modules/iowait { };
 
-  dask = callPackage ../development/python-modules/dask { };
+  ipaddr = callPackage ../development/python-modules/ipaddr { };
 
-  dask-gateway = callPackage ../development/python-modules/dask-gateway { };
+  ipaddress = callPackage ../development/python-modules/ipaddress { };
 
-  dask-gateway-server = callPackage ../development/python-modules/dask-gateway-server {
-    inherit (pkgs) go;
-  };
+  ipdb = callPackage ../development/python-modules/ipdb { };
 
-  dask-glm = callPackage ../development/python-modules/dask-glm { };
+  ipdbplugin = callPackage ../development/python-modules/ipdbplugin { };
 
-  dask-image = callPackage ../development/python-modules/dask-image { };
+  ipfsapi = callPackage ../development/python-modules/ipfsapi { };
 
-  dask-jobqueue = callPackage ../development/python-modules/dask-jobqueue { };
+  iptools = callPackage ../development/python-modules/iptools { };
 
-  dask-ml = callPackage ../development/python-modules/dask-ml { };
+  ipy = callPackage ../development/python-modules/IPy { };
 
-  dask-mpi = callPackage ../development/python-modules/dask-mpi { };
+  ipydatawidgets = callPackage ../development/python-modules/ipydatawidgets { };
 
-  dask-xgboost = callPackage ../development/python-modules/dask-xgboost { };
+  ipykernel = if pythonOlder "3.4" then
+    callPackage ../development/python-modules/ipykernel/4.nix { }
+  else
+    callPackage ../development/python-modules/ipykernel { };
 
-  datrie = callPackage ../development/python-modules/datrie { };
+  ipympl = callPackage ../development/python-modules/ipympl { };
 
-  heapdict = callPackage ../development/python-modules/heapdict { };
+  ipyparallel = callPackage ../development/python-modules/ipyparallel { };
 
-  zict = callPackage ../development/python-modules/zict { };
+  ipython_genutils = callPackage ../development/python-modules/ipython_genutils { };
 
-  zigpy = callPackage ../development/python-modules/zigpy { };
+  ipython = if isPy27 then
+    callPackage ../development/python-modules/ipython/5.nix { }
+  else
+    callPackage ../development/python-modules/ipython { };
 
-  zigpy-cc = callPackage ../development/python-modules/zigpy-cc { };
+  ipyvue = callPackage ../development/python-modules/ipyvue { };
 
-  zigpy-deconz = callPackage ../development/python-modules/zigpy-deconz { };
+  ipyvuetify = callPackage ../development/python-modules/ipyvuetify { };
 
-  zigpy-xbee = callPackage ../development/python-modules/zigpy-xbee { };
+  ipywidgets = callPackage ../development/python-modules/ipywidgets { };
 
-  zigpy-zigate = callPackage ../development/python-modules/zigpy-zigate { };
+  irc = callPackage ../development/python-modules/irc { };
 
-  digital-ocean = callPackage ../development/python-modules/digitalocean { };
+  isbnlib = callPackage ../development/python-modules/isbnlib { };
 
-  digi-xbee = callPackage ../development/python-modules/digi-xbee { };
+  islpy = callPackage ../development/python-modules/islpy { };
 
-  leather = callPackage ../development/python-modules/leather { };
+  iso3166 = callPackage ../development/python-modules/iso3166 { };
 
-  libais = callPackage ../development/python-modules/libais { };
+  iso-639 = callPackage ../development/python-modules/iso-639 { };
 
-  libevdev = callPackage ../development/python-modules/libevdev { };
+  iso8601 = callPackage ../development/python-modules/iso8601 { };
 
-  libfdt = toPythonModule (pkgs.dtc.override {
-    inherit python;
-    pythonSupport = true;
-  });
+  isodate = callPackage ../development/python-modules/isodate { };
 
-  libtmux = callPackage ../development/python-modules/libtmux { };
+  isort = callPackage ../development/python-modules/isort { };
 
-  libusb1 = callPackage ../development/python-modules/libusb1 { inherit (pkgs) libusb1; };
+  isoweek = callPackage ../development/python-modules/isoweek { };
 
-  linuxfd = callPackage ../development/python-modules/linuxfd { };
+  itanium_demangler = callPackage ../development/python-modules/itanium_demangler { };
 
-  locket = callPackage ../development/python-modules/locket { };
+  itemadapter = callPackage ../development/python-modules/itemadapter { };
 
-  loo-py = callPackage ../development/python-modules/loo-py { };
+  itemloaders = callPackage ../development/python-modules/itemloaders { };
 
-  tblib = callPackage ../development/python-modules/tblib { };
+  iterm2 = callPackage ../development/python-modules/iterm2 { };
 
-  s3fs = callPackage ../development/python-modules/s3fs { };
+  itsdangerous = callPackage ../development/python-modules/itsdangerous { };
 
-  datashape = callPackage ../development/python-modules/datashape { };
+  itypes = callPackage ../development/python-modules/itypes { };
 
-  requests-cache = callPackage ../development/python-modules/requests-cache { };
+  j2cli = callPackage ../development/python-modules/j2cli { };
 
-  requests-file = callPackage ../development/python-modules/requests-file { };
+  jabberbot = callPackage ../development/python-modules/jabberbot { };
 
-  requests-kerberos = callPackage ../development/python-modules/requests-kerberos { };
+  janus = callPackage ../development/python-modules/janus { };
 
-  requests-unixsocket = callPackage ../development/python-modules/requests-unixsocket {};
+  jaraco_classes = callPackage ../development/python-modules/jaraco_classes { };
 
-  requests-aws4auth = callPackage ../development/python-modules/requests-aws4auth { };
+  jaraco_collections = callPackage ../development/python-modules/jaraco_collections { };
 
-  howdoi = callPackage ../development/python-modules/howdoi {};
+  jaraco_functools = if pythonOlder "3.6" then
+    callPackage ../development/python-modules/jaraco_functools/2.nix { }
+  else
+    callPackage ../development/python-modules/jaraco_functools { };
 
-  jdatetime = callPackage ../development/python-modules/jdatetime {};
+  jaraco_itertools = callPackage ../development/python-modules/jaraco_itertools { };
 
-  daphne = callPackage ../development/python-modules/daphne { };
+  jaraco_logging = callPackage ../development/python-modules/jaraco_logging { };
 
-  dash = callPackage ../development/python-modules/dash { };
+  jaraco_stream = if pythonOlder "3.6" then
+    callPackage ../development/python-modules/jaraco_stream/2.nix { }
+  else
+    callPackage ../development/python-modules/jaraco_stream { };
 
-  dash-core-components = callPackage ../development/python-modules/dash-core-components { };
+  jaraco_text = callPackage ../development/python-modules/jaraco_text { };
 
-  dash-html-components = callPackage ../development/python-modules/dash-html-components { };
+  javaobj-py3 = callPackage ../development/python-modules/javaobj-py3 { };
 
-  dash-renderer = callPackage ../development/python-modules/dash-renderer { };
+  javaproperties = callPackage ../development/python-modules/javaproperties { };
 
-  dash-table = callPackage ../development/python-modules/dash-table { };
+  JayDeBeApi = callPackage ../development/python-modules/JayDeBeApi { };
 
-  dateparser = callPackage ../development/python-modules/dateparser { };
+  jc = callPackage ../development/python-modules/jc { };
 
-  # Actual name of package
-  python-dateutil = callPackage ../development/python-modules/dateutil { };
-  # Alias that we should deprecate
-  dateutil = self.python-dateutil;
+  jdatetime = callPackage ../development/python-modules/jdatetime { };
 
-  debugpy = callPackage ../development/python-modules/debugpy { };
+  jdcal = callPackage ../development/python-modules/jdcal { };
 
-  decorator = callPackage ../development/python-modules/decorator { };
+  jedi = callPackage ../development/python-modules/jedi { };
 
-  deform = callPackage ../development/python-modules/deform { };
+  jeepney = callPackage ../development/python-modules/jeepney { };
 
-  demjson = callPackage ../development/python-modules/demjson { };
+  jellyfin-apiclient-python = callPackage ../development/python-modules/jellyfin-apiclient-python { };
 
-  deprecated = callPackage ../development/python-modules/deprecated { };
+  jellyfish = callPackage ../development/python-modules/jellyfish { };
 
-  deprecation = callPackage ../development/python-modules/deprecation { };
+  jenkinsapi = callPackage ../development/python-modules/jenkinsapi { };
 
-  derpconf = callPackage ../development/python-modules/derpconf { };
+  jenkins-job-builder = callPackage ../development/python-modules/jenkins-job-builder { };
 
-  deskcon = callPackage ../development/python-modules/deskcon { };
+  jieba = callPackage ../development/python-modules/jieba { };
 
-  dill = callPackage ../development/python-modules/dill { };
+  jinja2 = callPackage ../development/python-modules/jinja2 { };
 
-  discogs_client = callPackage ../development/python-modules/discogs_client { };
+  jinja2_pluralize = callPackage ../development/python-modules/jinja2_pluralize { };
 
-  dlx = callPackage ../development/python-modules/dlx { };
+  jinja2_time = callPackage ../development/python-modules/jinja2_time { };
 
-  dmenu-python = callPackage ../development/python-modules/dmenu { };
+  jira = callPackage ../development/python-modules/jira { };
 
-  dnslib = callPackage ../development/python-modules/dnslib { };
+  jmespath = callPackage ../development/python-modules/jmespath { };
 
-  dnspython = callPackage ../development/python-modules/dnspython { };
-  dns = self.dnspython; # Alias for compatibility, 2017-12-10
+  joblib = callPackage ../development/python-modules/joblib { };
 
-  docker = callPackage ../development/python-modules/docker {};
+  josepy = callPackage ../development/python-modules/josepy { };
 
-  dockerfile-parse = callPackage ../development/python-modules/dockerfile-parse {};
+  journalwatch = callPackage ../tools/system/journalwatch { inherit (self) systemd pytest; };
 
-  docker-py = disabledIf isPy27 (callPackage ../development/python-modules/docker-py {});
+  jpylyzer = callPackage ../development/python-modules/jpylyzer { };
 
-  dockerpty = callPackage ../development/python-modules/dockerpty {};
+  JPype1 = callPackage ../development/python-modules/JPype1 { };
 
-  dockerspawner = callPackage ../development/python-modules/dockerspawner {};
+  jq = callPackage ../development/python-modules/jq { inherit (pkgs) jq; };
 
-  docker_pycreds = callPackage ../development/python-modules/docker-pycreds {};
+  jsbeautifier = callPackage ../development/python-modules/jsbeautifier { };
 
-  docloud = callPackage ../development/python-modules/docloud { };
+  jsmin = callPackage ../development/python-modules/jsmin { };
 
-  docplex = callPackage ../development/python-modules/docplex { };
+  jsondate = callPackage ../development/python-modules/jsondate { };
 
-  docopt = callPackage ../development/python-modules/docopt { };
+  jsondiff = callPackage ../development/python-modules/jsondiff { };
 
-  doctest-ignore-unicode = callPackage ../development/python-modules/doctest-ignore-unicode { };
+  jsonlines = callPackage ../development/python-modules/jsonlines { };
 
-  dogpile_cache = callPackage ../development/python-modules/dogpile.cache { };
+  jsonmerge = callPackage ../development/python-modules/jsonmerge { };
 
-  dogpile_core = callPackage ../development/python-modules/dogpile.core { };
+  json-merge-patch = callPackage ../development/python-modules/json-merge-patch { };
 
-  dopy = callPackage ../development/python-modules/dopy { };
+  jsonnet = buildPythonPackage { inherit (pkgs.jsonnet) name src; };
 
-  dpath = callPackage ../development/python-modules/dpath { };
+  jsonpatch = callPackage ../development/python-modules/jsonpatch { };
 
-  dparse = callPackage ../development/python-modules/dparse { };
+  jsonpath = callPackage ../development/python-modules/jsonpath { };
 
-  dpkt = callPackage ../development/python-modules/dpkt {};
+  jsonpath_rw = callPackage ../development/python-modules/jsonpath_rw { };
 
-  urllib3 = callPackage ../development/python-modules/urllib3 {};
+  jsonpickle = callPackage ../development/python-modules/jsonpickle { };
 
-  varint =  callPackage ../development/python-modules/varint {};
+  jsonpointer = callPackage ../development/python-modules/jsonpointer { };
 
-  drf-yasg = callPackage ../development/python-modules/drf-yasg { };
+  jsonref = callPackage ../development/python-modules/jsonref { };
 
-  dropbox = callPackage ../development/python-modules/dropbox {};
+  jsonrpc-async = callPackage ../development/python-modules/jsonrpc-async { };
 
-  drms = callPackage ../development/python-modules/drms { };
+  jsonrpc-base = callPackage ../development/python-modules/jsonrpc-base { };
 
-  ds4drv = callPackage ../development/python-modules/ds4drv {
-    inherit (pkgs) fetchFromGitHub bluez;
-  };
+  jsonrpclib = callPackage ../development/python-modules/jsonrpclib { };
 
-  dyn = callPackage ../development/python-modules/dyn { };
+  jsonrpclib-pelix = callPackage ../development/python-modules/jsonrpclib-pelix { };
 
-  easydict = callPackage ../development/python-modules/easydict { };
+  jsonrpc-websocket = callPackage ../development/python-modules/jsonrpc-websocket { };
 
-  easygui = callPackage ../development/python-modules/easygui { };
+  jsonschema = callPackage ../development/python-modules/jsonschema { };
 
-  EasyProcess = callPackage ../development/python-modules/easyprocess { };
+  jsonwatch = callPackage ../development/python-modules/jsonwatch { };
 
-  easy-thumbnails = callPackage ../development/python-modules/easy-thumbnails { };
+  jug = callPackage ../development/python-modules/jug { };
 
-  eccodes = toPythonModule (pkgs.eccodes.override {
-    enablePython = true;
-    pythonPackages = self;
-  });
+  junitparser = callPackage ../development/python-modules/junitparser { };
 
-  edward = callPackage ../development/python-modules/edward { };
+  junit-xml = callPackage ../development/python-modules/junit-xml { };
 
-  elasticsearch = callPackage ../development/python-modules/elasticsearch { };
+  junos-eznc = callPackage ../development/python-modules/junos-eznc { };
 
-  elasticsearch-dsl = callPackage ../development/python-modules/elasticsearch-dsl { };
-  # alias
-  elasticsearchdsl = self.elasticsearch-dsl;
+  jupyter = callPackage ../development/python-modules/jupyter { };
 
-  elementpath = callPackage ../development/python-modules/elementpath { };
+  jupyter-c-kernel = callPackage ../development/python-modules/jupyter-c-kernel { };
 
-  entrypoints = callPackage ../development/python-modules/entrypoints { };
+  jupyter_client = if isPy3k then
+    callPackage ../development/python-modules/jupyter_client { }
+  else
+    callPackage ../development/python-modules/jupyter_client/5.nix { };
 
-  envisage = callPackage ../development/python-modules/envisage { };
+  jupyter_console = if pythonOlder "3.5" then
+    callPackage ../development/python-modules/jupyter_console/5.nix { }
+  else
+    callPackage ../development/python-modules/jupyter_console { };
 
-  enzyme = callPackage ../development/python-modules/enzyme {};
+  jupyter_core = callPackage ../development/python-modules/jupyter_core { };
 
-  escapism = callPackage ../development/python-modules/escapism { };
+  jupyterhub = callPackage ../development/python-modules/jupyterhub { };
 
-  etcd = callPackage ../development/python-modules/etcd { };
+  jupyterhub-ldapauthenticator = callPackage ../development/python-modules/jupyterhub-ldapauthenticator { };
 
-  evdev = callPackage ../development/python-modules/evdev {};
+  jupyterhub-systemdspawner =
+    callPackage ../development/python-modules/jupyterhub-systemdspawner { inherit (pkgs) bash; };
 
-  eve = callPackage ../development/python-modules/eve {};
+  jupyterhub-tmpauthenticator = callPackage ../development/python-modules/jupyterhub-tmpauthenticator { };
 
-  eventlib = callPackage ../development/python-modules/eventlib { };
+  jupyterlab = callPackage ../development/python-modules/jupyterlab { };
 
-  events = callPackage ../development/python-modules/events { };
+  jupyterlab-git = callPackage ../development/python-modules/jupyterlab-git { };
 
-  eyeD3 = callPackage ../development/python-modules/eyed3 { };
+  jupyterlab_launcher = callPackage ../development/python-modules/jupyterlab_launcher { };
 
-  execnet = callPackage ../development/python-modules/execnet { };
+  jupyterlab_server = callPackage ../development/python-modules/jupyterlab_server { };
 
-  executor = callPackage ../development/python-modules/executor { };
+  jupyter-repo2docker = callPackage ../development/python-modules/jupyter-repo2docker { pkgs-docker = pkgs.docker; };
 
-  ezdxf = callPackage ../development/python-modules/ezdxf {};
+  jupyter-sphinx = callPackage ../development/python-modules/jupyter-sphinx { };
 
-  facebook-sdk = callPackage ../development/python-modules/facebook-sdk { };
+  jupyter-telemetry = callPackage ../development/python-modules/jupyter-telemetry { };
 
-  face_recognition = callPackage ../development/python-modules/face_recognition { };
+  jupytext = callPackage ../development/python-modules/jupytext { };
 
-  face_recognition_models = callPackage ../development/python-modules/face_recognition_models { };
+  jwcrypto = callPackage ../development/python-modules/jwcrypto { };
 
-  faker = callPackage ../development/python-modules/faker { };
+  k5test = callPackage ../development/python-modules/k5test { inherit (pkgs) krb5Full findutils which; };
 
-  fake_factory = callPackage ../development/python-modules/fake_factory { };
+  kaa-base = callPackage ../development/python-modules/kaa-base { };
 
-  fake-useragent = callPackage ../development/python-modules/fake-useragent { };
+  kaa-metadata = callPackage ../development/python-modules/kaa-metadata { };
 
-  factory_boy = callPackage ../development/python-modules/factory_boy { };
+  kafka-python = callPackage ../development/python-modules/kafka-python { };
 
-  Fabric = callPackage ../development/python-modules/Fabric { };
+  kaggle = callPackage ../development/python-modules/kaggle { };
 
-  fastdtw = callPackage ../development/python-modules/fastdtw { };
+  kaitaistruct = callPackage ../development/python-modules/kaitaistruct { };
 
-  fastjsonschema = callPackage ../development/python-modules/fastjsonschema { };
+  Kajiki = callPackage ../development/python-modules/kajiki { };
 
-  faulthandler = if ! isPy3k
-    then callPackage ../development/python-modules/faulthandler {}
-    else throw "faulthandler is built into ${python.executable}";
+  kaptan = callPackage ../development/python-modules/kaptan { };
 
-  fb-re2 = callPackage ../development/python-modules/fb-re2 { };
+  kazoo = callPackage ../development/python-modules/kazoo { };
 
-  ffmpeg-python = callPackage ../development/python-modules/ffmpeg-python { };
+  kconfiglib = callPackage ../development/python-modules/kconfiglib { };
 
-  fenics = callPackage ../development/libraries/science/math/fenics {
-    inherit (pkgs) pkg-config;
-    mpi = pkgs.openmpi;
-    pytest = self.pytest_4;
-  };
+  keep = callPackage ../development/python-modules/keep { };
 
-  filetype = callPackage ../development/python-modules/filetype { };
+  keepalive = callPackage ../development/python-modules/keepalive { };
 
-  flammkuchen = callPackage ../development/python-modules/flammkuchen { };
+  keepkey_agent = callPackage ../development/python-modules/keepkey_agent { };
 
-  flexmock = callPackage ../development/python-modules/flexmock { };
+  keepkey = callPackage ../development/python-modules/keepkey { };
 
-  flit = callPackage ../development/python-modules/flit { };
+  keras-applications = callPackage ../development/python-modules/keras-applications { };
 
-  flit-core = callPackage ../development/python-modules/flit-core { };
+  Keras = callPackage ../development/python-modules/keras { };
 
-  flowlogs_reader = callPackage ../development/python-modules/flowlogs_reader { };
+  keras-preprocessing = callPackage ../development/python-modules/keras-preprocessing { };
 
-  fluent-logger = callPackage ../development/python-modules/fluent-logger {};
+  kerberos = callPackage ../development/python-modules/kerberos { inherit (pkgs) kerberos; };
 
-  flux-led = callPackage ../development/python-modules/flux-led { };
+  keyring = if isPy3k then
+    callPackage ../development/python-modules/keyring { }
+  else
+    callPackage ../development/python-modules/keyring/2.nix { };
 
-  python-forecastio = callPackage ../development/python-modules/python-forecastio { };
+  keyrings-alt = callPackage ../development/python-modules/keyrings-alt { };
 
-  fpdf = callPackage ../development/python-modules/fpdf { };
+  keyutils = callPackage ../development/python-modules/keyutils { inherit (pkgs) keyutils; };
 
-  fpylll = callPackage ../development/python-modules/fpylll { };
+  kicad = disabledIf isPy27 (toPythonModule (pkgs.kicad.override { python3 = python; }).src);
 
-  fritzconnection = callPackage ../development/python-modules/fritzconnection { };
+  kinparse = callPackage ../development/python-modules/kinparse { };
 
-  frozendict = callPackage ../development/python-modules/frozendict { };
+  kitchen = callPackage ../development/python-modules/kitchen { };
 
-  ftputil = callPackage ../development/python-modules/ftputil { };
+  kiwisolver = if isPy3k then
+    callPackage ../development/python-modules/kiwisolver { }
+  else
+    callPackage ../development/python-modules/kiwisolver/1_1.nix { };
 
-  fudge = callPackage ../development/python-modules/fudge { };
+  klaus = callPackage ../development/python-modules/klaus { };
 
-  funcparserlib = callPackage ../development/python-modules/funcparserlib { };
+  klein = callPackage ../development/python-modules/klein { };
 
-  fastcache = callPackage ../development/python-modules/fastcache { };
+  kmapper = callPackage ../development/python-modules/kmapper { };
 
-  fastentrypoints = callPackage ../development/python-modules/fastentrypoints { };
+  kmsxx = toPythonModule ((callPackage ../development/libraries/kmsxx {
+    inherit (pkgs.kmsxx) stdenv;
+    inherit (pkgs) pkgconfig;
+    withPython = true;
+  }).overrideAttrs (oldAttrs: { name = "${python.libPrefix}-${pkgs.kmsxx.name}"; }));
 
-  functools32 = callPackage ../development/python-modules/functools32 { };
+  knack = callPackage ../development/python-modules/knack { };
 
-  future-fstrings = callPackage ../development/python-modules/future-fstrings { };
+  koji = callPackage ../development/python-modules/koji { };
 
-  fx2 = callPackage ../development/python-modules/fx2 { };
+  kombu = callPackage ../development/python-modules/kombu { };
 
-  # 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;
-  }));
+  konfig = callPackage ../development/python-modules/konfig { };
 
-  gateone = callPackage ../development/python-modules/gateone { };
+  kubernetes = callPackage ../development/python-modules/kubernetes { };
 
-  GeoIP = callPackage ../development/python-modules/GeoIP { };
+  labelbox = callPackage ../development/python-modules/labelbox { };
 
-  glasgow = callPackage ../development/python-modules/glasgow { };
+  lammps-cython = callPackage ../development/python-modules/lammps-cython { mpi = pkgs.openmpi; };
 
-  gmpy = callPackage ../development/python-modules/gmpy { };
+  langcodes = callPackage ../development/python-modules/langcodes { };
 
-  gmpy2 = callPackage ../development/python-modules/gmpy2 { };
+  langdetect = callPackage ../development/python-modules/langdetect { };
 
-  gmusicapi = callPackage ../development/python-modules/gmusicapi { };
+  larch = callPackage ../development/python-modules/larch { };
 
-  gnureadline = callPackage ../development/python-modules/gnureadline { };
+  lark-parser = callPackage ../development/python-modules/lark-parser { };
 
-  gnutls = callPackage ../development/python-modules/gnutls { };
+  Lasagne = callPackage ../development/python-modules/lasagne { };
 
-  gpy = callPackage ../development/python-modules/gpy { };
+  latexcodec = callPackage ../development/python-modules/latexcodec { };
 
-  gpyopt = callPackage ../development/python-modules/gpyopt { };
+  launchpadlib = callPackage ../development/python-modules/launchpadlib { };
 
-  gitdb = callPackage ../development/python-modules/gitdb { };
+  lazr_config = callPackage ../development/python-modules/lazr/config.nix { };
 
-  gitdb2 = throw "gitdb2 has been deprecated, use gitdb instead."; # added 2020-03-14
+  lazr_delegates = callPackage ../development/python-modules/lazr/delegates.nix { };
 
-  GitPython = callPackage ../development/python-modules/GitPython { };
+  lazr-restfulclient = callPackage ../development/python-modules/lazr-restfulclient { };
 
-  git-annex-adapter = callPackage ../development/python-modules/git-annex-adapter {
-    inherit (pkgs.gitAndTools) git-annex;
-  };
+  lazr-uri = callPackage ../development/python-modules/lazr-uri { };
 
-  python-gitlab = callPackage ../development/python-modules/python-gitlab { };
+  lazy = callPackage ../development/python-modules/lazy { };
 
-  google-compute-engine = callPackage ../tools/virtualization/google-compute-engine { };
+  lazy_import = callPackage ../development/python-modules/lazy_import { };
 
-  google-music = callPackage ../development/python-modules/google-music { };
+  lazy-object-proxy = callPackage ../development/python-modules/lazy-object-proxy { };
 
-  google-music-proto = callPackage ../development/python-modules/google-music-proto { };
+  ldap3 = callPackage ../development/python-modules/ldap3 { };
 
-  google-music-utils = callPackage ../development/python-modules/google-music-utils { };
+  ldap = callPackage ../development/python-modules/ldap { inherit (pkgs) openldap cyrus_sasl; };
 
-  google-pasta = callPackage ../development/python-modules/google-pasta { };
+  ldappool = callPackage ../development/python-modules/ldappool { };
 
-  googletrans = callPackage ../development/python-modules/googletrans { };
+  ldaptor = callPackage ../development/python-modules/ldaptor { };
 
-  gdown = callPackage ../development/python-modules/gdown { };
+  leather = callPackage ../development/python-modules/leather { };
 
-  gpapi = callPackage ../development/python-modules/gpapi { };
-  gplaycli = callPackage ../development/python-modules/gplaycli { };
+  le = callPackage ../development/python-modules/le { };
 
-  gpsoauth = callPackage ../development/python-modules/gpsoauth { };
+  ledger_agent = callPackage ../development/python-modules/ledger_agent { };
 
-  gpxpy = callPackage ../development/python-modules/gpxpy { };
+  ledgerblue = callPackage ../development/python-modules/ledgerblue { };
 
-  grip = callPackage ../development/python-modules/grip { };
+  lektor = callPackage ../development/python-modules/lektor { };
 
-  gst-python = callPackage ../development/python-modules/gst-python {
-    inherit (pkgs) meson pkgconfig;
-    gst-plugins-base = pkgs.gst_all_1.gst-plugins-base;
-  };
+  leveldb = callPackage ../development/python-modules/leveldb { };
 
-  gtimelog = callPackage ../development/python-modules/gtimelog { };
+  libagent = callPackage ../development/python-modules/libagent { };
 
-  gtts = callPackage ../development/python-modules/gtts { };
+  libais = callPackage ../development/python-modules/libais { };
 
-  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}";
+  libarchive-c = callPackage ../development/python-modules/libarchive-c { inherit (pkgs) libarchive; };
 
-  hass-nabucasa = callPackage ../development/python-modules/hass-nabucasa { };
+  libarcus = callPackage ../development/python-modules/libarcus { inherit (pkgs) protobuf; };
 
-  hbmqtt = callPackage ../development/python-modules/hbmqtt { };
+  libasyncns = callPackage ../development/python-modules/libasyncns { inherit (pkgs) libasyncns pkgconfig; };
 
-  helpdev = callPackage ../development/python-modules/helpdev { };
+  libcloud = if isPy27 then
+    callPackage ../development/python-modules/libcloud/2.nix { }
+  else
+    callPackage ../development/python-modules/libcloud { };
 
-  heudiconv = callPackage ../development/python-modules/heudiconv { };
+  libevdev = callPackage ../development/python-modules/libevdev { };
 
-  hickle = callPackage ../development/python-modules/hickle { };
+  libfdt = toPythonModule (pkgs.dtc.override {
+    inherit python;
+    pythonSupport = true;
+  });
 
-  hiro = callPackage ../development/python-modules/hiro {};
+  libgpiod = disabledIf (!isPy3k) (toPythonModule (pkgs.libgpiod.override {
+    enablePython = true;
+    python3 = python;
+  }));
 
-  hglib = callPackage ../development/python-modules/hglib {};
+  libgpuarray = callPackage ../development/python-modules/libgpuarray {
+    clblas = pkgs.clblas.override { boost = self.boost; };
+    cudaSupport = pkgs.config.cudaSupport or false;
+    inherit (pkgs.linuxPackages) nvidia_x11;
+  };
 
-  huey = callPackage ../development/python-modules/huey { };
+  libiio = (toPythonModule (pkgs.libiio.override { inherit python; })).python;
 
-  humanize = callPackage ../development/python-modules/humanize { };
+  libkeepass = callPackage ../development/python-modules/libkeepass { };
 
-  humanfriendly = callPackage ../development/python-modules/humanfriendly { };
+  liblarch = callPackage ../development/python-modules/liblarch { };
 
-  hupper = callPackage ../development/python-modules/hupper {};
+  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)
+  ];
 
-  hsaudiotag = callPackage ../development/python-modules/hsaudiotag { };
+  libmr = callPackage ../development/python-modules/libmr { };
 
-  hsaudiotag3k = callPackage ../development/python-modules/hsaudiotag3k { };
+  libnacl = callPackage ../development/python-modules/libnacl { inherit (pkgs) libsodium; };
 
-  hstspreload = callPackage ../development/python-modules/hstspreload { };
+  libnl-python = disabledIf isPy3k (toPythonModule (pkgs.libnl.override {
+    pythonSupport = true;
+    inherit python;
+  })).py;
 
-  htmlmin = callPackage ../development/python-modules/htmlmin {};
+  libplist = disabledIf isPy3k (toPythonModule (pkgs.libplist.override {
+    enablePython = true;
+    inherit python;
+  })).py;
 
-  httpauth = callPackage ../development/python-modules/httpauth { };
+  libredwg = toPythonModule (pkgs.libredwg.override {
+    enablePython = true;
+    inherit (self) python libxml2;
+  });
 
-  httpx = callPackage ../development/python-modules/httpx { };
+  librepo = pipe pkgs.librepo [
+    toPythonModule
+    (p: p.overrideAttrs (super: { meta = super.meta // { outputsToInstall = [ "py" ]; }; }))
+    (p: p.override { inherit python; })
+    (p: p.py)
+  ];
 
-  idna-ssl = callPackage ../development/python-modules/idna-ssl { };
+  librosa = callPackage ../development/python-modules/librosa { };
 
-  identify = callPackage ../development/python-modules/identify { };
+  libsavitar = callPackage ../development/python-modules/libsavitar { };
 
-  ijson = callPackage ../development/python-modules/ijson {};
+  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)
+  ];
 
-  imagecodecs-lite = disabledIf (!isPy3k) (callPackage ../development/python-modules/imagecodecs-lite { });
+  libsoundtouch = callPackage ../development/python-modules/libsoundtouch { };
 
-  imagesize = callPackage ../development/python-modules/imagesize { };
+  libthumbor = callPackage ../development/python-modules/libthumbor { };
 
-  image-match = callPackage ../development/python-modules/image-match { };
+  libtmux = callPackage ../development/python-modules/libtmux { };
 
-  imbalanced-learn =
-    if isPy27 then
-      callPackage ../development/python-modules/imbalanced-learn/0.4.nix { }
-    else
-      callPackage ../development/python-modules/imbalanced-learn { };
+  libtorrentRasterbar = (toPythonModule (pkgs.libtorrentRasterbar.override { inherit python; })).python;
 
-  immutables = callPackage ../development/python-modules/immutables {};
+  libusb1 = callPackage ../development/python-modules/libusb1 { inherit (pkgs) libusb1; };
 
-  imread = callPackage ../development/python-modules/imread {
-    inherit (pkgs) pkgconfig libjpeg libpng libtiff libwebp;
-  };
+  libversion = callPackage ../development/python-modules/libversion { inherit (pkgs) libversion pkgconfig; };
 
-  imaplib2 = callPackage ../development/python-modules/imaplib2 { };
+  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;
+    });
 
-  ipfsapi = callPackage ../development/python-modules/ipfsapi { };
+  libxml2 = (toPythonModule (pkgs.libxml2.override {
+    pythonSupport = true;
+    inherit python;
+  })).py;
 
-  isbnlib = callPackage ../development/python-modules/isbnlib { };
+  libxslt = (toPythonModule (pkgs.libxslt.override {
+    pythonSupport = true;
+    inherit python;
+    inherit (self) libxml2;
+  })).py;
 
-  islpy = callPackage ../development/python-modules/islpy { };
+  license-expression = callPackage ../development/python-modules/license-expression { };
 
-  itsdangerous = callPackage ../development/python-modules/itsdangerous { };
+  lightblue = callPackage ../development/python-modules/lightblue { };
 
-  itypes = callPackage ../development/python-modules/itypes { };
+  lightgbm = callPackage ../development/python-modules/lightgbm { };
 
-  iniconfig = callPackage ../development/python-modules/iniconfig { };
+  lightning = callPackage ../development/python-modules/lightning { };
 
-  iniparse = callPackage ../development/python-modules/iniparse { };
+  lightparam = callPackage ../development/python-modules/lightparam { };
 
-  intreehooks = callPackage ../development/python-modules/intreehooks { };
+  limitlessled = callPackage ../development/python-modules/limitlessled { };
 
-  i3-py = callPackage ../development/python-modules/i3-py { };
+  limits = callPackage ../development/python-modules/limits { };
 
-  JayDeBeApi = callPackage ../development/python-modules/JayDeBeApi {};
+  limnoria = callPackage ../development/python-modules/limnoria { };
 
-  jdcal = callPackage ../development/python-modules/jdcal { };
+  linecache2 = callPackage ../development/python-modules/linecache2 { };
 
-  jieba = callPackage ../development/python-modules/jieba { };
+  line_profiler = callPackage ../development/python-modules/line_profiler { };
 
-  internetarchive = callPackage ../development/python-modules/internetarchive {};
+  linode-api = callPackage ../development/python-modules/linode-api { };
 
-  JPype1 = callPackage ../development/python-modules/JPype1 {};
+  linode = callPackage ../development/python-modules/linode { };
 
-  jpylyzer = callPackage ../development/python-modules/jpylyzer {};
+  linuxfd = callPackage ../development/python-modules/linuxfd { };
 
-  josepy = callPackage ../development/python-modules/josepy {};
+  lirc = disabledIf isPy27 (toPythonModule (pkgs.lirc.override { python3 = python; }));
 
-  jsbeautifier = callPackage ../development/python-modules/jsbeautifier {};
+  livelossplot = callPackage ../development/python-modules/livelossplot { };
 
-  jug = callPackage ../development/python-modules/jug {};
+  livereload = callPackage ../development/python-modules/livereload { };
 
-  jsmin = callPackage ../development/python-modules/jsmin { };
+  livestreamer = callPackage ../development/python-modules/livestreamer { };
 
-  jsonmerge = callPackage ../development/python-modules/jsonmerge { };
+  livestreamer-curses = callPackage ../development/python-modules/livestreamer-curses { };
 
-  jsonpatch = callPackage ../development/python-modules/jsonpatch { };
+  llfuse = callPackage ../development/python-modules/llfuse {
+    inherit (pkgs) fuse pkgconfig;
+  }; # use "real" fuse and pkgconfig, not the python modules
 
-  jsonpickle = callPackage ../development/python-modules/jsonpickle { };
+  llvmlite = callPackage ../development/python-modules/llvmlite {
+    llvm = pkgs.llvm_9;
+  }; # llvmlite always requires a specific version of llvm.
 
-  jsonpointer = callPackage ../development/python-modules/jsonpointer { };
+  lmdb = callPackage ../development/python-modules/lmdb { };
 
-  jsonrpclib = callPackage ../development/python-modules/jsonrpclib { };
+  lml = callPackage ../development/python-modules/lml { };
 
-  jsonrpclib-pelix = callPackage ../development/python-modules/jsonrpclib-pelix {};
+  lmtpd = callPackage ../development/python-modules/lmtpd { };
 
-  jsonwatch = callPackage ../development/python-modules/jsonwatch { };
+  localzone = callPackage ../development/python-modules/localzone { };
 
-  kicad = disabledIf isPy27 (toPythonModule (pkgs.kicad.override {
-    python3 = python;
-  }).src);
+  locket = callPackage ../development/python-modules/locket { };
 
-  latexcodec = callPackage ../development/python-modules/latexcodec {};
+  lockfile = callPackage ../development/python-modules/lockfile { };
 
-  lazy = callPackage ../development/python-modules/lazy { };
+  locustio = callPackage ../development/python-modules/locustio { };
 
-  libmodulemd = pipe pkgs.libmodulemd [
-    toPythonModule
+  Logbook = callPackage ../development/python-modules/Logbook { };
 
-    (p: p.overrideAttrs (super: {
-      meta = super.meta // {
-        outputsToInstall = [ "py" ];
-        # The package always builds python3 bindings
-        broken = (super.meta.broken or false) || !isPy3k;
-      };
-    }))
+  logfury = callPackage ../development/python-modules/logfury { };
 
-    (p: p.override {
-      python3 = python;
-    })
+  logilab_astng = callPackage ../development/python-modules/logilab_astng { };
 
-    (p: p.py)
-  ];
+  logilab_common = callPackage ../development/python-modules/logilab/common.nix { };
 
-  libselinux = pipe pkgs.libselinux [
-    toPythonModule
+  logilab-constraint = callPackage ../development/python-modules/logilab/constraint.nix { };
 
-    (p: p.overrideAttrs (super: {
-      meta = super.meta // {
-        outputsToInstall = [ "py" ];
-        broken = (super.meta.broken or false) || pythonAtLeast "3.8";
-      };
-    }))
+  logster = callPackage ../development/python-modules/logster { };
 
-    (p: p.override {
-      enablePython = true;
-      inherit python;
-    })
+  loguru = callPackage ../development/python-modules/loguru { };
 
-    (p: p.py)
-  ];
+  logutils = callPackage ../development/python-modules/logutils { };
 
-  libsoundtouch = callPackage ../development/python-modules/libsoundtouch { };
+  logzero = callPackage ../development/python-modules/logzero { };
 
-  libthumbor = callPackage ../development/python-modules/libthumbor { };
+  loo-py = callPackage ../development/python-modules/loo-py { };
 
-  license-expression = callPackage ../development/python-modules/license-expression { };
+  lpod = callPackage ../development/python-modules/lpod { };
 
-  lightblue = callPackage ../development/python-modules/lightblue { };
+  lsi = callPackage ../development/python-modules/lsi { };
 
-  lightgbm = callPackage ../development/python-modules/lightgbm { };
+  ludios_wpull = callPackage ../development/python-modules/ludios_wpull { };
 
-  lightning = callPackage ../development/python-modules/lightning { };
+  luftdaten = callPackage ../development/python-modules/luftdaten { };
 
-  lightparam = callPackage ../development/python-modules/lightparam { };
+  lxc = callPackage ../development/python-modules/lxc { };
 
-  jupyter = callPackage ../development/python-modules/jupyter { };
+  lxml = callPackage ../development/python-modules/lxml { inherit (pkgs) libxml2 libxslt zlib; };
 
-  jupyter-c-kernel = callPackage ../development/python-modules/jupyter-c-kernel { };
+  lz4 = self.python-lz4; # alias 2018-12-05
 
-  jupyter_console = if pythonOlder "3.5" then
-       callPackage ../development/python-modules/jupyter_console/5.nix { }
-     else
-       callPackage ../development/python-modules/jupyter_console { };
+  lzstring = callPackage ../development/python-modules/lzstring { };
 
-  jupyterlab_launcher = callPackage ../development/python-modules/jupyterlab_launcher { };
+  m2crypto = callPackage ../development/python-modules/m2crypto { };
 
-  jupyterlab_server = callPackage ../development/python-modules/jupyterlab_server { };
+  m2r = callPackage ../development/python-modules/m2r { };
 
-  jupyterlab = callPackage ../development/python-modules/jupyterlab {};
+  m3u8 = callPackage ../development/python-modules/m3u8 { };
 
-  jupyterlab-git = callPackage ../development/python-modules/jupyterlab-git {};
+  mac_alias = callPackage ../development/python-modules/mac_alias { };
 
-  jupyter-sphinx = callPackage ../development/python-modules/jupyter-sphinx { };
+  macfsevents = callPackage ../development/python-modules/macfsevents {
+    inherit (pkgs.darwin.apple_sdk.frameworks) CoreFoundation CoreServices;
+  };
 
-  jupytext = callPackage ../development/python-modules/jupytext { };
+  macropy = callPackage ../development/python-modules/macropy { };
 
-  PyLTI = callPackage ../development/python-modules/pylti { };
+  maestral = callPackage ../development/python-modules/maestral { };
 
-  lmdb = callPackage ../development/python-modules/lmdb { };
+  magic = callPackage ../development/python-modules/magic { };
 
-  logilab_astng = callPackage ../development/python-modules/logilab_astng { };
+  magic-wormhole = callPackage ../development/python-modules/magic-wormhole { };
 
-  lpod = callPackage ../development/python-modules/lpod { };
+  magic-wormhole-mailbox-server = callPackage ../development/python-modules/magic-wormhole-mailbox-server { };
 
-  ludios_wpull = callPackage ../development/python-modules/ludios_wpull { };
+  magic-wormhole-transit-relay = callPackage ../development/python-modules/magic-wormhole-transit-relay { };
 
-  luftdaten = callPackage ../development/python-modules/luftdaten { };
+  mahotas = callPackage ../development/python-modules/mahotas { };
 
-  m2r = callPackage ../development/python-modules/m2r { };
+  mailcap-fix = callPackage ../development/python-modules/mailcap-fix { };
 
   mailchimp = callPackage ../development/python-modules/mailchimp { };
 
-  python-mapnik = callPackage ../development/python-modules/python-mapnik { };
-
-  measurement = callPackage ../development/python-modules/measurement {};
+  mailman = callPackage ../servers/mail/mailman { };
 
-  mercurial = disabledIf (!isPy3k) (toPythonModule (pkgs.mercurial.override {
-    python3Packages = self;
-  }));
+  mailmanclient = callPackage ../development/python-modules/mailmanclient { };
 
-  midiutil = callPackage ../development/python-modules/midiutil {};
+  mailman-hyperkitty = callPackage ../development/python-modules/mailman-hyperkitty { };
 
-  mido = callPackage ../development/python-modules/mido { };
+  mailman-web = callPackage ../servers/mail/mailman/web.nix { };
 
-  misaka = callPackage ../development/python-modules/misaka {};
+  mail-parser = callPackage ../development/python-modules/mail-parser { };
 
-  mlrose = callPackage ../development/python-modules/mlrose { };
+  Mako = callPackage ../development/python-modules/Mako { };
 
-  mlflow = callPackage ../development/python-modules/mlflow { };
+  managesieve = callPackage ../development/python-modules/managesieve { };
 
-  mt-940 = callPackage ../development/python-modules/mt-940 { };
+  manhole = callPackage ../development/python-modules/manhole { };
 
-  mwlib = callPackage ../development/python-modules/mwlib { };
+  manifestparser = callPackage ../development/python-modules/marionette-harness/manifestparser.nix { };
 
-  mwlib-ext = callPackage ../development/python-modules/mwlib-ext { };
+  manuel = callPackage ../development/python-modules/manuel { };
 
-  mwlib-rl = callPackage ../development/python-modules/mwlib-rl { };
+  mapbox = callPackage ../development/python-modules/mapbox { };
 
-  myfitnesspal = callPackage ../development/python-modules/myfitnesspal { };
+  mapsplotlib = callPackage ../development/python-modules/mapsplotlib { };
 
-  natsort = callPackage ../development/python-modules/natsort { };
+  marionette_driver = callPackage ../development/python-modules/marionette-harness/marionette_driver.nix { };
 
-  naturalsort = callPackage ../development/python-modules/naturalsort { };
+  marionette-harness = callPackage ../development/python-modules/marionette-harness { };
 
-  ncclient = callPackage ../development/python-modules/ncclient {};
+  marisa = callPackage ../development/python-modules/marisa { marisa = pkgs.marisa; };
 
-  logfury = callPackage ../development/python-modules/logfury { };
+  marisa-trie = callPackage ../development/python-modules/marisa-trie { };
 
-  ndg-httpsclient = callPackage ../development/python-modules/ndg-httpsclient { };
+  markdown2 = callPackage ../development/python-modules/markdown2 { };
 
-  netcdf4 = callPackage ../development/python-modules/netcdf4 { };
+  markdown = if isPy3k then
+    callPackage ../development/python-modules/markdown { }
+  else
+    callPackage ../development/python-modules/markdown/3_1.nix { };
 
-  netdisco = callPackage ../development/python-modules/netdisco { };
+  markdown-macros = callPackage ../development/python-modules/markdown-macros { };
 
-  Nikola = callPackage ../development/python-modules/Nikola { };
+  markdownsuperscript = callPackage ../development/python-modules/markdownsuperscript { };
 
-  nmigen = callPackage ../development/python-modules/nmigen { };
+  markerlib = callPackage ../development/python-modules/markerlib { };
 
-  nmigen-boards = callPackage ../development/python-modules/nmigen-boards { };
+  markupsafe = callPackage ../development/python-modules/markupsafe { };
 
-  nmigen-soc = callPackage ../development/python-modules/nmigen-soc { };
+  Markups = callPackage ../development/python-modules/Markups { };
 
-  nxt-python = callPackage ../development/python-modules/nxt-python { };
+  marshmallow = callPackage ../development/python-modules/marshmallow { };
 
-  odfpy = callPackage ../development/python-modules/odfpy { };
+  marshmallow-enum = callPackage ../development/python-modules/marshmallow-enum { };
 
-  openrazer = callPackage ../development/python-modules/openrazer/pylib.nix { };
-  openrazer-daemon = callPackage ../development/python-modules/openrazer/daemon.nix { };
+  marshmallow-polyfield = callPackage ../development/python-modules/marshmallow-polyfield { };
 
-  oset = callPackage ../development/python-modules/oset { };
+  marshmallow-sqlalchemy = callPackage ../development/python-modules/marshmallow-sqlalchemy { };
 
-  oscrypto = callPackage ../development/python-modules/oscrypto { };
+  mask-rcnn = callPackage ../development/python-modules/mask-rcnn { };
 
-  osqp = callPackage ../development/python-modules/osqp { };
+  matchpy = callPackage ../development/python-modules/matchpy { };
 
-  oyaml = callPackage ../development/python-modules/oyaml { };
+  mathlibtools = callPackage ../development/python-modules/mathlibtools { };
 
-  pam = callPackage ../development/python-modules/pam {
-    inherit (pkgs) pam;
+  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;
   };
 
-  pamela = callPackage ../development/python-modules/pamela { };
-
-  paperspace = callPackage ../development/python-modules/paperspace { };
-
-  paperwork-backend = callPackage ../applications/office/paperwork/backend.nix { };
-
-  papis = callPackage ../development/python-modules/papis { };
-
-  papis-python-rofi = callPackage ../development/python-modules/papis-python-rofi { };
-
-  pathspec = callPackage ../development/python-modules/pathspec { };
+  matrix-client = callPackage ../development/python-modules/matrix-client { };
 
-  pathtools = callPackage ../development/python-modules/pathtools { };
+  matrix-nio = callPackage ../development/python-modules/matrix-nio { };
 
-  paver = callPackage ../development/python-modules/paver { };
+  mautrix = callPackage ../development/python-modules/mautrix { };
 
-  passlib = callPackage ../development/python-modules/passlib { };
+  mautrix-appservice = self.mautrix; # alias 2019-12-28
 
-  path-and-address = callPackage ../development/python-modules/path-and-address { };
+  maxminddb = callPackage ../development/python-modules/maxminddb { };
 
-  peppercorn = callPackage ../development/python-modules/peppercorn { };
+  maya = callPackage ../development/python-modules/maya { };
 
-  pex = callPackage ../development/python-modules/pex { };
+  mayavi = pkgs.libsForQt5.callPackage ../development/python-modules/mayavi {
+    inherit buildPythonPackage isPy27 fetchPypi;
+    inherit (self) pyface pygments numpy vtk traitsui envisage apptools pyqt5;
+  };
 
-  phe = callPackage ../development/python-modules/phe { };
+  mccabe = callPackage ../development/python-modules/mccabe { };
 
-  phpserialize = callPackage ../development/python-modules/phpserialize { };
+  MDP = callPackage ../development/python-modules/mdp { };
 
-  plaid-python = callPackage ../development/python-modules/plaid-python { };
+  measurement = callPackage ../development/python-modules/measurement { };
 
-  plaster = callPackage ../development/python-modules/plaster {};
-
-  plaster-pastedeploy = callPackage ../development/python-modules/plaster-pastedeploy {};
+  mecab-python3 = callPackage ../development/python-modules/mecab-python3 { };
 
-  playsound = callPackage ../development/python-modules/playsound { };
+  MechanicalSoup = callPackage ../development/python-modules/MechanicalSoup { };
 
-  plexapi = callPackage ../development/python-modules/plexapi { };
+  mechanize = callPackage ../development/python-modules/mechanize { };
 
-  plexauth = callPackage ../development/python-modules/plexauth { };
+  meinheld = callPackage ../development/python-modules/meinheld { };
 
-  plexwebsocket = callPackage ../development/python-modules/plexwebsocket { };
+  meld3 = callPackage ../development/python-modules/meld3 { };
 
-  plotly = callPackage ../development/python-modules/plotly { };
+  meliae = callPackage ../development/python-modules/meliae { };
 
-  plyfile = callPackage ../development/python-modules/plyfile { };
+  memcached = callPackage ../development/python-modules/memcached { };
 
-  podcastparser = callPackage ../development/python-modules/podcastparser { };
+  memory_profiler = callPackage ../development/python-modules/memory_profiler { };
 
-  podcats = callPackage ../development/python-modules/podcats { };
+  mercurial = disabledIf (!isPy3k) (toPythonModule (pkgs.mercurial.override { python3Packages = self; }));
 
-  pomegranate = callPackage ../development/python-modules/pomegranate { };
+  mergedeep = callPackage ../development/python-modules/mergedeep { };
 
-  poppler-qt5 = callPackage ../development/python-modules/poppler-qt5 {
-    inherit (pkgs.qt5) qtbase;
-    inherit (pkgs.libsForQt5) poppler;
-    inherit (pkgs) pkgconfig;
-  };
+  merkletools = callPackage ../development/python-modules/merkletools { };
 
-  poyo = callPackage ../development/python-modules/poyo { };
+  mesa = callPackage ../development/python-modules/mesa { };
 
-  priority = callPackage ../development/python-modules/priority { };
+  meshlabxml = callPackage ../development/python-modules/meshlabxml { };
 
-  privacyidea = callPackage ../development/python-modules/privacyidea { };
-  privacyidea-ldap-proxy = callPackage ../development/python-modules/privacyidea/ldap-proxy.nix { };
+  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;
+    })));
 
-  prov = callPackage ../development/python-modules/prov { };
+  mesonpep517 = callPackage ../development/python-modules/mesonpep517 { };
 
-  pudb = callPackage ../development/python-modules/pudb { };
+  metaphone = callPackage ../development/python-modules/metaphone { };
 
-  pybtex = callPackage ../development/python-modules/pybtex {};
+  mezzanine = callPackage ../development/python-modules/mezzanine { };
 
-  pybtex-docutils = callPackage ../development/python-modules/pybtex-docutils {};
+  micawber = callPackage ../development/python-modules/micawber { };
 
-  pycallgraph = callPackage ../development/python-modules/pycallgraph { };
+  midiutil = callPackage ../development/python-modules/midiutil { };
 
-  pycassa = callPackage ../development/python-modules/pycassa { };
+  mido = callPackage ../development/python-modules/mido { };
 
-  lirc = disabledIf isPy27 (toPythonModule (pkgs.lirc.override {
-    python3 = python;
-  }));
+  milksnake = callPackage ../development/python-modules/milksnake { };
 
-  pyblake2 = callPackage ../development/python-modules/pyblake2 { };
+  minidb = callPackage ../development/python-modules/minidb { };
 
-  pybluez = callPackage ../development/python-modules/pybluez { };
+  minimock = callPackage ../development/python-modules/minimock { };
 
-  pycares = callPackage ../development/python-modules/pycares { };
+  mininet-python = (toPythonModule (pkgs.mininet.override { inherit python; })).py;
 
-  pycuda = callPackage ../development/python-modules/pycuda {
-    cudatoolkit = pkgs.cudatoolkit;
-    inherit (pkgs.stdenv) mkDerivation;
-  };
+  minio = callPackage ../development/python-modules/minio { };
 
-  pydotplus = callPackage ../development/python-modules/pydotplus { };
+  miniupnpc = callPackage ../development/python-modules/miniupnpc { };
 
-  pyfxa = callPackage ../development/python-modules/pyfxa { };
+  misaka = callPackage ../development/python-modules/misaka { };
 
-  pygls = callPackage ../development/python-modules/pygls {};
+  mistune = callPackage ../development/python-modules/mistune { };
 
-  pyhomematic = callPackage ../development/python-modules/pyhomematic { };
+  mixpanel = callPackage ../development/python-modules/mixpanel { };
 
-  pylama = callPackage ../development/python-modules/pylama { };
+  mkl-service = callPackage ../development/python-modules/mkl-service { };
 
-  pylatexenc = callPackage ../development/python-modules/pylatexenc { };
+  mlflow = callPackage ../development/python-modules/mlflow { };
 
-  pymbolic = callPackage ../development/python-modules/pymbolic { };
+  mlrose = callPackage ../development/python-modules/mlrose { };
 
-  pymediainfo = callPackage ../development/python-modules/pymediainfo { };
+  mmh3 = callPackage ../development/python-modules/mmh3 { };
 
-  pyphen = callPackage ../development/python-modules/pyphen {};
+  mmpython = callPackage ../development/python-modules/mmpython { };
 
-  pypoppler = callPackage ../development/python-modules/pypoppler { };
+  mnemonic = callPackage ../development/python-modules/mnemonic { };
 
-  pypillowfight = callPackage ../development/python-modules/pypillowfight { };
+  mnist = callPackage ../development/python-modules/mnist { };
 
-  pyprind = callPackage ../development/python-modules/pyprind { };
+  mocket = callPackage ../development/python-modules/mocket { };
 
-  python-axolotl = callPackage ../development/python-modules/python-axolotl { };
+  mock = if pythonOlder "3.6" then
+    callPackage ../development/python-modules/mock/2.nix { }
+  else
+    callPackage ../development/python-modules/mock { };
 
-  python-axolotl-curve25519 = callPackage ../development/python-modules/python-axolotl-curve25519 { };
+  mockito = callPackage ../development/python-modules/mockito { };
 
-  python-pam = callPackage ../development/python-modules/python-pam { };
+  mock-open = callPackage ../development/python-modules/mock-open { };
 
-  pythonix = callPackage ../development/python-modules/pythonix {
-    inherit (pkgs) meson pkgconfig;
-  };
+  modeled = callPackage ../development/python-modules/modeled { };
 
-  python-lzf = callPackage ../development/python-modules/python-lzf { };
+  moderngl = callPackage ../development/python-modules/moderngl { };
 
-  pyramid = callPackage ../development/python-modules/pyramid { };
+  moderngl-window = callPackage ../development/python-modules/moderngl_window { };
 
-  pyramid_beaker = callPackage ../development/python-modules/pyramid_beaker { };
+  modestmaps = callPackage ../development/python-modules/modestmaps { };
 
-  pyramid_chameleon = callPackage ../development/python-modules/pyramid_chameleon { };
+  moinmoin = callPackage ../development/python-modules/moinmoin
+    { }; # Needed here because moinmoin is loaded as a Python library.
 
-  pyramid_jinja2 = callPackage ../development/python-modules/pyramid_jinja2 { };
+  mongodict = callPackage ../development/python-modules/mongodict { };
 
-  pyramid_mako = callPackage ../development/python-modules/pyramid_mako { };
+  mongoengine = callPackage ../development/python-modules/mongoengine { };
 
-  peewee =  callPackage ../development/python-modules/peewee { };
+  monkeyhex = callPackage ../development/python-modules/monkeyhex { };
 
-  pyroma = callPackage ../development/python-modules/pyroma { };
+  monosat = disabledIf (!isPy3k) (pkgs.monosat.python {
+    inherit buildPythonPackage;
+    inherit (self) cython;
+  });
 
-  pyroute2 = callPackage ../development/python-modules/pyroute2 { };
+  monotonic = callPackage ../development/python-modules/monotonic { };
 
-  pyspf = callPackage ../development/python-modules/pyspf { };
+  monty = callPackage ../development/python-modules/monty { };
 
-  pysptk = callPackage ../development/python-modules/pysptk { };
+  more-itertools = if isPy27 then
+    callPackage ../development/python-modules/more-itertools/2.7.nix { }
+  else
+    callPackage ../development/python-modules/more-itertools { };
 
-  pysrim = callPackage ../development/python-modules/pysrim { };
+  moretools = callPackage ../development/python-modules/moretools { };
 
-  pysrt = callPackage ../development/python-modules/pysrt { };
+  morphys = callPackage ../development/python-modules/morphys { };
 
-  pytools = callPackage ../development/python-modules/pytools { };
+  mortgage = callPackage ../development/python-modules/mortgage { };
 
-  python-constraint = callPackage ../development/python-modules/python-constraint { };
+  moto = callPackage ../development/python-modules/moto { };
 
-  python-ctags3 = callPackage ../development/python-modules/python-ctags3 { };
+  moviepy = callPackage ../development/python-modules/moviepy { };
 
-  python-lzo = callPackage ../development/python-modules/python-lzo {
-    inherit (pkgs) lzo;
-  };
+  mox3 = callPackage ../development/python-modules/mox3 { };
 
-  pxml = callPackage ../development/python-modules/pxml { };
+  mox = callPackage ../development/python-modules/mox { };
 
-  junos-eznc = callPackage ../development/python-modules/junos-eznc {};
+  mozcrash = callPackage ../development/python-modules/marionette-harness/mozcrash.nix { };
 
-  raven = callPackage ../development/python-modules/raven { };
+  mozdevice = callPackage ../development/python-modules/marionette-harness/mozdevice.nix { };
 
-  rawkit = callPackage ../development/python-modules/rawkit { };
+  mozfile = callPackage ../development/python-modules/marionette-harness/mozfile.nix { };
 
-  joblib = callPackage ../development/python-modules/joblib { };
+  mozhttpd = callPackage ../development/python-modules/marionette-harness/mozhttpd.nix { };
 
-  sarge = callPackage ../development/python-modules/sarge { };
+  mozinfo = callPackage ../development/python-modules/marionette-harness/mozinfo.nix { };
 
-  subliminal = callPackage ../development/python-modules/subliminal {};
+  mozlog = callPackage ../development/python-modules/marionette-harness/mozlog.nix { };
 
-  sunpy = callPackage ../development/python-modules/sunpy { };
+  moznetwork = callPackage ../development/python-modules/marionette-harness/moznetwork.nix { };
 
-  hyperkitty = callPackage ../servers/mail/mailman/hyperkitty.nix { };
+  mozprocess = callPackage ../development/python-modules/marionette-harness/mozprocess.nix { };
 
-  robot-detection = callPackage ../development/python-modules/robot-detection {};
+  mozprofile = callPackage ../development/python-modules/marionette-harness/mozprofile.nix { };
 
-  cssmin = callPackage ../development/python-modules/cssmin {};
+  mozrunner = callPackage ../development/python-modules/marionette-harness/mozrunner.nix { };
 
-  django-paintstore = callPackage ../development/python-modules/django-paintstore {};
+  mozsvc = callPackage ../development/python-modules/mozsvc { };
 
-  django-q = callPackage ../development/python-modules/django-q {};
+  mozterm = callPackage ../development/python-modules/mozterm { };
 
-  hyperlink = callPackage ../development/python-modules/hyperlink {};
+  moztest = callPackage ../development/python-modules/marionette-harness/moztest.nix { };
 
-  zope_copy = callPackage ../development/python-modules/zope_copy {};
+  mozversion = callPackage ../development/python-modules/marionette-harness/mozversion.nix { };
 
-  s2clientprotocol = callPackage ../development/python-modules/s2clientprotocol { };
+  mpd2 = callPackage ../development/python-modules/mpd2 { };
 
-  py3status = callPackage ../development/python-modules/py3status {};
+  mpd = callPackage ../development/python-modules/mpd { };
 
-  pyrtlsdr = callPackage ../development/python-modules/pyrtlsdr { };
+  mpi4py = callPackage ../development/python-modules/mpi4py { mpi = pkgs.openmpi; };
 
-  scandir = callPackage ../development/python-modules/scandir { };
+  mplleaflet = callPackage ../development/python-modules/mplleaflet { };
 
-  schema = callPackage ../development/python-modules/schema {};
+  mpmath = callPackage ../development/python-modules/mpmath { };
 
-  simple-websocket-server = callPackage ../development/python-modules/simple-websocket-server {};
+  mpv = callPackage ../development/python-modules/mpv { mpv = pkgs.mpv; };
 
-  stem = callPackage ../development/python-modules/stem { };
+  mpyq = callPackage ../development/python-modules/mpyq { };
 
-  svg-path = callPackage ../development/python-modules/svg-path { };
+  mrbob = callPackage ../development/python-modules/mrbob { };
 
-  r2pipe = callPackage ../development/python-modules/r2pipe { };
+  msal = callPackage ../development/python-modules/msal { };
 
-  regex = callPackage ../development/python-modules/regex { };
+  msal-extensions = callPackage ../development/python-modules/msal-extensions { };
 
-  pygrok = callPackage ../development/python-modules/pygrok { };
+  msgpack = callPackage ../development/python-modules/msgpack { };
 
-  regional = callPackage ../development/python-modules/regional { };
+  msgpack-numpy = callPackage ../development/python-modules/msgpack-numpy { };
 
-  ratelimiter = callPackage ../development/python-modules/ratelimiter { };
+  msrestazure = callPackage ../development/python-modules/msrestazure { };
 
-  pywatchman = callPackage ../development/python-modules/pywatchman { };
+  msrest = callPackage ../development/python-modules/msrest { };
 
-  pywavelets = callPackage ../development/python-modules/pywavelets { };
+  msrplib = callPackage ../development/python-modules/msrplib { };
 
-  vcrpy = callPackage ../development/python-modules/vcrpy { };
+  mt-940 = callPackage ../development/python-modules/mt-940 { };
 
-  descartes = callPackage ../development/python-modules/descartes { };
+  multidict = callPackage ../development/python-modules/multidict { };
 
-  chardet = callPackage ../development/python-modules/chardet { };
+  multi_key_dict = callPackage ../development/python-modules/multi_key_dict { };
 
-  pyramid_exclog = callPackage ../development/python-modules/pyramid_exclog { };
+  multipledispatch = callPackage ../development/python-modules/multipledispatch { };
 
-  pyramid_multiauth = callPackage ../development/python-modules/pyramid_multiauth { };
+  multiprocess = callPackage ../development/python-modules/multiprocess { };
 
-  pyramid_hawkauth = callPackage ../development/python-modules/pyramid_hawkauth { };
+  multiset = callPackage ../development/python-modules/multiset { };
 
-  pytun = callPackage ../development/python-modules/pytun { };
+  multitasking = callPackage ../development/python-modules/multitasking { };
 
-  rethinkdb = callPackage ../development/python-modules/rethinkdb { };
+  munch = callPackage ../development/python-modules/munch { };
 
-  roku = callPackage ../development/python-modules/roku { };
+  munkres = callPackage ../development/python-modules/munkres { };
 
-  roman = callPackage ../development/python-modules/roman { };
+  murmurhash = callPackage ../development/python-modules/murmurhash { };
 
-  rotate-backups = callPackage ../tools/backup/rotate-backups { };
+  musicbrainzngs = callPackage ../development/python-modules/musicbrainzngs { };
 
-  liblarch = callPackage ../development/python-modules/liblarch { };
+  mutag = callPackage ../development/python-modules/mutag { };
 
-  librosa = callPackage ../development/python-modules/librosa { };
+  mutagen = if isPy27 then
+    callPackage ../development/python-modules/mutagen/1.43.nix { }
+  else
+    callPackage ../development/python-modules/mutagen { };
 
-  samplerate = callPackage ../development/python-modules/samplerate { };
+  mutatormath = callPackage ../development/python-modules/mutatormath { };
 
-  samsungctl = callPackage ../development/python-modules/samsungctl { };
+  muttils = callPackage ../development/python-modules/muttils { };
 
-  samsungtvws = callPackage ../development/python-modules/samsungtvws { };
+  mwclient = callPackage ../development/python-modules/mwclient { };
 
-  screeninfo = callPackage ../development/python-modules/screeninfo { };
+  mwlib = callPackage ../development/python-modules/mwlib { };
 
-  ssdeep = callPackage ../development/python-modules/ssdeep { };
+  mwlib-ext = callPackage ../development/python-modules/mwlib-ext { };
 
-  ssdp = callPackage ../development/python-modules/ssdp { };
+  mwlib-rl = callPackage ../development/python-modules/mwlib-rl { };
 
-  statsd = callPackage ../development/python-modules/statsd { };
+  mwoauth = callPackage ../development/python-modules/mwoauth { };
 
-  starfish = callPackage ../development/python-modules/starfish { };
+  mwparserfromhell = callPackage ../development/python-modules/mwparserfromhell { };
 
-  swagger-ui-bundle = callPackage ../development/python-modules/swagger-ui-bundle { };
+  mxnet = callPackage ../development/python-modules/mxnet { };
 
-  multi_key_dict = callPackage ../development/python-modules/multi_key_dict { };
+  myfitnesspal = callPackage ../development/python-modules/myfitnesspal { };
 
-  random2 = callPackage ../development/python-modules/random2 { };
+  mygpoclient = callPackage ../development/python-modules/mygpoclient { };
 
-  schedule = callPackage ../development/python-modules/schedule { };
+  mypy = callPackage ../development/python-modules/mypy { };
 
-  repoze_lru = callPackage ../development/python-modules/repoze_lru { };
+  mypy-extensions = callPackage ../development/python-modules/mypy/extensions.nix { };
 
-  repoze_sphinx_autointerface =  callPackage ../development/python-modules/repoze_sphinx_autointerface { };
+  mypy-protobuf = callPackage ../development/python-modules/mypy-protobuf { };
 
-  setuptools-git = callPackage ../development/python-modules/setuptools-git { };
+  mysqlclient = callPackage ../development/python-modules/mysqlclient { };
 
-  setuptools-lint = callPackage ../development/python-modules/setuptools-lint { };
+  mysql-connector = callPackage ../development/python-modules/mysql-connector { };
 
-  sievelib = callPackage ../development/python-modules/sievelib { };
+  nagiosplugin = callPackage ../development/python-modules/nagiosplugin { };
 
-  watchdog = callPackage ../development/python-modules/watchdog { };
+  namebench = callPackage ../development/python-modules/namebench { };
 
-  zope_deprecation = callPackage ../development/python-modules/zope_deprecation { };
+  namedlist = callPackage ../development/python-modules/namedlist { };
 
-  validators = callPackage ../development/python-modules/validators { };
+  nameparser = callPackage ../development/python-modules/nameparser { };
 
-  validictory = callPackage ../development/python-modules/validictory { };
+  names = callPackage ../development/python-modules/names { };
 
-  validate-email = callPackage ../development/python-modules/validate-email { };
+  nanoleaf = callPackage ../development/python-modules/nanoleaf { };
 
-  venusian = callPackage ../development/python-modules/venusian { };
+  nanomsg-python = callPackage ../development/python-modules/nanomsg-python { inherit (pkgs) nanomsg; };
 
-  chameleon = callPackage ../development/python-modules/chameleon { };
+  nanotime = callPackage ../development/python-modules/nanotime { };
 
-  ddt = callPackage ../development/python-modules/ddt { };
+  nassl = callPackage ../development/python-modules/nassl { };
 
-  distutils_extra = callPackage ../development/python-modules/distutils_extra { };
+  natsort = callPackage ../development/python-modules/natsort { };
 
-  pyxdg = callPackage ../development/python-modules/pyxdg { };
+  naturalsort = callPackage ../development/python-modules/naturalsort { };
 
-  crayons = callPackage ../development/python-modules/crayons{ };
+  nbclient = callPackage ../development/python-modules/nbclient { };
 
-  django = self.django_lts;
+  nbconflux = callPackage ../development/python-modules/nbconflux { };
 
-  django_lts = self.django_2_2;
+  nbconvert = callPackage ../development/python-modules/nbconvert { };
 
-  django_2_2 = callPackage ../development/python-modules/django/2_2.nix { };
+  nbdime = callPackage ../development/python-modules/nbdime { };
 
-  django-allauth = callPackage ../development/python-modules/django-allauth { };
+  nbformat = if isPy3k then
+    callPackage ../development/python-modules/nbformat { }
+  else
+    callPackage ../development/python-modules/nbformat/2.nix { };
 
-  django-anymail = callPackage ../development/python-modules/django-anymail {};
+  nbmerge = callPackage ../development/python-modules/nbmerge { };
 
-  django_appconf = callPackage ../development/python-modules/django_appconf { };
+  nbsmoke = callPackage ../development/python-modules/nbsmoke { };
 
-  django-auth-ldap = callPackage ../development/python-modules/django-auth-ldap { };
+  nbsphinx = callPackage ../development/python-modules/nbsphinx { };
 
-  django_colorful = callPackage ../development/python-modules/django_colorful { };
+  nbval = callPackage ../development/python-modules/nbval { };
 
-  django-cache-url = callPackage ../development/python-modules/django-cache-url { };
+  nbxmpp = callPackage ../development/python-modules/nbxmpp { };
 
-  django-cleanup = callPackage ../development/python-modules/django-cleanup { };
+  ncclient = callPackage ../development/python-modules/ncclient { };
 
-  django-configurations = callPackage ../development/python-modules/django-configurations { };
+  ndg-httpsclient = callPackage ../development/python-modules/ndg-httpsclient { };
 
-  django_compressor = callPackage ../development/python-modules/django_compressor { };
+  ndtypes = callPackage ../development/python-modules/ndtypes { };
 
-  django_compat = callPackage ../development/python-modules/django-compat { };
+  neo = callPackage ../development/python-modules/neo { };
 
-  django_contrib_comments = callPackage ../development/python-modules/django_contrib_comments { };
+  nest-asyncio = callPackage ../development/python-modules/nest-asyncio { };
 
-  django-cors-headers = callPackage ../development/python-modules/django-cors-headers { };
+  netaddr = callPackage ../development/python-modules/netaddr { };
 
-  django-csp = callPackage ../development/python-modules/django-csp { };
+  netcdf4 = callPackage ../development/python-modules/netcdf4 { };
 
-  django-discover-runner = callPackage ../development/python-modules/django-discover-runner { };
+  netdisco = callPackage ../development/python-modules/netdisco { };
 
-  django-dynamic-preferences = callPackage ../development/python-modules/django-dynamic-preferences { };
+  netifaces = callPackage ../development/python-modules/netifaces { };
 
-  django_environ = callPackage ../development/python-modules/django_environ { };
+  networkx = if isPy3k then
+    callPackage ../development/python-modules/networkx { }
+  else
+    callPackage ../development/python-modules/networkx/2.2.nix { };
 
-  django_evolution = callPackage ../development/python-modules/django_evolution { };
+  neuron-mpi = pkgs.neuron-mpi.override { inherit python; };
 
-  django_extensions = callPackage ../development/python-modules/django-extensions { };
+  neuron = pkgs.neuron.override { inherit python; };
 
-  django-filter = callPackage ../development/python-modules/django-filter { };
+  neuronpy = callPackage ../development/python-modules/neuronpy { };
 
-  django-gravatar2 = callPackage ../development/python-modules/django-gravatar2 { };
+  nevow = callPackage ../development/python-modules/nevow { };
 
-  django_guardian = callPackage ../development/python-modules/django_guardian { };
+  nghttp2 = (toPythonModule (pkgs.nghttp2.override {
+    inherit (self) python cython setuptools;
+    inherit (pkgs) ncurses;
+    enablePython = true;
+  })).python;
 
-  django-ipware = callPackage ../development/python-modules/django-ipware { };
+  nibabel = callPackage ../development/python-modules/nibabel { };
 
-  django-jinja = callPackage ../development/python-modules/django-jinja2 { };
+  nidaqmx = callPackage ../development/python-modules/nidaqmx { };
 
-  django-logentry-admin = callPackage ../development/python-modules/django-logentry-admin { };
+  Nikola = callPackage ../development/python-modules/Nikola { };
 
-  django-mailman3 = callPackage ../development/python-modules/django-mailman3 { };
+  nilearn = callPackage ../development/python-modules/nilearn { };
 
-  django-oauth-toolkit = callPackage ../development/python-modules/django-oauth-toolkit { };
+  nimfa = callPackage ../development/python-modules/nimfa { };
 
-  django-pglocks = callPackage ../development/python-modules/django-pglocks { };
+  nine = callPackage ../development/python-modules/nine { };
 
-  django-picklefield = callPackage ../development/python-modules/django-picklefield { };
+  nipy = callPackage ../development/python-modules/nipy { };
 
-  django_polymorphic = callPackage ../development/python-modules/django-polymorphic { };
+  nipype = callPackage ../development/python-modules/nipype { inherit (pkgs) which; };
 
-  django-postgresql-netfields = callPackage ../development/python-modules/django-postgresql-netfields { };
+  nitime = callPackage ../development/python-modules/nitime { };
 
-  django-ranged-response = callPackage ../development/python-modules/django-ranged-response { };
+  nitpick = callPackage ../applications/version-management/nitpick { };
 
-  django-rest-auth = callPackage ../development/python-modules/django-rest-auth { };
+  nix-kernel = callPackage ../development/python-modules/nix-kernel { inherit (pkgs) nix; };
 
-  django-sampledatahelper = callPackage ../development/python-modules/django-sampledatahelper { };
+  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.
 
-  django-simple-captcha = callPackage ../development/python-modules/django-simple-captcha { };
+  nixpart = callPackage ../tools/filesystems/nixpart { };
 
-  django-sites = callPackage ../development/python-modules/django-sites { };
+  nixpkgs = callPackage ../development/python-modules/nixpkgs { };
 
-  django-sr = callPackage ../development/python-modules/django-sr { };
+  nixpkgs-pytools = callPackage ../development/python-modules/nixpkgs-pytools { };
 
-  django-storages = callPackage ../development/python-modules/django-storages { };
+  nix-prefetch-github = callPackage ../development/python-modules/nix-prefetch-github { };
 
-  django-versatileimagefield = callPackage ../development/python-modules/django-versatileimagefield  { };
+  nltk = callPackage ../development/python-modules/nltk { };
 
-  django-webpack-loader = callPackage ../development/python-modules/django-webpack-loader { };
+  nmigen-boards = callPackage ../development/python-modules/nmigen-boards { };
 
-  django-widget-tweaks = callPackage ../development/python-modules/django-widget-tweaks { };
+  nmigen = callPackage ../development/python-modules/nmigen { };
 
-  django_tagging = callPackage ../development/python-modules/django_tagging { };
+  nmigen-soc = callPackage ../development/python-modules/nmigen-soc { };
 
-  django_classytags = callPackage ../development/python-modules/django_classytags { };
+  nodeenv = callPackage ../development/python-modules/nodeenv { };
 
-  # 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 { };
+  node-semver = callPackage ../development/python-modules/node-semver { };
 
-  django_hijack_admin = callPackage ../development/python-modules/django-hijack-admin { };
+  noise = callPackage ../development/python-modules/noise { };
 
-  django_nose = callPackage ../development/python-modules/django_nose { };
+  nose2 = callPackage ../development/python-modules/nose2 { };
 
-  django_modelcluster = callPackage ../development/python-modules/django_modelcluster { };
+  nose = callPackage ../development/python-modules/nose { };
 
-  djangorestframework = callPackage ../development/python-modules/djangorestframework { };
+  nose-cov = callPackage ../development/python-modules/nose-cov { };
 
-  djangorestframework-jwt = callPackage ../development/python-modules/djangorestframework-jwt { };
+  nose-cover3 = callPackage ../development/python-modules/nose-cover3 { };
 
-  djangorestframework-simplejwt = callPackage ../development/python-modules/djangorestframework-simplejwt { };
+  nose-cprof = callPackage ../development/python-modules/nose-cprof { };
 
-  django-raster = callPackage ../development/python-modules/django-raster { };
+  nose-exclude = callPackage ../development/python-modules/nose-exclude { };
 
-  django_redis = callPackage ../development/python-modules/django_redis { };
+  nose-focus = callPackage ../development/python-modules/nose-focus { };
 
-  django_reversion = callPackage ../development/python-modules/django_reversion { };
+  nosejs = callPackage ../development/python-modules/nosejs { };
 
-  django_silk = callPackage ../development/python-modules/django_silk { };
+  nose-of-yeti = callPackage ../development/python-modules/nose-of-yeti { };
 
-  django_taggit = callPackage ../development/python-modules/django_taggit { };
+  nose-pattern-exclude = callPackage ../development/python-modules/nose-pattern-exclude { };
 
-  django_treebeard = callPackage ../development/python-modules/django_treebeard { };
+  nose_progressive = callPackage ../development/python-modules/nose_progressive { };
 
-  django_pipeline = callPackage ../development/python-modules/django-pipeline { };
+  nose-randomly = callPackage ../development/python-modules/nose-randomly { };
 
-  djangoql = callPackage ../development/python-modules/djangoql { };
+  nose_warnings_filters = callPackage ../development/python-modules/nose_warnings_filters { };
 
-  dj-database-url = callPackage ../development/python-modules/dj-database-url { };
+  nosexcover = callPackage ../development/python-modules/nosexcover { };
 
-  dj-email-url = callPackage ../development/python-modules/dj-email-url { };
+  notebook = if isPy3k then
+    callPackage ../development/python-modules/notebook { }
+  else
+    callPackage ../development/python-modules/notebook/2.nix { };
 
-  dj-search-url = callPackage ../development/python-modules/dj-search-url { };
+  notedown = callPackage ../development/python-modules/notedown { };
 
-  djmail = callPackage ../development/python-modules/djmail { };
+  notify2 = callPackage ../development/python-modules/notify2 { };
 
-  pillowfight = callPackage ../development/python-modules/pillowfight { };
+  notify = callPackage ../development/python-modules/notify { };
 
-  kaptan = callPackage ../development/python-modules/kaptan { };
+  notmuch = callPackage ../development/python-modules/notmuch { inherit (pkgs) notmuch; };
 
-  keepalive = callPackage ../development/python-modules/keepalive { };
+  nototools = callPackage ../data/fonts/noto-fonts/tools.nix { };
 
-  keyrings-alt = callPackage ../development/python-modules/keyrings-alt {};
+  nplusone = callPackage ../development/python-modules/nplusone { };
 
-  SPARQLWrapper = callPackage ../development/python-modules/sparqlwrapper { };
+  ntlm-auth = callPackage ../development/python-modules/ntlm-auth { };
 
-  duckdb = callPackage ../development/python-modules/duckdb {
-    duckdb = pkgs.duckdb;
-  };
+  ntplib = callPackage ../development/python-modules/ntplib { };
 
-  dulwich = if isPy3k then
-    callPackage ../development/python-modules/dulwich { }
-  else
-    callPackage ../development/python-modules/dulwich/0_19.nix { };
+  Nuitka = callPackage ../development/python-modules/nuitka { };
 
-  hg-git = callPackage ../development/python-modules/hg-git { };
+  num2words = callPackage ../development/python-modules/num2words { };
 
-  hg-evolve = callPackage ../development/python-modules/hg-evolve { };
+  numba = callPackage ../development/python-modules/numba { };
 
-  dtopt = callPackage ../development/python-modules/dtopt { };
+  numcodecs = callPackage ../development/python-modules/numcodecs { inherit (pkgs) gcc8; };
 
-  easywatch = callPackage ../development/python-modules/easywatch { };
+  numericalunits = callPackage ../development/python-modules/numericalunits { };
 
-  ecdsa = callPackage ../development/python-modules/ecdsa { };
+  numexpr = callPackage ../development/python-modules/numexpr { };
 
-  ecos = callPackage ../development/python-modules/ecos { };
+  numpydoc = callPackage ../development/python-modules/numpydoc { };
 
-  effect = callPackage ../development/python-modules/effect {};
+  numpy = if pythonOlder "3.5" then
+    callPackage ../development/python-modules/numpy/1.16.nix { }
+  else
+    callPackage ../development/python-modules/numpy { };
 
-  enum = callPackage ../development/python-modules/enum { };
+  numpy-stl = callPackage ../development/python-modules/numpy-stl { };
 
-  enum-compat = callPackage ../development/python-modules/enum-compat { };
+  numtraits = callPackage ../development/python-modules/numtraits { };
 
-  enum34 = callPackage ../development/python-modules/enum34 { };
+  nunavut = callPackage ../development/python-modules/nunavut { };
 
-  epc = callPackage ../development/python-modules/epc { };
+  nvchecker = callPackage ../development/python-modules/nvchecker { };
 
-  et_xmlfile = callPackage ../development/python-modules/et_xmlfile { };
+  nwdiag = callPackage ../development/python-modules/nwdiag { };
 
-  etesync = callPackage ../development/python-modules/etesync { };
+  nxt-python = callPackage ../development/python-modules/nxt-python { };
 
-  eventlet = callPackage ../development/python-modules/eventlet { };
+  oath = callPackage ../development/python-modules/oath { };
 
-  executing = callPackage ../development/python-modules/executing { };
+  oauth2 = callPackage ../development/python-modules/oauth2 { };
 
-  exifread = callPackage ../development/python-modules/exifread { };
+  oauth2client = callPackage ../development/python-modules/oauth2client { };
 
-  fastimport = callPackage ../development/python-modules/fastimport { };
+  oauth = callPackage ../development/python-modules/oauth { };
 
-  fastpair = callPackage ../development/python-modules/fastpair { };
+  oauthenticator = callPackage ../development/python-modules/oauthenticator { };
 
-  fastrlock = callPackage ../development/python-modules/fastrlock {};
+  oauthlib = if isPy27 then
+    callPackage ../development/python-modules/oauthlib/3.1.nix { }
+  else
+    callPackage ../development/python-modules/oauthlib { };
 
-  feedgen = callPackage ../development/python-modules/feedgen { };
+  obfsproxy = callPackage ../development/python-modules/obfsproxy { };
 
-  feedgenerator = callPackage ../development/python-modules/feedgenerator {
-    inherit (pkgs) glibcLocales;
-  };
+  objgraph = callPackage ../development/python-modules/objgraph { graphvizPkg = pkgs.graphviz; };
 
-  feedparser = callPackage ../development/python-modules/feedparser { };
+  od = callPackage ../development/python-modules/od { };
 
-  pyfribidi = callPackage ../development/python-modules/pyfribidi { };
+  odfpy = callPackage ../development/python-modules/odfpy { };
 
-  pyfritzhome = callPackage ../development/python-modules/pyfritzhome { };
+  offtrac = callPackage ../development/python-modules/offtrac { };
 
-  pyftpdlib = callPackage ../development/python-modules/pyftpdlib { };
+  ofxclient = callPackage ../development/python-modules/ofxclient { };
 
-  filebrowser_safe = callPackage ../development/python-modules/filebrowser_safe { };
+  ofxhome = callPackage ../development/python-modules/ofxhome { };
 
-  pycodestyle = callPackage ../development/python-modules/pycodestyle { };
+  ofxparse = callPackage ../development/python-modules/ofxparse { };
 
-  filebytes = callPackage ../development/python-modules/filebytes { };
+  ofxtools = callPackage ../development/python-modules/ofxtools { };
 
-  filelock = callPackage ../development/python-modules/filelock {};
+  olefile = callPackage ../development/python-modules/olefile { };
 
-  fiona = callPackage ../development/python-modules/fiona { gdal_2 = pkgs.gdal_2; };
+  omegaconf = callPackage ../development/python-modules/omegaconf { };
 
-  fitbit = callPackage ../development/python-modules/fitbit { };
+  onkyo-eiscp = callPackage ../development/python-modules/onkyo-eiscp { };
 
-  flake8 = callPackage ../development/python-modules/flake8 { };
+  onnx = callPackage ../development/python-modules/onnx { };
 
-  flake8-blind-except = callPackage ../development/python-modules/flake8-blind-except { };
+  openant = callPackage ../development/python-modules/openant { };
 
-  flake8-debugger = callPackage ../development/python-modules/flake8-debugger { };
+  openapi-spec-validator = callPackage ../development/python-modules/openapi-spec-validator { };
 
-  flake8-future-import = callPackage ../development/python-modules/flake8-future-import { };
+  opencv3 = toPythonModule (pkgs.opencv3.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
 
-  flake8-import-order = callPackage ../development/python-modules/flake8-import-order { };
+  opencv4 = toPythonModule (pkgs.opencv4.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
 
-  flake8-polyfill = callPackage ../development/python-modules/flake8-polyfill { };
+  opencv = disabledIf isPy3k (toPythonModule (pkgs.opencv.override {
+    enablePython = true;
+    pythonPackages = self;
+  }));
 
-  flaky = callPackage ../development/python-modules/flaky { };
+  openidc-client = callPackage ../development/python-modules/openidc-client { };
 
-  flask = callPackage ../development/python-modules/flask { };
+  openpyxl = if pythonAtLeast "3.6" then
+    callPackage ../development/python-modules/openpyxl { }
+  else
+    callPackage ../development/python-modules/openpyxl/2.nix { };
 
-  flask-admin = callPackage ../development/python-modules/flask-admin { };
+  openrazer = callPackage ../development/python-modules/openrazer/pylib.nix { };
 
-  flask-appbuilder = callPackage ../development/python-modules/flask-appbuilder { };
+  openrazer-daemon = callPackage ../development/python-modules/openrazer/daemon.nix { };
 
-  flask-api = callPackage ../development/python-modules/flask-api { };
+  opentimestamps = callPackage ../development/python-modules/opentimestamps { };
 
-  flask_assets = callPackage ../development/python-modules/flask-assets { };
+  opentracing = callPackage ../development/python-modules/opentracing { };
 
-  flask-autoindex = callPackage ../development/python-modules/flask-autoindex { };
+  openwebifpy = callPackage ../development/python-modules/openwebifpy { };
 
-  flask-babel = callPackage ../development/python-modules/flask-babel { };
+  openwrt-luci-rpc = disabledIf (!isPy3k) (callPackage ../development/python-modules/openwrt-luci-rpc { });
 
-  flask-babelex = callPackage ../development/python-modules/flask-babelex { };
+  opt-einsum = if isPy27 then
+    callPackage ../development/python-modules/opt-einsum/2.nix { }
+  else
+    callPackage ../development/python-modules/opt-einsum { };
 
-  flask-bcrypt = callPackage ../development/python-modules/flask-bcrypt { };
+  optuna = callPackage ../development/python-modules/optuna { };
 
-  flask-bootstrap = callPackage ../development/python-modules/flask-bootstrap { };
+  opuslib = callPackage ../development/python-modules/opuslib { };
 
-  flask-caching = callPackage ../development/python-modules/flask-caching { };
+  ordereddict = callPackage ../development/python-modules/ordereddict { };
 
-  flask-common = callPackage ../development/python-modules/flask-common { };
+  orderedmultidict = callPackage ../development/python-modules/orderedmultidict { };
 
-  flask-compress = callPackage ../development/python-modules/flask-compress { };
+  ordered-set = callPackage ../development/python-modules/ordered-set { };
 
-  flask-cors = callPackage ../development/python-modules/flask-cors { };
+  orderedset = callPackage ../development/python-modules/orderedset { };
 
-  flask_elastic = callPackage ../development/python-modules/flask-elastic { };
+  orm = callPackage ../development/python-modules/orm { };
 
-  flask-httpauth = callPackage ../development/python-modules/flask-httpauth { };
+  ortools = (toPythonModule (pkgs.or-tools.override { inherit (self) python; })).python;
 
-  flask-jwt-extended = callPackage ../development/python-modules/flask-jwt-extended { };
+  osc = callPackage ../development/python-modules/osc { };
 
-  flask-limiter = callPackage ../development/python-modules/flask-limiter { };
+  oscrypto = callPackage ../development/python-modules/oscrypto { };
 
-  flask_login = callPackage ../development/python-modules/flask-login { };
+  oset = callPackage ../development/python-modules/oset { };
 
-  flask_ldap_login = callPackage ../development/python-modules/flask-ldap-login { };
+  osmnx = callPackage ../development/python-modules/osmnx { };
 
-  flask_mail = callPackage ../development/python-modules/flask-mail { };
+  osmpythontools = callPackage ../development/python-modules/osmpythontools { };
 
-  flask_marshmallow = callPackage ../development/python-modules/flask-marshmallow { };
+  osqp = callPackage ../development/python-modules/osqp { };
 
-  flask_migrate = callPackage ../development/python-modules/flask-migrate { };
+  outcome = callPackage ../development/python-modules/outcome { };
 
-  flask-mongoengine = callPackage ../development/python-modules/flask-mongoengine { };
+  ovh = callPackage ../development/python-modules/ovh { };
 
-  flask-openid = callPackage ../development/python-modules/flask-openid { };
+  ovito = toPythonModule (pkgs.libsForQt5.callPackage ../development/python-modules/ovito { pythonPackages = self; });
 
-  flask-paginate = callPackage ../development/python-modules/flask-paginate { };
+  owslib = callPackage ../development/python-modules/owslib { };
 
-  flask_principal = callPackage ../development/python-modules/flask-principal { };
+  oyaml = callPackage ../development/python-modules/oyaml { };
 
-  flask-pymongo = callPackage ../development/python-modules/Flask-PyMongo { };
+  packaging = callPackage ../development/python-modules/packaging { };
 
-  flask-restful = callPackage ../development/python-modules/flask-restful { };
+  packet-python = callPackage ../development/python-modules/packet-python { };
 
-  flask-restplus = callPackage ../development/python-modules/flask-restplus { };
+  pafy = callPackage ../development/python-modules/pafy { };
 
-  flask-restx = callPackage ../development/python-modules/flask-restx { };
+  pagelabels = callPackage ../development/python-modules/pagelabels { };
 
-  flask-reverse-proxy-fix = callPackage ../development/python-modules/flask-reverse-proxy-fix { };
+  pagerduty = callPackage ../development/python-modules/pagerduty { };
 
-  flask_script = callPackage ../development/python-modules/flask-script { };
+  paho-mqtt = callPackage ../development/python-modules/paho-mqtt { };
 
-  flask-silk = callPackage ../development/python-modules/flask-silk { };
+  palettable = callPackage ../development/python-modules/palettable { };
 
-  flask-socketio = callPackage ../development/python-modules/flask-socketio { };
+  pam = callPackage ../development/python-modules/pam { inherit (pkgs) pam; };
 
-  flask-sockets = callPackage ../development/python-modules/flask-sockets { };
+  pamela = callPackage ../development/python-modules/pamela { };
 
-  flask_sqlalchemy = callPackage ../development/python-modules/flask-sqlalchemy { };
+  pamqp = callPackage ../development/python-modules/pamqp { };
 
-  flask-swagger = callPackage ../development/python-modules/flask-swagger { };
+  pandas = if isPy3k then
+    callPackage ../development/python-modules/pandas { }
+  else
+    callPackage ../development/python-modules/pandas/2.nix { };
 
-  flask-swagger-ui = callPackage ../development/python-modules/flask-swagger-ui { };
+  pandoc-attributes = callPackage ../development/python-modules/pandoc-attributes { };
 
-  flask_testing = callPackage ../development/python-modules/flask-testing { };
+  pandocfilters = callPackage ../development/python-modules/pandocfilters { };
 
-  flask-versioned = callPackage ../development/python-modules/flask-versioned { };
+  panel = callPackage ../development/python-modules/panel { };
 
-  flask_wtf = callPackage ../development/python-modules/flask-wtf { };
+  papermill = callPackage ../development/python-modules/papermill { };
 
-  wtforms = callPackage ../development/python-modules/wtforms { };
+  paperspace = callPackage ../development/python-modules/paperspace { };
 
-  wtf-peewee = callPackage ../development/python-modules/wtf-peewee { };
+  paperwork-backend = callPackage ../applications/office/paperwork/backend.nix { };
 
-  graph-tool = callPackage ../development/python-modules/graph-tool/2.x.x.nix {
-    inherit (pkgs) pkg-config;
-  };
+  papis = callPackage ../development/python-modules/papis { };
 
-  grappelli_safe = callPackage ../development/python-modules/grappelli_safe { };
+  papis-python-rofi = callPackage ../development/python-modules/papis-python-rofi { };
 
-  greatfet = callPackage ../development/python-modules/greatfet { };
+  param = callPackage ../development/python-modules/param { };
 
-  pygreat = callPackage ../development/python-modules/pygreat { };
+  parameterized = callPackage ../development/python-modules/parameterized { };
 
-  pytorch = callPackage ../development/python-modules/pytorch {
-    cudaSupport = pkgs.config.cudaSupport or false;
-  };
+  paramiko = callPackage ../development/python-modules/paramiko { };
 
-  pytorch-bin = callPackage ../development/python-modules/pytorch/bin.nix {
-    inherit (pkgs.linuxPackages) nvidia_x11;
-  };
+  paramz = callPackage ../development/python-modules/paramz { };
 
-  pyro-ppl = callPackage ../development/python-modules/pyro-ppl {};
+  parfive = callPackage ../development/python-modules/parfive { };
 
-  opt-einsum = if isPy27 then
-      callPackage ../development/python-modules/opt-einsum/2.nix {}
-    else
-      callPackage ../development/python-modules/opt-einsum {};
+  parse = callPackage ../development/python-modules/parse { };
 
-  pytorchWithCuda = self.pytorch.override {
-    cudaSupport = true;
-  };
+  parsedatetime = callPackage ../development/python-modules/parsedatetime { };
 
-  pytorchWithoutCuda = self.pytorch.override {
-    cudaSupport = false;
-  };
+  parsel = callPackage ../development/python-modules/parsel { };
 
-  pytorch-lightning = callPackage ../development/python-modules/pytorch-lightning { };
+  parse-type = callPackage ../development/python-modules/parse-type { };
 
-  pytorch-metric-learning = callPackage ../development/python-modules/pytorch-metric-learning { };
+  parsimonious = callPackage ../development/python-modules/parsimonious { };
 
-  pythondialog = callPackage ../development/python-modules/pythondialog { };
+  parsley = callPackage ../development/python-modules/parsley { };
 
-  python2-pythondialog = callPackage ../development/python-modules/python2-pythondialog { };
+  parso = callPackage ../development/python-modules/parso { };
 
-  pyRFC3339 = callPackage ../development/python-modules/pyrfc3339 { };
+  parsy = callPackage ../development/python-modules/parsy { };
 
-  rfc3987 = callPackage ../development/python-modules/rfc3987 { };
+  partd = callPackage ../development/python-modules/partd { };
 
-  ConfigArgParse = callPackage ../development/python-modules/configargparse { };
+  parver = callPackage ../development/python-modules/parver { };
+  arpeggio = callPackage ../development/python-modules/arpeggio { };
 
-  jsonschema = callPackage ../development/python-modules/jsonschema { };
+  passlib = callPackage ../development/python-modules/passlib { };
 
-  vcver = callPackage ../development/python-modules/vcver { };
+  paste = callPackage ../development/python-modules/paste { };
 
-  vcversioner = callPackage ../development/python-modules/vcversioner { };
+  PasteDeploy = callPackage ../development/python-modules/pastedeploy { };
 
-  falcon = callPackage ../development/python-modules/falcon { };
+  pastel = callPackage ../development/python-modules/pastel { };
 
-  hug = callPackage ../development/python-modules/hug { };
+  pasteScript = callPackage ../development/python-modules/pastescript { };
 
-  flup = callPackage ../development/python-modules/flup { };
+  patator = callPackage ../development/python-modules/patator { };
 
-  fn = callPackage ../development/python-modules/fn { };
+  patch = callPackage ../development/python-modules/patch { };
 
-  folium = callPackage ../development/python-modules/folium { };
+  patch-ng = callPackage ../development/python-modules/patch-ng { };
 
-  fontforge = disabledIf (!isPy3k) (toPythonModule (pkgs.fontforge.override {
-    withPython = true;
-    inherit python;
-  }));
+  path-and-address = callPackage ../development/python-modules/path-and-address { };
 
-  fontpens = callPackage ../development/python-modules/fontpens { };
+  pathlib2 = callPackage ../development/python-modules/pathlib2 { };
 
-  fontmath = callPackage ../development/python-modules/fontmath { };
+  pathlib = callPackage ../development/python-modules/pathlib { };
 
-  fontparts = callPackage ../development/python-modules/fontparts { };
+  pathos = callPackage ../development/python-modules/pathos { };
 
-  fonttools = callPackage ../development/python-modules/fonttools { };
+  pathpy = if isPy3k then
+    callPackage ../development/python-modules/path.py { }
+  else
+    callPackage ../development/python-modules/path.py/2.nix { };
 
-  foolscap = callPackage ../development/python-modules/foolscap { };
+  pathspec = callPackage ../development/python-modules/pathspec { };
 
-  forbiddenfruit = callPackage ../development/python-modules/forbiddenfruit { };
+  pathtools = callPackage ../development/python-modules/pathtools { };
 
-  fusepy = callPackage ../development/python-modules/fusepy { };
+  patsy = callPackage ../development/python-modules/patsy { };
 
-  future = callPackage ../development/python-modules/future { };
+  paver = callPackage ../development/python-modules/paver { };
 
-  futures = callPackage ../development/python-modules/futures { };
+  paypalrestsdk = callPackage ../development/python-modules/paypalrestsdk { };
 
-  galario = toPythonModule (pkgs.galario.override {
-    enablePython = true;
-    pythonPackages = self;
-  });
+  pbkdf2 = callPackage ../development/python-modules/pbkdf2 { };
 
-  gcovr = callPackage ../development/python-modules/gcovr { };
+  pbr = callPackage ../development/python-modules/pbr { };
 
-  gdal = toPythonModule (pkgs.gdal.override {
-    pythonPackages = self;
-  });
+  pc-ble-driver-py = toPythonModule (callPackage ../development/python-modules/pc-ble-driver-py { });
 
-  gdrivefs = callPackage ../development/python-modules/gdrivefs { };
+  pcpp = callPackage ../development/python-modules/pcpp { };
 
-  geant4 = disabledIf (!isPy3k) (toPythonModule (pkgs.geant4.override {
-    enablePython = true;
-    python3 = python;
-  }));
+  pdf2image = callPackage ../development/python-modules/pdf2image { };
 
-  genshi = callPackage ../development/python-modules/genshi { };
+  pdfkit = callPackage ../development/python-modules/pdfkit { };
 
-  gentools = callPackage ../development/python-modules/gentools { };
+  pdfminer = callPackage ../development/python-modules/pdfminer_six { };
 
-  gevent = callPackage ../development/python-modules/gevent { };
+  pdfposter = callPackage ../development/python-modules/pdfposter { };
 
-  geventhttpclient = callPackage ../development/python-modules/geventhttpclient { };
+  pdfrw = callPackage ../development/python-modules/pdfrw { };
 
-  gevent-socketio = callPackage ../development/python-modules/gevent-socketio { };
+  pdftotext = callPackage ../development/python-modules/pdftotext { };
 
-  geopandas = callPackage ../development/python-modules/geopandas { };
+  pdfx = callPackage ../development/python-modules/pdfx { };
 
-  geojson = callPackage ../development/python-modules/geojson { };
+  pecan = callPackage ../development/python-modules/pecan { };
 
-  gevent-websocket = callPackage ../development/python-modules/gevent-websocket { };
+  peewee = callPackage ../development/python-modules/peewee { };
 
-  genzshcomp = callPackage ../development/python-modules/genzshcomp { };
+  pefile = callPackage ../development/python-modules/pefile { };
 
-  gflags = callPackage ../development/python-modules/gflags { };
+  pelican = callPackage ../development/python-modules/pelican { inherit (pkgs) glibcLocales git; };
 
-  ghdiff = callPackage ../development/python-modules/ghdiff { };
+  pendulum = callPackage ../development/python-modules/pendulum { };
 
-  gipc = callPackage ../development/python-modules/gipc { };
+  pep257 = callPackage ../development/python-modules/pep257 { };
 
-  git-revise = callPackage ../development/python-modules/git-revise { };
+  pep517 = callPackage ../development/python-modules/pep517 { };
 
-  git-sweep = callPackage ../development/python-modules/git-sweep { };
+  pep8 = callPackage ../development/python-modules/pep8 { };
 
-  glances = throw "glances has moved to pkgs.glances"; # added 2020-20-28
+  pep8-naming = callPackage ../development/python-modules/pep8-naming { };
 
-  github3_py = callPackage ../development/python-modules/github3_py { };
+  peppercorn = callPackage ../development/python-modules/peppercorn { };
 
-  github-webhook = callPackage ../development/python-modules/github-webhook { };
+  percol = callPackage ../development/python-modules/percol { };
 
-  goobook = callPackage ../development/python-modules/goobook { };
+  perfplot = callPackage ../development/python-modules/perfplot { };
 
-  googleapis_common_protos = callPackage ../development/python-modules/googleapis_common_protos { };
+  periodictable = callPackage ../development/python-modules/periodictable { };
 
-  google-auth-httplib2 = callPackage ../development/python-modules/google-auth-httplib2 { };
+  persim = callPackage ../development/python-modules/persim { };
 
-  google-auth-oauthlib = callPackage ../development/python-modules/google-auth-oauthlib { };
+  persistent = callPackage ../development/python-modules/persistent { };
 
-  google_api_core = callPackage ../development/python-modules/google_api_core { };
+  persisting-theory = callPackage ../development/python-modules/persisting-theory { };
 
-  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";
-      };
-    });
+  pex = callPackage ../development/python-modules/pex { };
 
-  google_apputils = callPackage ../development/python-modules/google_apputils { };
+  pexif = callPackage ../development/python-modules/pexif { };
 
-  google_auth = callPackage ../development/python-modules/google_auth { };
+  pexpect = callPackage ../development/python-modules/pexpect { };
 
-  google_cloud_asset = callPackage ../development/python-modules/google_cloud_asset { };
+  pg8000 = callPackage ../development/python-modules/pg8000 { };
+  pg8000_1_12 = callPackage ../development/python-modules/pg8000/1_12.nix { };
 
-  google_cloud_automl = callPackage ../development/python-modules/google_cloud_automl { };
+  pgcli = callPackage ../development/tools/database/pgcli { };
 
-  google_cloud_core = callPackage ../development/python-modules/google_cloud_core { };
+  pglast = callPackage ../development/python-modules/pglast { };
 
-  google_cloud_bigquery = callPackage ../development/python-modules/google_cloud_bigquery { };
+  pgpdump = callPackage ../development/python-modules/pgpdump { };
 
-  google_cloud_bigquery_datatransfer = callPackage ../development/python-modules/google_cloud_bigquery_datatransfer { };
+  pgpy = callPackage ../development/python-modules/pgpy { };
 
-  google_cloud_bigtable = callPackage ../development/python-modules/google_cloud_bigtable { };
+  pgsanity = callPackage ../development/python-modules/pgsanity { };
 
-  google_cloud_container = callPackage ../development/python-modules/google_cloud_container { };
+  pgspecial = callPackage ../development/python-modules/pgspecial { };
 
-  google_cloud_dataproc = callPackage ../development/python-modules/google_cloud_dataproc { };
+  phe = callPackage ../development/python-modules/phe { };
 
-  google_cloud_datastore = callPackage ../development/python-modules/google_cloud_datastore { };
+  phik = callPackage ../development/python-modules/phik { };
 
-  google_cloud_dlp = callPackage ../development/python-modules/google_cloud_dlp { };
+  phonenumbers = callPackage ../development/python-modules/phonenumbers { };
 
-  google_cloud_dns = callPackage ../development/python-modules/google_cloud_dns { };
+  phonopy = callPackage ../development/python-modules/phonopy { };
 
-  google_cloud_error_reporting = callPackage ../development/python-modules/google_cloud_error_reporting { };
+  phpserialize = callPackage ../development/python-modules/phpserialize { };
 
-  google_cloud_firestore = callPackage ../development/python-modules/google_cloud_firestore { };
+  piccata = callPackage ../development/python-modules/piccata { };
 
-  google_cloud_iot = callPackage ../development/python-modules/google_cloud_iot { };
+  pickleshare = callPackage ../development/python-modules/pickleshare { };
 
-  google_cloud_kms = callPackage ../development/python-modules/google_cloud_kms { };
+  picos = callPackage ../development/python-modules/picos { };
 
-  google_cloud_language = callPackage ../development/python-modules/google_cloud_language { };
+  pid = callPackage ../development/python-modules/pid { };
 
-  google_cloud_logging = callPackage ../development/python-modules/google_cloud_logging { };
+  piep = callPackage ../development/python-modules/piep { };
 
-  google_cloud_monitoring = callPackage ../development/python-modules/google_cloud_monitoring { };
+  piexif = callPackage ../development/python-modules/piexif { };
 
-  google_cloud_pubsub = callPackage ../development/python-modules/google_cloud_pubsub { };
+  pika = callPackage ../development/python-modules/pika { };
 
-  google_cloud_redis = callPackage ../development/python-modules/google_cloud_redis { };
+  pika-pool = callPackage ../development/python-modules/pika-pool { };
 
-  google_cloud_resource_manager = callPackage ../development/python-modules/google_cloud_resource_manager { };
+  pikepdf = callPackage ../development/python-modules/pikepdf { };
 
-  google_cloud_runtimeconfig = callPackage ../development/python-modules/google_cloud_runtimeconfig { };
+  pilkit = callPackage ../development/python-modules/pilkit { };
 
-  google_cloud_secret_manager = callPackage ../development/python-modules/google_cloud_secret_manager { };
+  pillowfight = callPackage ../development/python-modules/pillowfight { };
 
-  google_cloud_securitycenter = callPackage ../development/python-modules/google_cloud_securitycenter { };
+  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;
+    };
 
-  google_cloud_spanner = callPackage ../development/python-modules/google_cloud_spanner { };
+  pims = callPackage ../development/python-modules/pims { };
 
-  google_cloud_storage = callPackage ../development/python-modules/google_cloud_storage { };
+  pint = callPackage ../development/python-modules/pint { };
 
-  google_cloud_speech = callPackage ../development/python-modules/google_cloud_speech { };
+  pip = callPackage ../development/python-modules/pip { };
 
-  google_cloud_tasks = callPackage ../development/python-modules/google_cloud_tasks { };
+  pipdate = callPackage ../development/python-modules/pipdate { };
 
-  google_cloud_testutils = callPackage ../development/python-modules/google_cloud_testutils { };
+  pip-tools = callPackage ../development/python-modules/pip-tools {
+    git = pkgs.gitMinimal;
+    glibcLocales = pkgs.glibcLocales;
+  };
 
-  google_cloud_texttospeech = callPackage ../development/python-modules/google_cloud_texttospeech { };
+  pipx = callPackage ../development/python-modules/pipx { };
 
-  google_cloud_trace = callPackage ../development/python-modules/google_cloud_trace { };
+  pivy = callPackage ../development/python-modules/pivy { };
 
-  google_cloud_translate = callPackage ../development/python-modules/google_cloud_translate { };
+  pkgconfig = callPackage ../development/python-modules/pkgconfig { inherit (pkgs) pkgconfig; };
 
-  google_cloud_videointelligence = callPackage ../development/python-modules/google_cloud_videointelligence { };
+  pkginfo = callPackage ../development/python-modules/pkginfo { };
 
-  google_cloud_vision = callPackage ../development/python-modules/google_cloud_vision { };
+  pkuseg = callPackage ../development/python-modules/pkuseg { };
 
-  google_cloud_websecurityscanner = callPackage ../development/python-modules/google_cloud_websecurityscanner { };
+  pkutils = callPackage ../development/python-modules/pkutils { };
 
-  google-i18n-address = callPackage ../development/python-modules/google-i18n-address { };
+  plac = callPackage ../development/python-modules/plac { };
 
-  google_resumable_media = callPackage ../development/python-modules/google_resumable_media { };
+  plaid-python = callPackage ../development/python-modules/plaid-python { };
 
-  gorilla = callPackage ../development/python-modules/gorilla { };
+  plaster = callPackage ../development/python-modules/plaster { };
 
-  gpgme = toPythonModule (pkgs.gpgme.override {
-    pythonSupport = true;
-    inherit python;
-  });
+  plaster-pastedeploy = callPackage ../development/python-modules/plaster-pastedeploy { };
 
-  gphoto2 = callPackage ../development/python-modules/gphoto2 {
-    inherit (pkgs) pkgconfig;
-  };
+  playsound = callPackage ../development/python-modules/playsound { };
 
-  graphql-core = callPackage ../development/python-modules/graphql-core { };
+  plexapi = callPackage ../development/python-modules/plexapi { };
 
-  graphql-server-core = callPackage ../development/python-modules/graphql-server-core { };
+  plexauth = callPackage ../development/python-modules/plexauth { };
 
-  grammalecte = callPackage ../development/python-modules/grammalecte { };
+  plexwebsocket = callPackage ../development/python-modules/plexwebsocket { };
 
-  greenlet = callPackage ../development/python-modules/greenlet { };
+  plone-testing = callPackage ../development/python-modules/plone-testing { };
 
-  grib-api = disabledIf (!isPy27) (toPythonModule
-    (pkgs.grib-api.override {
-      enablePython = true;
-      pythonPackages = self;
-    }));
+  plotly = callPackage ../development/python-modules/plotly { };
 
-  grpcio = callPackage ../development/python-modules/grpcio { };
+  pluggy = callPackage ../development/python-modules/pluggy { };
 
-  grpcio-tools = callPackage ../development/python-modules/grpcio-tools { };
+  pluginbase = callPackage ../development/python-modules/pluginbase { };
 
-  grpcio-gcp = callPackage ../development/python-modules/grpcio-gcp { };
+  plumbum = callPackage ../development/python-modules/plumbum { };
 
-  grpc_google_iam_v1 = callPackage ../development/python-modules/grpc_google_iam_v1 { };
+  ply = callPackage ../development/python-modules/ply { };
 
-  gspread = callPackage ../development/python-modules/gspread { };
+  plyfile = callPackage ../development/python-modules/plyfile { };
 
-  gtts-token = callPackage ../development/python-modules/gtts-token { };
+  plyplus = callPackage ../development/python-modules/plyplus { };
 
-  gym = callPackage ../development/python-modules/gym { };
+  plyvel = callPackage ../development/python-modules/plyvel { };
 
-  gyp = callPackage ../development/python-modules/gyp { };
+  Pmw = callPackage ../development/python-modules/Pmw { };
 
-  guessit = callPackage ../development/python-modules/guessit { };
+  pocket = callPackage ../development/python-modules/pocket { };
 
-  rebulk = callPackage ../development/python-modules/rebulk { };
+  podcastparser = callPackage ../development/python-modules/podcastparser { };
 
-  gunicorn = if isPy27 then
-          callPackage ../development/python-modules/gunicorn/19.nix { }
-        else
-          callPackage ../development/python-modules/gunicorn { };
+  podcats = callPackage ../development/python-modules/podcats { };
 
-  hawkauthlib = callPackage ../development/python-modules/hawkauthlib { };
+  poetry = callPackage ../development/python-modules/poetry { };
 
-  hdbscan = callPackage ../development/python-modules/hdbscan { };
+  poetry-core = callPackage ../development/python-modules/poetry-core { };
 
-  hmmlearn = callPackage ../development/python-modules/hmmlearn { };
+  poezio = callPackage ../applications/networking/instant-messengers/poezio { inherit (pkgs) pkgconfig; };
 
-  hcs_utils = callPackage ../development/python-modules/hcs_utils { };
+  polib = callPackage ../development/python-modules/polib { };
 
-  hetzner = callPackage ../development/python-modules/hetzner { };
+  polyline = callPackage ../development/python-modules/polyline { };
 
-  hiredis = callPackage ../development/python-modules/hiredis { };
+  pomegranate = callPackage ../development/python-modules/pomegranate { };
 
-  homeassistant-pyozw = callPackage ../development/python-modules/homeassistant-pyozw { };
+  pony = callPackage ../development/python-modules/pony { };
 
-  htmllaundry = callPackage ../development/python-modules/htmllaundry { };
+  ponywhoosh = callPackage ../development/python-modules/ponywhoosh { };
 
-  html-sanitizer = callPackage ../development/python-modules/html-sanitizer { };
+  pooch = callPackage ../development/python-modules/pooch { };
 
-  html5lib = callPackage ../development/python-modules/html5lib { };
+  poppler-qt5 = callPackage ../development/python-modules/poppler-qt5 {
+    inherit (pkgs.qt5) qtbase;
+    inherit (pkgs.libsForQt5) poppler;
+    inherit (pkgs) pkgconfig;
+  };
 
-  httmock = callPackage ../development/python-modules/httmock { };
+  portalocker = callPackage ../development/python-modules/portalocker { };
 
-  http_signature = callPackage ../development/python-modules/http_signature { };
+  portend = callPackage ../development/python-modules/portend { };
 
-  httpbin = callPackage ../development/python-modules/httpbin { };
+  portpicker = callPackage ../development/python-modules/portpicker { };
 
-  httplib2 = callPackage ../development/python-modules/httplib2 { };
+  posix_ipc = callPackage ../development/python-modules/posix_ipc { };
 
-  hvac = callPackage ../development/python-modules/hvac { };
+  poster3 = callPackage ../development/python-modules/poster3 { };
 
-  hydra = callPackage ../development/python-modules/hydra { };
+  postorius = disabledIf (!isPy3k) (callPackage ../servers/mail/mailman/postorius.nix { });
 
-  # 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 { };
+  potr = callPackage ../development/python-modules/potr { };
 
-  hypothesis = if isPy3k then
-    callPackage ../development/python-modules/hypothesis { }
-  else
-    self.hypothesis_4;
+  power = callPackage ../development/python-modules/power { };
 
-  hypothesis-auto = callPackage ../development/python-modules/hypothesis-auto { };
+  powerline = callPackage ../development/python-modules/powerline { };
 
-  hydra-check = callPackage ../development/python-modules/hydra-check { };
+  pox = callPackage ../development/python-modules/pox { };
 
-  colored = callPackage ../development/python-modules/colored { };
+  poyo = callPackage ../development/python-modules/poyo { };
 
-  xdg = callPackage ../development/python-modules/xdg { };
+  ppft = callPackage ../development/python-modules/ppft { };
 
-  xdis = callPackage ../development/python-modules/xdis { };
+  pplpy = callPackage ../development/python-modules/pplpy { };
 
-  xnd = callPackage ../development/python-modules/xnd { };
+  pprintpp = callPackage ../development/python-modules/pprintpp { };
 
-  uncompyle6 = callPackage ../development/python-modules/uncompyle6 { };
+  pproxy = callPackage ../development/python-modules/pproxy { };
 
-  unrpa = callPackage ../development/python-modules/unrpa { };
+  pq = callPackage ../development/python-modules/pq { };
 
-  lsi = callPackage ../development/python-modules/lsi { };
+  prance = callPackage ../development/python-modules/prance { };
 
-  hkdf = callPackage ../development/python-modules/hkdf { };
+  prawcore = callPackage ../development/python-modules/prawcore { };
 
-  httpretty = if isPy3k then
-    callPackage ../development/python-modules/httpretty { }
+  praw = if isPy3k then
+    callPackage ../development/python-modules/praw { }
   else
-    callPackage ../development/python-modules/httpretty/0.nix { };
-
-  iapws = callPackage ../development/python-modules/iapws { };
+    callPackage ../development/python-modules/praw/6.3.nix { };
 
-  icalendar = callPackage ../development/python-modules/icalendar { };
+  precis-i18n = callPackage ../development/python-modules/precis-i18n { };
 
-  icecream = callPackage ../development/python-modules/icecream { };
+  pre-commit = callPackage ../development/python-modules/pre-commit { };
 
-  ics = callPackage ../development/python-modules/ics { };
+  preggy = callPackage ../development/python-modules/preggy { };
 
-  ifaddr = callPackage ../development/python-modules/ifaddr { };
+  premailer = callPackage ../development/python-modules/premailer { };
 
-  ifconfig-parser = callPackage ../development/python-modules/ifconfig-parser { };
+  preshed = callPackage ../development/python-modules/preshed { };
 
-  imagecorruptions = callPackage ../development/python-modules/imagecorruptions { };
+  pretend = callPackage ../development/python-modules/pretend { };
 
-  imageio = callPackage ../development/python-modules/imageio { };
+  prettytable = callPackage ../development/python-modules/prettytable { };
 
-  imageio-ffmpeg = callPackage ../development/python-modules/imageio-ffmpeg { };
+  priority = callPackage ../development/python-modules/priority { };
 
-  imgaug = callPackage ../development/python-modules/imgaug { };
+  prison = callPackage ../development/python-modules/prison { };
 
-  inflection = callPackage ../development/python-modules/inflection { };
+  privacyidea = callPackage ../development/python-modules/privacyidea { };
+  privacyidea-ldap-proxy = callPackage ../development/python-modules/privacyidea/ldap-proxy.nix { };
 
-  influxdb = callPackage ../development/python-modules/influxdb { };
+  proboscis = callPackage ../development/python-modules/proboscis { };
 
-  infoqscraper = callPackage ../development/python-modules/infoqscraper { };
+  process-tests = callPackage ../development/python-modules/process-tests { };
 
-  inifile = callPackage ../development/python-modules/inifile { };
+  proglog = callPackage ../development/python-modules/proglog { };
 
-  interruptingcow = callPackage ../development/python-modules/interruptingcow {};
+  progressbar231 = callPackage ../development/python-modules/progressbar231 { };
 
-  iocapture = callPackage ../development/python-modules/iocapture { };
+  progressbar2 = callPackage ../development/python-modules/progressbar2 { };
 
-  iptools = callPackage ../development/python-modules/iptools { };
+  progressbar33 = callPackage ../development/python-modules/progressbar33 { };
 
-  ipy = callPackage ../development/python-modules/IPy { };
+  progressbar = callPackage ../development/python-modules/progressbar { };
 
-  ipydatawidgets = callPackage ../development/python-modules/ipydatawidgets { };
+  progress = callPackage ../development/python-modules/progress { };
 
-  ipykernel = if pythonOlder "3.4" then
-      callPackage ../development/python-modules/ipykernel/4.nix { }
-    else
-      callPackage ../development/python-modules/ipykernel { };
+  prometheus_client = callPackage ../development/python-modules/prometheus_client { };
 
-  ipyparallel = callPackage ../development/python-modules/ipyparallel { };
+  promise = callPackage ../development/python-modules/promise { };
 
-  ipython = if isPy27 then
-      callPackage ../development/python-modules/ipython/5.nix { }
+  prompt_toolkit = let
+    filename = if isPy3k then
+      ../development/python-modules/prompt_toolkit
     else
-      callPackage ../development/python-modules/ipython { };
-
-  ipython_genutils = callPackage ../development/python-modules/ipython_genutils { };
+      ../development/python-modules/prompt_toolkit/1.nix;
+  in callPackage filename { };
 
-  ipyvue = callPackage ../development/python-modules/ipyvue { };
+  property-manager = callPackage ../development/python-modules/property-manager { };
 
-  ipyvuetify = callPackage ../development/python-modules/ipyvuetify { };
+  protego = callPackage ../development/python-modules/protego { };
 
-  ipywidgets = callPackage ../development/python-modules/ipywidgets { };
+  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;
+  };
 
-  ipaddr = callPackage ../development/python-modules/ipaddr { };
+  prov = callPackage ../development/python-modules/prov { };
 
-  ipaddress = callPackage ../development/python-modules/ipaddress { };
+  prox-tv = callPackage ../development/python-modules/prox-tv { };
 
-  ipdb = callPackage ../development/python-modules/ipdb { };
+  psautohint = callPackage ../development/python-modules/psautohint { };
 
-  ipdbplugin = callPackage ../development/python-modules/ipdbplugin { };
+  psd-tools = callPackage ../development/python-modules/psd-tools { };
 
-  pythonIRClib = callPackage ../development/python-modules/pythonirclib { };
+  psutil = callPackage ../development/python-modules/psutil { };
 
-  iso-639 = callPackage ../development/python-modules/iso-639 {};
+  psycopg2 = callPackage ../development/python-modules/psycopg2 { };
 
-  iso3166 = callPackage ../development/python-modules/iso3166 {};
+  ptable = callPackage ../development/python-modules/ptable { };
 
-  iso8601 = callPackage ../development/python-modules/iso8601 { };
+  ptest = callPackage ../development/python-modules/ptest { };
 
-  isort = callPackage ../development/python-modules/isort {};
+  ptpython = callPackage ../development/python-modules/ptpython { prompt_toolkit = self.prompt_toolkit; };
 
-  isoweek = callPackage ../development/python-modules/isoweek {};
+  ptyprocess = callPackage ../development/python-modules/ptyprocess { };
 
-  jabberbot = callPackage ../development/python-modules/jabberbot {};
+  publicsuffix2 = callPackage ../development/python-modules/publicsuffix2 { };
 
-  jedi = callPackage ../development/python-modules/jedi { };
+  publicsuffix = callPackage ../development/python-modules/publicsuffix { };
 
-  jellyfish = callPackage ../development/python-modules/jellyfish { };
+  pudb = callPackage ../development/python-modules/pudb { };
 
-  jeepney = callPackage ../development/python-modules/jeepney { };
+  pulp = callPackage ../development/python-modules/pulp { };
 
-  j2cli = callPackage ../development/python-modules/j2cli { };
+  pulsectl = callPackage ../development/python-modules/pulsectl { };
 
-  jinja2 = callPackage ../development/python-modules/jinja2 { };
+  pure-eval = callPackage ../development/python-modules/pure-eval { };
 
-  jinja2_time = callPackage ../development/python-modules/jinja2_time { };
+  pure-pcapy3 = callPackage ../development/python-modules/pure-pcapy3 { };
 
-  jinja2_pluralize = callPackage ../development/python-modules/jinja2_pluralize { };
+  purepng = callPackage ../development/python-modules/purepng { };
 
-  jmespath = callPackage ../development/python-modules/jmespath { };
+  pure-python-adb-homeassistant = callPackage ../development/python-modules/pure-python-adb-homeassistant { };
 
-  journalwatch = callPackage ../tools/system/journalwatch {
-    inherit (self) systemd pytest;
-  };
+  purl = callPackage ../development/python-modules/purl { };
 
-  jq = callPackage ../development/python-modules/jq {
-    inherit (pkgs) jq;
-  };
+  pushbullet = callPackage ../development/python-modules/pushbullet { };
 
-  jsondate = callPackage ../development/python-modules/jsondate { };
+  pushover-complete = callPackage ../development/python-modules/pushover-complete { };
 
-  jsondiff = callPackage ../development/python-modules/jsondiff { };
+  pvlib = callPackage ../development/python-modules/pvlib { };
 
-  jsonnet = buildPythonPackage {
-    inherit (pkgs.jsonnet) name src;
-  };
+  Pweave = callPackage ../development/python-modules/pweave { };
 
-  jupyter_client = if isPy3k then
-    callPackage ../development/python-modules/jupyter_client { }
-  else
-    callPackage ../development/python-modules/jupyter_client/5.nix { };
+  pwntools = callPackage ../development/python-modules/pwntools { debugger = pkgs.gdb; };
 
-  jupyter_core = callPackage ../development/python-modules/jupyter_core { };
+  pxml = callPackage ../development/python-modules/pxml { };
 
-  jupyter-repo2docker = callPackage ../development/python-modules/jupyter-repo2docker {
-    pkgs-docker = pkgs.docker;
-  };
+  py2bit = callPackage ../development/python-modules/py2bit { };
 
-  jupyter-telemetry = callPackage ../development/python-modules/jupyter-telemetry { };
+  py3buddy = toPythonModule (callPackage ../development/python-modules/py3buddy { });
 
-  jupyterhub = callPackage ../development/python-modules/jupyterhub { };
+  py3exiv2 = callPackage ../development/python-modules/py3exiv2 { };
 
-  jupyterhub-ldapauthenticator = callPackage ../development/python-modules/jupyterhub-ldapauthenticator { };
+  py3status = callPackage ../development/python-modules/py3status { };
 
-  jupyterhub-tmpauthenticator = callPackage ../development/python-modules/jupyterhub-tmpauthenticator { };
+  py3to2 = callPackage ../development/python-modules/3to2 { };
 
-  jupyterhub-systemdspawner = callPackage ../development/python-modules/jupyterhub-systemdspawner {
-    inherit (pkgs) bash;
-  };
+  py4j = callPackage ../development/python-modules/py4j { };
 
-  kaggle = callPackage ../development/python-modules/kaggle { };
+  pyacoustid = callPackage ../development/python-modules/pyacoustid { };
 
-  keyring = if isPy3k then
-    callPackage ../development/python-modules/keyring { }
-  else
-    callPackage ../development/python-modules/keyring/2.nix { };
+  pyaes = callPackage ../development/python-modules/pyaes { };
 
-  keyutils = callPackage ../development/python-modules/keyutils { inherit (pkgs) keyutils; };
+  pyairvisual = callPackage ../development/python-modules/pyairvisual { };
 
-  kiwisolver = if isPy3k then
-    callPackage ../development/python-modules/kiwisolver { }
-  else
-    callPackage ../development/python-modules/kiwisolver/1_1.nix { };
+  pyalgotrade = callPackage ../development/python-modules/pyalgotrade { };
 
-  klaus = callPackage ../development/python-modules/klaus {};
+  pyamf = callPackage ../development/python-modules/pyamf { };
 
-  klein = callPackage ../development/python-modules/klein { };
+  pyamg = callPackage ../development/python-modules/pyamg { };
 
-  koji = callPackage ../development/python-modules/koji { };
+  pyaml = callPackage ../development/python-modules/pyaml { };
 
-  kombu = callPackage ../development/python-modules/kombu { };
+  pyannotate = callPackage ../development/python-modules/pyannotate { };
 
-  konfig = callPackage ../development/python-modules/konfig { };
+  pyarrow = callPackage ../development/python-modules/pyarrow { inherit (pkgs) arrow-cpp cmake pkgconfig; };
 
-  kitchen = callPackage ../development/python-modules/kitchen { };
+  pyasn1 = callPackage ../development/python-modules/pyasn1 { };
 
-  knack = callPackage ../development/python-modules/knack { };
+  pyasn1-modules = callPackage ../development/python-modules/pyasn1-modules { };
 
-  kubernetes = callPackage ../development/python-modules/kubernetes { };
+  pyatmo = callPackage ../development/python-modules/pyatmo { };
 
-  k5test = callPackage ../development/python-modules/k5test {
-    inherit (pkgs) krb5Full findutils which;
-  };
+  pyatspi = callPackage ../development/python-modules/pyatspi { inherit (pkgs) pkgconfig; };
 
-  pylast = callPackage ../development/python-modules/pylast { };
+  pyatv = callPackage ../development/python-modules/pyatv { };
 
-  pylru = callPackage ../development/python-modules/pylru { };
+  pyaudio = callPackage ../development/python-modules/pyaudio { };
 
-  libnl-python = disabledIf isPy3k
-    (toPythonModule (pkgs.libnl.override{pythonSupport=true; inherit python; })).py;
+  pyavm = callPackage ../development/python-modules/pyavm { };
 
-  lark-parser = callPackage ../development/python-modules/lark-parser { };
+  pyaxmlparser = callPackage ../development/python-modules/pyaxmlparser { };
 
-  jsonpath_rw = callPackage ../development/python-modules/jsonpath_rw { };
+  pybase64 = callPackage ../development/python-modules/pybase64 { };
 
-  kerberos = callPackage ../development/python-modules/kerberos {
-    inherit (pkgs) kerberos;
-  };
+  pybids = callPackage ../development/python-modules/pybids { };
 
-  lazy_import = callPackage ../development/python-modules/lazy_import { };
+  pybigwig = callPackage ../development/python-modules/pybigwig { };
 
-  lazy-object-proxy = callPackage ../development/python-modules/lazy-object-proxy { };
+  pybind11 = callPackage ../development/python-modules/pybind11 { };
 
-  ldaptor = callPackage ../development/python-modules/ldaptor { };
+  pybindgen = callPackage ../development/python-modules/pybindgen { };
 
-  le = callPackage ../development/python-modules/le { };
+  pyblake2 = callPackage ../development/python-modules/pyblake2 { };
 
-  lektor = callPackage ../development/python-modules/lektor { };
+  pyblock = callPackage ../development/python-modules/pyblock { };
 
-  leveldb = callPackage ../development/python-modules/leveldb { };
+  pyblosxom = callPackage ../development/python-modules/pyblosxom { };
 
-  python-oauth2 = callPackage ../development/python-modules/python-oauth2 { };
+  pybluez = callPackage ../development/python-modules/pybluez { };
 
-  python_openzwave = callPackage ../development/python-modules/python_openzwave {
-    inherit (pkgs) pkgconfig;
-  };
+  pybotvac = callPackage ../development/python-modules/pybotvac { };
 
-  python-Levenshtein = callPackage ../development/python-modules/python-levenshtein { };
+  pybrowserid = callPackage ../development/python-modules/pybrowserid { };
 
-  python-unshare = callPackage ../development/python-modules/python-unshare { };
+  pybtex = callPackage ../development/python-modules/pybtex { };
 
-  fs = callPackage ../development/python-modules/fs { };
+  pybtex-docutils = callPackage ../development/python-modules/pybtex-docutils { };
 
-  fs-s3fs = callPackage ../development/python-modules/fs-s3fs { };
+  pybullet = callPackage ../development/python-modules/pybullet { };
 
-  libarcus = callPackage ../development/python-modules/libarcus { inherit (pkgs) protobuf; };
+  pycairo = callPackage ../development/python-modules/pycairo { inherit (pkgs) meson pkgconfig; };
 
-  libcloud = if isPy27 then
-      callPackage ../development/python-modules/libcloud/2.nix { }
-    else
-      callPackage ../development/python-modules/libcloud { };
+  pycallgraph = callPackage ../development/python-modules/pycallgraph { };
 
-  libgpuarray = callPackage ../development/python-modules/libgpuarray {
-    clblas = pkgs.clblas.override { boost = self.boost; };
-    cudaSupport = pkgs.config.cudaSupport or false;
-    inherit (pkgs.linuxPackages) nvidia_x11;
-  };
+  py = callPackage ../development/python-modules/py { };
 
-  libgpiod = disabledIf (!isPy3k) (toPythonModule (pkgs.libgpiod.override {
-    enablePython = true;
-    python3 = python;
-  }));
+  pycangjie = disabledIf (!isPy3k) (callPackage ../development/python-modules/pycangjie { inherit (pkgs) pkgconfig; });
 
-  libkeepass = callPackage ../development/python-modules/libkeepass { };
+  pycapnp = callPackage ../development/python-modules/pycapnp { };
 
-  libredwg = toPythonModule (pkgs.libredwg.override {
-    enablePython = true;
-    inherit (self) python libxml2;
-  });
+  pycaption = callPackage ../development/python-modules/pycaption { };
 
-  librepo = pipe pkgs.librepo [
-    toPythonModule
+  pycarddav = callPackage ../development/python-modules/pycarddav { };
 
-    (p: p.overrideAttrs (super: {
-      meta = super.meta // {
-        outputsToInstall = [ "py" ];
-      };
-    }))
+  pycares = callPackage ../development/python-modules/pycares { };
 
-    (p: p.override {
-      inherit python;
-    })
+  pycassa = callPackage ../development/python-modules/pycassa { };
 
-    (p: p.py)
-  ];
+  pycategories = callPackage ../development/python-modules/pycategories { };
 
-  libnacl = callPackage ../development/python-modules/libnacl {
-    inherit (pkgs) libsodium;
-  };
+  pycdio = callPackage ../development/python-modules/pycdio { };
 
-  libsavitar = callPackage ../development/python-modules/libsavitar { };
+  pychart = callPackage ../development/python-modules/pychart { };
 
-  libplist = disabledIf isPy3k
-    (toPythonModule (pkgs.libplist.override { enablePython = true; inherit python; })).py;
+  pychef = callPackage ../development/python-modules/pychef { };
 
-  libxml2 = (toPythonModule (pkgs.libxml2.override{pythonSupport=true; inherit python;})).py;
+  PyChromecast = callPackage ../development/python-modules/pychromecast { };
 
-  libxslt = (toPythonModule (pkgs.libxslt.override{pythonSupport=true; inherit python; inherit (self) libxml2;})).py;
+  pyclipper = callPackage ../development/python-modules/pyclipper { };
 
-  limits = callPackage ../development/python-modules/limits { };
+  pycm = callPackage ../development/python-modules/pycm { };
 
-  limnoria = callPackage ../development/python-modules/limnoria { };
+  pycodestyle = callPackage ../development/python-modules/pycodestyle { };
 
-  line_profiler = callPackage ../development/python-modules/line_profiler { };
+  pycognito = callPackage ../development/python-modules/pycognito { };
 
-  linode = callPackage ../development/python-modules/linode { };
+  pycoin = callPackage ../development/python-modules/pycoin { };
 
-  linode-api = callPackage ../development/python-modules/linode-api { };
+  pycollada = callPackage ../development/python-modules/pycollada { };
 
-  livereload = callPackage ../development/python-modules/livereload { };
+  pycontracts = callPackage ../development/python-modules/pycontracts { };
 
-  llfuse = callPackage ../development/python-modules/llfuse {
-    inherit (pkgs) fuse pkgconfig; # use "real" fuse and pkgconfig, not the python modules
-  };
+  pycosat = callPackage ../development/python-modules/pycosat { };
 
-  lml = callPackage ../development/python-modules/lml { };
+  pycountry = callPackage ../development/python-modules/pycountry { };
 
-  locustio = callPackage ../development/python-modules/locustio { };
+  pycparser = callPackage ../development/python-modules/pycparser { };
 
-  llvmlite = callPackage ../development/python-modules/llvmlite {
-    llvm = pkgs.llvm_9; # llvmlite always requires a specific version of llvm.
-  };
+  py-cpuinfo = callPackage ../development/python-modules/py-cpuinfo { };
 
-  lockfile = callPackage ../development/python-modules/lockfile { };
+  pycrc = callPackage ../development/python-modules/pycrc { };
 
-  logilab_common = callPackage ../development/python-modules/logilab/common.nix {};
+  pycrypto = callPackage ../development/python-modules/pycrypto { };
 
-  logilab-constraint = callPackage ../development/python-modules/logilab/constraint.nix {};
+  pycryptodome = callPackage ../development/python-modules/pycryptodome { };
 
-  lxml = callPackage ../development/python-modules/lxml {inherit (pkgs) libxml2 libxslt zlib;};
+  pycryptodomex = callPackage ../development/python-modules/pycryptodomex { };
 
-  lxc = callPackage ../development/python-modules/lxc { };
+  pycryptopp = callPackage ../development/python-modules/pycryptopp { };
 
-  py_scrypt = callPackage ../development/python-modules/py_scrypt { };
+  pyct = callPackage ../development/python-modules/pyct { };
 
-  python_magic = callPackage ../development/python-modules/python-magic { };
+  pycuda = callPackage ../development/python-modules/pycuda {
+    cudatoolkit = pkgs.cudatoolkit;
+    inherit (pkgs.stdenv) mkDerivation;
+  };
 
-  m3u8 = callPackage ../development/python-modules/m3u8 { };
+  pycups = callPackage ../development/python-modules/pycups { };
 
-  magic = callPackage ../development/python-modules/magic { };
+  pycurl2 = callPackage ../development/python-modules/pycurl2 { };
 
-  m2crypto = callPackage ../development/python-modules/m2crypto { };
+  pycurl = callPackage ../development/python-modules/pycurl { };
 
-  Mako = callPackage ../development/python-modules/Mako { };
+  pydantic = callPackage ../development/python-modules/pydantic { };
 
-  macfsevents = callPackage ../development/python-modules/macfsevents {
-    inherit (pkgs.darwin.apple_sdk.frameworks) CoreFoundation CoreServices;
-  };
+  pydbus = callPackage ../development/python-modules/pydbus { };
 
-  maestral = callPackage ../development/python-modules/maestral { };
+  pydenticon = callPackage ../development/python-modules/pydenticon { };
 
-  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;
-  };
+  pydicom = callPackage ../development/python-modules/pydicom { };
 
-  marisa-trie = callPackage ../development/python-modules/marisa-trie { };
+  pydispatcher = callPackage ../development/python-modules/pydispatcher { };
 
-  Markups = callPackage ../development/python-modules/Markups { };
+  pydns = let
+    py3 = callPackage ../development/python-modules/py3dns { };
+    py2 = callPackage ../development/python-modules/pydns { };
+  in if isPy3k then py3 else py2;
 
-  markupsafe = callPackage ../development/python-modules/markupsafe { };
+  pydocstyle = if isPy27 then
+    callPackage ../development/python-modules/pydocstyle/2.nix { }
+  else
+    callPackage ../development/python-modules/pydocstyle { };
 
-  marshmallow = callPackage ../development/python-modules/marshmallow { };
+  pydocumentdb = callPackage ../development/python-modules/pydocumentdb { };
 
-  marshmallow-enum = callPackage ../development/python-modules/marshmallow-enum { };
+  pydot = callPackage ../development/python-modules/pydot { inherit (pkgs) graphviz; };
 
-  marshmallow-polyfield = callPackage ../development/python-modules/marshmallow-polyfield { };
+  pydot_ng = callPackage ../development/python-modules/pydot_ng { graphviz = pkgs.graphviz; };
 
-  marshmallow-sqlalchemy = callPackage ../development/python-modules/marshmallow-sqlalchemy { };
+  pydotplus = callPackage ../development/python-modules/pydotplus { };
 
-  manuel = callPackage ../development/python-modules/manuel { };
+  pydrive = callPackage ../development/python-modules/pydrive { };
 
-  mapsplotlib = callPackage ../development/python-modules/mapsplotlib { };
+  pydsdl = callPackage ../development/python-modules/pydsdl { };
 
-  markdown = if isPy3k then
-    callPackage ../development/python-modules/markdown { }
-  else
-    callPackage ../development/python-modules/markdown/3_1.nix { };
+  pydub = callPackage ../development/python-modules/pydub { };
 
-  markdownsuperscript = callPackage ../development/python-modules/markdownsuperscript {};
+  pydy = callPackage ../development/python-modules/pydy { };
 
-  markdown-macros = callPackage ../development/python-modules/markdown-macros { };
+  pyechonest = callPackage ../development/python-modules/pyechonest { };
 
-  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;
-  };
+  pyelftools = callPackage ../development/python-modules/pyelftools { };
 
-  matrix-client = callPackage ../development/python-modules/matrix-client { };
+  pyemd = callPackage ../development/python-modules/pyemd { };
 
-  matrix-nio = callPackage ../development/python-modules/matrix-nio { };
+  pyenchant = callPackage ../development/python-modules/pyenchant { enchant2 = pkgs.enchant2; };
 
-  mautrix = callPackage ../development/python-modules/mautrix { };
-  mautrix-appservice = self.mautrix; # alias 2019-12-28
+  pyepsg = callPackage ../development/python-modules/pyepsg { };
 
-  maya = callPackage ../development/python-modules/maya { };
+  pyexcel = callPackage ../development/python-modules/pyexcel { };
 
-  mayavi = pkgs.libsForQt5.callPackage ../development/python-modules/mayavi {
-    inherit buildPythonPackage isPy27 fetchPypi;
-    inherit (self) pyface pygments numpy vtk traitsui envisage apptools pyqt5;
-  };
+  pyexcelerator = callPackage ../development/python-modules/pyexcelerator { };
 
-  mccabe = callPackage ../development/python-modules/mccabe { };
+  pyexcel-io = callPackage ../development/python-modules/pyexcel-io { };
 
-  mechanize = callPackage ../development/python-modules/mechanize { };
+  pyexcel-ods = callPackage ../development/python-modules/pyexcel-ods { };
 
-  MechanicalSoup = callPackage ../development/python-modules/MechanicalSoup { };
+  pyexcel-xls = callPackage ../development/python-modules/pyexcel-xls { };
 
-  meld3 = callPackage ../development/python-modules/meld3 { };
+  pyexiv2 = disabledIf isPy3k (toPythonModule (callPackage ../development/python-modules/pyexiv2 { }));
 
-  meliae = callPackage ../development/python-modules/meliae {};
+  pyext = callPackage ../development/python-modules/pyext { };
 
-  meinheld = callPackage ../development/python-modules/meinheld { };
+  pyface = callPackage ../development/python-modules/pyface { };
 
-  memcached = callPackage ../development/python-modules/memcached { };
+  pyfaidx = callPackage ../development/python-modules/pyfaidx { };
 
-  memory_profiler = callPackage ../development/python-modules/memory_profiler { };
+  pyfakefs = callPackage ../development/python-modules/pyfakefs { };
 
-  mesa = callPackage ../development/python-modules/mesa { };
+  pyfantom = callPackage ../development/python-modules/pyfantom { };
 
-  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;
-  })));
+  pyfcm = callPackage ../development/python-modules/pyfcm { };
 
-  mesonpep517 = callPackage ../development/python-modules/mesonpep517 { };
+  pyfftw = callPackage ../development/python-modules/pyfftw { };
 
-  meshlabxml = callPackage ../development/python-modules/meshlabxml { };
+  pyfiglet = callPackage ../development/python-modules/pyfiglet { };
 
-  metaphone = callPackage ../development/python-modules/metaphone { };
+  pyflakes = callPackage ../development/python-modules/pyflakes { };
 
-  mezzanine = callPackage ../development/python-modules/mezzanine { };
+  pyfma = callPackage ../development/python-modules/pyfma { };
 
-  micawber = callPackage ../development/python-modules/micawber { };
+  pyfribidi = callPackage ../development/python-modules/pyfribidi { };
 
-  milksnake = callPackage ../development/python-modules/milksnake { };
+  pyfritzhome = callPackage ../development/python-modules/pyfritzhome { };
 
-  minimock = callPackage ../development/python-modules/minimock { };
+  pyftdi = callPackage ../development/python-modules/pyftdi { };
 
-  minio = callPackage ../development/python-modules/minio { };
+  pyftgl = callPackage ../development/python-modules/pyftgl { };
 
-  moviepy = callPackage ../development/python-modules/moviepy { };
+  pyftpdlib = callPackage ../development/python-modules/pyftpdlib { };
 
-  mozterm = callPackage ../development/python-modules/mozterm { };
+  pyfttt = callPackage ../development/python-modules/pyfttt { };
 
-  mplleaflet = callPackage ../development/python-modules/mplleaflet { };
+  pyfxa = callPackage ../development/python-modules/pyfxa { };
 
-  multidict = callPackage ../development/python-modules/multidict { };
+  pygal = callPackage ../development/python-modules/pygal { };
 
-  munch = callPackage ../development/python-modules/munch { };
+  pygame = callPackage ../development/python-modules/pygame { };
 
-  nototools = callPackage ../data/fonts/noto-fonts/tools.nix { };
+  pygame_sdl2 = callPackage ../development/python-modules/pygame_sdl2 { };
 
-  rainbowstream = callPackage ../development/python-modules/rainbowstream { };
+  pygbm = callPackage ../development/python-modules/pygbm { };
 
-  pendulum = callPackage ../development/python-modules/pendulum { };
+  pygccxml = callPackage ../development/python-modules/pygccxml { };
 
-  pocket = callPackage ../development/python-modules/pocket { };
+  pygdbmi = callPackage ../development/python-modules/pygdbmi { };
 
-  mistune = callPackage ../development/python-modules/mistune { };
+  pygeoip = callPackage ../development/python-modules/pygeoip { };
 
-  brotlipy = callPackage ../development/python-modules/brotlipy { };
+  pygit2 = callPackage ../development/python-modules/pygit2 { };
 
-  sortedcollections = callPackage ../development/python-modules/sortedcollections { };
+  PyGithub = callPackage ../development/python-modules/pyGithub { };
 
-  hyperframe = callPackage ../development/python-modules/hyperframe { };
+  pyglet = callPackage ../development/python-modules/pyglet { };
 
-  h2 = callPackage ../development/python-modules/h2 { };
+  pygls = callPackage ../development/python-modules/pygls { };
 
-  editorconfig = callPackage ../development/python-modules/editorconfig { };
+  pygments-better-html = callPackage ../development/python-modules/pygments-better-html { };
 
-  mock = if pythonOlder "3.6" then
-    callPackage ../development/python-modules/mock/2.nix { }
+  pygments = if isPy3k then
+    callPackage ../development/python-modules/Pygments { }
   else
-    callPackage ../development/python-modules/mock { };
+    callPackage ../development/python-modules/Pygments/2_5.nix { };
 
-  mocket = callPackage ../development/python-modules/mocket { };
+  pygments-markdown-lexer = callPackage ../development/python-modules/pygments-markdown-lexer { };
 
-  mock-open = callPackage ../development/python-modules/mock-open { };
+  pygmo = callPackage ../development/python-modules/pygmo { };
 
-  mockito = callPackage ../development/python-modules/mockito { };
+  pygobject2 = callPackage ../development/python-modules/pygobject { inherit (pkgs) pkgconfig; };
 
-  modeled = callPackage ../development/python-modules/modeled { };
+  pygobject3 = callPackage ../development/python-modules/pygobject/3.nix { inherit (pkgs) meson pkgconfig; };
 
-  moderngl = callPackage ../development/python-modules/moderngl { };
+  pygogo = callPackage ../development/python-modules/pygogo { };
 
-  moderngl-window = callPackage ../development/python-modules/moderngl_window { };
+  pygpgme = callPackage ../development/python-modules/pygpgme { };
 
-  modestmaps = callPackage ../development/python-modules/modestmaps { };
+  pygraphviz = callPackage ../development/python-modules/pygraphviz {
+    inherit (pkgs) graphviz pkgconfig;
+  }; # not the python package
 
-  # Needed here because moinmoin is loaded as a Python library.
-  moinmoin = callPackage ../development/python-modules/moinmoin { };
+  pygreat = callPackage ../development/python-modules/pygreat { };
 
-  moretools = callPackage ../development/python-modules/moretools { };
+  pygrok = callPackage ../development/python-modules/pygrok { };
 
-  moto = callPackage ../development/python-modules/moto {};
+  pygtail = callPackage ../development/python-modules/pygtail { };
 
-  mox = callPackage ../development/python-modules/mox { };
+  pygtk = callPackage ../development/python-modules/pygtk {
+    inherit (pkgs) pkgconfig;
+    libglade = null;
+  };
 
-  mozsvc = callPackage ../development/python-modules/mozsvc { };
+  pyGtkGlade = self.pygtk.override { libglade = pkgs.gnome2.libglade; };
 
-  mpmath = callPackage ../development/python-modules/mpmath { };
+  pygtksourceview = callPackage ../development/python-modules/pygtksourceview { inherit (pkgs) pkgconfig; };
 
-  mpd = callPackage ../development/python-modules/mpd { };
+  pyhamcrest = if isPy3k then
+    callPackage ../development/python-modules/pyhamcrest { }
+  else
+    callPackage ../development/python-modules/pyhamcrest/1.nix { };
 
-  mpd2 = callPackage ../development/python-modules/mpd2 { };
+  pyhaversion = callPackage ../development/python-modules/pyhaversion { };
 
-  mpv = callPackage ../development/python-modules/mpv { mpv = pkgs.mpv; };
+  pyhcl = callPackage ../development/python-modules/pyhcl { };
 
-  mrbob = callPackage ../development/python-modules/mrbob {};
+  pyhocon = callPackage ../development/python-modules/pyhocon { };
 
-  msgpack = callPackage ../development/python-modules/msgpack {};
+  pyhomematic = callPackage ../development/python-modules/pyhomematic { };
 
-  msgpack-numpy = callPackage ../development/python-modules/msgpack-numpy {};
+  pyhs100 = callPackage ../development/python-modules/pyhs100 { };
 
-  msrplib = callPackage ../development/python-modules/msrplib { };
+  pyicloud = callPackage ../development/python-modules/pyicloud { };
 
-  multipledispatch = callPackage ../development/python-modules/multipledispatch { };
+  PyICU = callPackage ../development/python-modules/pyicu { };
 
-  multiprocess = callPackage ../development/python-modules/multiprocess { };
+  pyinotify = callPackage ../development/python-modules/pyinotify { };
 
-  multitasking = callPackage ../development/python-modules/multitasking { };
+  pyinputevent = callPackage ../development/python-modules/pyinputevent { };
 
-  munkres = callPackage ../development/python-modules/munkres { };
+  pyipp = callPackage ../development/python-modules/pyipp { };
 
-  musicbrainzngs = callPackage ../development/python-modules/musicbrainzngs { };
+  pyjade = callPackage ../development/python-modules/pyjade { };
 
-  mutag = callPackage ../development/python-modules/mutag { };
+  pyjet = callPackage ../development/python-modules/pyjet { };
 
-  mutagen = if isPy27 then
-      callPackage ../development/python-modules/mutagen/1.43.nix { }
-    else
-      callPackage ../development/python-modules/mutagen { };
+  pyjks = callPackage ../development/python-modules/pyjks { };
 
-  mutatormath = callPackage ../development/python-modules/mutatormath { };
+  pyjson5 = callPackage ../development/python-modules/pyjson5 { };
 
-  muttils = callPackage ../development/python-modules/muttils { };
+  pyjwkest = callPackage ../development/python-modules/pyjwkest { };
 
-  mygpoclient = callPackage ../development/python-modules/mygpoclient { };
+  pyjwt = callPackage ../development/python-modules/pyjwt { };
 
-  mysqlclient = callPackage ../development/python-modules/mysqlclient { };
+  pykdtree = callPackage ../development/python-modules/pykdtree { inherit (pkgs.llvmPackages) openmp; };
 
-  mypy = callPackage ../development/python-modules/mypy { };
+  pykeepass = callPackage ../development/python-modules/pykeepass { };
 
-  mypy-extensions = callPackage ../development/python-modules/mypy/extensions.nix { };
+  pykerberos = callPackage ../development/python-modules/pykerberos { };
 
-  mypy-protobuf = callPackage ../development/python-modules/mypy-protobuf { };
+  pykickstart = callPackage ../development/python-modules/pykickstart { };
 
-  neuronpy = callPackage ../development/python-modules/neuronpy { };
+  pykka = callPackage ../development/python-modules/pykka { };
 
-  persisting-theory = callPackage ../development/python-modules/persisting-theory { };
+  pykwalify = callPackage ../development/python-modules/pykwalify { };
 
-  pint = callPackage ../development/python-modules/pint { };
+  pylama = callPackage ../development/python-modules/pylama { };
 
-  pkutils = callPackage ../development/python-modules/pkutils { };
+  pylast = callPackage ../development/python-modules/pylast { };
 
-  pygal = callPackage ../development/python-modules/pygal { };
+  pylatexenc = callPackage ../development/python-modules/pylatexenc { };
 
-  pygogo = callPackage ../development/python-modules/pygogo { };
+  PyLD = callPackage ../development/python-modules/PyLD { };
 
-  pytaglib = callPackage ../development/python-modules/pytaglib { };
+  pylev = callPackage ../development/python-modules/pylev { };
 
-  pyte = callPackage ../development/python-modules/pyte { };
+  pylibacl = callPackage ../development/python-modules/pylibacl { };
 
-  graphviz = callPackage ../development/python-modules/graphviz {
-    inherit (pkgs) graphviz;
-  };
+  pylibconfig2 = callPackage ../development/python-modules/pylibconfig2 { };
 
-  pygraphviz = callPackage ../development/python-modules/pygraphviz {
-    inherit (pkgs) graphviz pkgconfig; # not the python package
-  };
+  pylibftdi = callPackage ../development/python-modules/pylibftdi { inherit (pkgs) libusb1; };
 
-  pymc3 = callPackage ../development/python-modules/pymc3 { };
+  pylibgen = throw "pylibgen is unmaintained upstreamed, and removed from nixpkgs"; # added 2020-06-20
 
-  pympler = callPackage ../development/python-modules/pympler { };
+  pyliblo = callPackage ../development/python-modules/pyliblo { };
 
-  pymysqlsa = callPackage ../development/python-modules/pymysqlsa { };
+  pylibmc = callPackage ../development/python-modules/pylibmc { };
 
-  merkletools = callPackage ../development/python-modules/merkletools { };
+  pylint-celery = callPackage ../development/python-modules/pylint-celery { };
 
-  monosat = disabledIf (!isPy3k) (pkgs.monosat.python { inherit buildPythonPackage; inherit (self) cython; });
+  pylint-django = callPackage ../development/python-modules/pylint-django { };
 
-  monotonic = callPackage ../development/python-modules/monotonic { };
+  pylint-flask = callPackage ../development/python-modules/pylint-flask { };
 
-  mysql-connector = callPackage ../development/python-modules/mysql-connector { };
+  pylint = if isPy3k then
+    callPackage ../development/python-modules/pylint { }
+  else
+    callPackage ../development/python-modules/pylint/1.9.nix { };
 
-  namebench = callPackage ../development/python-modules/namebench { };
+  pylint-plugin-utils = callPackage ../development/python-modules/pylint-plugin-utils { };
 
-  namedlist = callPackage ../development/python-modules/namedlist { };
+  py-lru-cache = callPackage ../development/python-modules/py-lru-cache { };
 
-  nameparser = callPackage ../development/python-modules/nameparser { };
+  pylru = callPackage ../development/python-modules/pylru { };
 
-  names = callPackage ../development/python-modules/names { };
+  pyls-black = callPackage ../development/python-modules/pyls-black { };
 
-  nbclient = callPackage ../development/python-modules/nbclient { };
+  pyls-isort = callPackage ../development/python-modules/pyls-isort { };
 
-  nbconflux = callPackage ../development/python-modules/nbconflux { };
+  pyls-mypy = callPackage ../development/python-modules/pyls-mypy { };
 
-  nbconvert = callPackage ../development/python-modules/nbconvert { };
+  PyLTI = callPackage ../development/python-modules/pylti { };
 
-  nbformat = if isPy3k then
-    callPackage ../development/python-modules/nbformat { }
-  else callPackage ../development/python-modules/nbformat/2.nix { };
+  pymacaroons = callPackage ../development/python-modules/pymacaroons { };
 
-  nbmerge = callPackage ../development/python-modules/nbmerge { };
+  pymaging = callPackage ../development/python-modules/pymaging { };
 
-  nbdime = callPackage ../development/python-modules/nbdime { };
+  pymaging_png = callPackage ../development/python-modules/pymaging_png { };
 
-  nbxmpp = callPackage ../development/python-modules/nbxmpp { };
+  pymatgen = callPackage ../development/python-modules/pymatgen { };
 
-  sleekxmpp = callPackage ../development/python-modules/sleekxmpp { };
+  pymatgen-lammps = callPackage ../development/python-modules/pymatgen-lammps { };
 
-  slixmpp = callPackage ../development/python-modules/slixmpp {
-    inherit (pkgs) gnupg;
-  };
+  pymavlink = callPackage ../development/python-modules/pymavlink { };
 
-  netaddr = callPackage ../development/python-modules/netaddr { };
+  pymbolic = callPackage ../development/python-modules/pymbolic { };
 
-  netifaces = callPackage ../development/python-modules/netifaces { };
+  pymc3 = callPackage ../development/python-modules/pymc3 { };
 
-  hpack = callPackage ../development/python-modules/hpack { };
+  pymediainfo = callPackage ../development/python-modules/pymediainfo { };
 
-  nevow = callPackage ../development/python-modules/nevow { };
+  pymeeus = callPackage ../development/python-modules/pymeeus { };
 
-  nghttp2 = (toPythonModule (pkgs.nghttp2.override {
-    inherit (self) python cython setuptools;
-    inherit (pkgs) ncurses;
-    enablePython = true;
-  })).python;
+  pymemoize = callPackage ../development/python-modules/pymemoize { };
 
-  nibabel = callPackage ../development/python-modules/nibabel {};
+  pyment = callPackage ../development/python-modules/pyment { };
 
-  nidaqmx = callPackage ../development/python-modules/nidaqmx { };
+  pymetar = callPackage ../development/python-modules/pymetar { };
 
-  nilearn = callPackage ../development/python-modules/nilearn {};
+  pymetno = callPackage ../development/python-modules/pymetno { };
 
-  nimfa = callPackage ../development/python-modules/nimfa {};
+  pymongo = callPackage ../development/python-modules/pymongo { };
 
-  nipy = callPackage ../development/python-modules/nipy { };
+  pympler = callPackage ../development/python-modules/pympler { };
 
-  nipype = callPackage ../development/python-modules/nipype {
-    inherit (pkgs) which;
-  };
+  pymsgbox = callPackage ../development/python-modules/pymsgbox { };
 
-  nitime = callPackage ../development/python-modules/nitime { };
+  pymssql = throw "pymssql has been abandoned upstream."; # added 2020-05-04
 
-  nix-kernel = callPackage ../development/python-modules/nix-kernel {
-    inherit (pkgs) nix;
-  };
+  py-multibase = callPackage ../development/python-modules/py-multibase { };
 
-  nixpkgs = callPackage ../development/python-modules/nixpkgs { };
+  py-multihash = callPackage ../development/python-modules/py-multihash { };
 
-  nixpkgs-pytools = callPackage ../development/python-modules/nixpkgs-pytools { };
+  pymumble = callPackage ../development/python-modules/pymumble { };
 
-  nodeenv = callPackage ../development/python-modules/nodeenv { };
+  pymupdf = callPackage ../development/python-modules/pymupdf { };
 
-  nose = callPackage ../development/python-modules/nose { };
+  PyMVGLive = callPackage ../development/python-modules/pymvglive { };
 
-  nose-cov = callPackage ../development/python-modules/nose-cov { };
+  pymysql = callPackage ../development/python-modules/pymysql { };
 
-  nose-exclude = callPackage ../development/python-modules/nose-exclude { };
+  pymysqlsa = callPackage ../development/python-modules/pymysqlsa { };
 
-  nose-focus = callPackage ../development/python-modules/nose-focus { };
+  pymystem3 = callPackage ../development/python-modules/pymystem3 { };
 
-  nose-randomly = callPackage ../development/python-modules/nose-randomly { };
+  pynac = callPackage ../development/python-modules/pynac { };
 
-  nose2 = callPackage ../development/python-modules/nose2 { };
+  pynacl = callPackage ../development/python-modules/pynacl { };
 
-  nose-cover3 = callPackage ../development/python-modules/nose-cover3 { };
+  pynamecheap = callPackage ../development/python-modules/pynamecheap { };
 
-  nosexcover = callPackage ../development/python-modules/nosexcover { };
+  pynamodb = callPackage ../development/python-modules/pynamodb { };
 
-  nosejs = callPackage ../development/python-modules/nosejs { };
+  pynanoleaf = callPackage ../development/python-modules/pynanoleaf { };
 
-  nose-cprof = callPackage ../development/python-modules/nose-cprof { };
+  pync = callPackage ../development/python-modules/pync { };
 
-  nose-of-yeti = callPackage ../development/python-modules/nose-of-yeti { };
+  pynisher = callPackage ../development/python-modules/pynisher { };
 
-  nose-pattern-exclude = callPackage ../development/python-modules/nose-pattern-exclude { };
+  pynmea2 = callPackage ../development/python-modules/pynmea2 { };
 
-  nose_warnings_filters = callPackage ../development/python-modules/nose_warnings_filters { };
+  pynput = callPackage ../development/python-modules/pynput { };
 
-  notebook = if isPy3k then callPackage ../development/python-modules/notebook { }
-  else callPackage ../development/python-modules/notebook/2.nix { };
+  pynrrd = callPackage ../development/python-modules/pynrrd { };
 
-  notedown = callPackage ../development/python-modules/notedown { };
+  pynvim = callPackage ../development/python-modules/pynvim { };
 
-  notify = callPackage ../development/python-modules/notify { };
+  pynvml = callPackage ../development/python-modules/pynvml { };
 
-  notify2 = callPackage ../development/python-modules/notify2 {};
+  pynzb = callPackage ../development/python-modules/pynzb { };
 
-  notmuch = callPackage ../development/python-modules/notmuch {
-    inherit (pkgs) notmuch;
-  };
+  pyobjc = if stdenv.isDarwin then
+    callPackage ../development/python-modules/pyobjc { }
+  else
+    throw "pyobjc can only be built on Mac OS";
 
-  emoji = callPackage ../development/python-modules/emoji { };
+  pyocr = callPackage ../development/python-modules/pyocr { };
 
-  ntplib = callPackage ../development/python-modules/ntplib { };
+  pyodbc = callPackage ../development/python-modules/pyodbc { };
 
-  num2words = callPackage ../development/python-modules/num2words { };
+  pyogg = callPackage ../development/python-modules/pyogg { };
 
-  numba = callPackage ../development/python-modules/numba { };
+  pyomo = callPackage ../development/python-modules/pyomo { };
 
-  numcodecs = callPackage ../development/python-modules/numcodecs {
-    inherit (pkgs) gcc8;
-  };
+  pyopencl = callPackage ../development/python-modules/pyopencl { };
 
-  numexpr = callPackage ../development/python-modules/numexpr { };
+  pyopengl = callPackage ../development/python-modules/pyopengl { };
 
-  Nuitka = callPackage ../development/python-modules/nuitka { };
+  pyopenssl = callPackage ../development/python-modules/pyopenssl { };
 
-  numpy =
-    if pythonOlder "3.5" then
-      callPackage ../development/python-modules/numpy/1.16.nix { }
-    else
-      callPackage ../development/python-modules/numpy { };
+  pyosmium = callPackage ../development/python-modules/pyosmium { };
 
-  numpydoc = callPackage ../development/python-modules/numpydoc { };
+  pyotp = callPackage ../development/python-modules/pyotp { };
 
-  numpy-stl = callPackage ../development/python-modules/numpy-stl { };
+  pyowm = callPackage ../development/python-modules/pyowm { };
 
-  numtraits = callPackage ../development/python-modules/numtraits { };
+  pypamtest = pkgs.libpam-wrapper.override {
+    enablePython = true;
+    inherit python;
+  };
 
-  nwdiag = callPackage ../development/python-modules/nwdiag { };
+  pypandoc = callPackage ../development/python-modules/pypandoc { };
 
-  dynd = callPackage ../development/python-modules/dynd { };
+  pyparser = callPackage ../development/python-modules/pyparser { };
 
-  langcodes = callPackage ../development/python-modules/langcodes { };
+  pyparsing = callPackage ../development/python-modules/pyparsing { };
 
-  livestreamer = callPackage ../development/python-modules/livestreamer { };
+  pyparted = callPackage ../development/python-modules/pyparted { };
 
-  livestreamer-curses = callPackage ../development/python-modules/livestreamer-curses { };
+  pypcap = callPackage ../development/python-modules/pypcap { };
 
-  oauth = callPackage ../development/python-modules/oauth { };
+  pypdf2 = callPackage ../development/python-modules/pypdf2 { };
 
-  oauth2 = callPackage ../development/python-modules/oauth2 { };
+  pyPdf = callPackage ../development/python-modules/pypdf { };
 
-  oauth2client = callPackage ../development/python-modules/oauth2client { };
+  pypeg2 = callPackage ../development/python-modules/pypeg2 { };
 
-  oauthlib = if isPy27 then
-      callPackage ../development/python-modules/oauthlib/3.1.nix { }
-    else
-      callPackage ../development/python-modules/oauthlib { };
+  pyperclip = callPackage ../development/python-modules/pyperclip { };
 
-  obfsproxy = callPackage ../development/python-modules/obfsproxy { };
+  pyperf = callPackage ../development/python-modules/pyperf { };
 
-  objgraph = callPackage ../development/python-modules/objgraph {
-    graphvizPkg = pkgs.graphviz;
-  };
+  pyphen = callPackage ../development/python-modules/pyphen { };
 
-  offtrac = callPackage ../development/python-modules/offtrac { };
+  pyphotonfile = callPackage ../development/python-modules/pyphotonfile { };
 
-  openpyxl = if pythonAtLeast "3.6" then
-    callPackage ../development/python-modules/openpyxl { }
-  else
-    callPackage ../development/python-modules/openpyxl/2.nix { };
+  pypillowfight = callPackage ../development/python-modules/pypillowfight { };
 
-  opentimestamps = callPackage ../development/python-modules/opentimestamps { };
+  pyplatec = callPackage ../development/python-modules/pyplatec { };
 
-  ordereddict = callPackage ../development/python-modules/ordereddict { };
+  pypoppler = callPackage ../development/python-modules/pypoppler { };
 
-  od = callPackage ../development/python-modules/od { };
+  pyprind = callPackage ../development/python-modules/pyprind { };
 
-  omegaconf = callPackage ../development/python-modules/omegaconf { };
+  pyprof2calltree = callPackage ../development/python-modules/pyprof2calltree { };
 
-  opuslib = callPackage ../development/python-modules/opuslib { };
+  pyproj = callPackage ../development/python-modules/pyproj { };
 
-  orderedset = callPackage ../development/python-modules/orderedset { };
+  pyptlib = callPackage ../development/python-modules/pyptlib { };
 
-  python-multipart = callPackage ../development/python-modules/python-multipart { };
+  pypubsub = callPackage ../development/python-modules/pypubsub { };
 
-  python-otr = callPackage ../development/python-modules/python-otr { };
+  pyqrcode = callPackage ../development/python-modules/pyqrcode { };
 
-  plone-testing = callPackage ../development/python-modules/plone-testing { };
+  pyqt4 = callPackage ../development/python-modules/pyqt/4.x.nix { inherit (pkgs) pkgconfig; };
 
-  ply = callPackage ../development/python-modules/ply { };
+  pyqt5 = pkgs.libsForQt5.callPackage ../development/python-modules/pyqt/5.x.nix { pythonPackages = self; };
 
-  plyplus = callPackage ../development/python-modules/plyplus { };
+  pyqt5_with_qtmultimedia = self.pyqt5.override { withMultimedia = true; };
 
-  plyvel = callPackage ../development/python-modules/plyvel { };
+  /*
+    `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; };
 
-  osc = callPackage ../development/python-modules/osc { };
+  pyqtgraph = callPackage ../development/python-modules/pyqtgraph { };
 
-  rfc3986 = callPackage ../development/python-modules/rfc3986 { };
+  pyqtwebengine = pkgs.libsForQt5.callPackage ../development/python-modules/pyqtwebengine { pythonPackages = self; };
 
-  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";
-      };
+  pyquery = callPackage ../development/python-modules/pyquery { };
 
-    });
-  in if isPy3k then cachetools' else cachetools_2;
+  pyrabbit2 = callPackage ../development/python-modules/pyrabbit2 { };
 
-  cma = callPackage ../development/python-modules/cma { };
+  pyrad = callPackage ../development/python-modules/pyrad { };
 
-  cmd2 = callPackage ../development/python-modules/cmd2 {};
+  py-radix = callPackage ../development/python-modules/py-radix { };
 
-  warlock = callPackage ../development/python-modules/warlock { };
+  pyramid_beaker = callPackage ../development/python-modules/pyramid_beaker { };
 
-  pecan = callPackage ../development/python-modules/pecan { };
+  pyramid = callPackage ../development/python-modules/pyramid { };
 
-  kaitaistruct = callPackage ../development/python-modules/kaitaistruct { };
+  pyramid_chameleon = callPackage ../development/python-modules/pyramid_chameleon { };
 
-  Kajiki = callPackage ../development/python-modules/kajiki { };
+  pyramid_exclog = callPackage ../development/python-modules/pyramid_exclog { };
 
-  WSME = callPackage ../development/python-modules/WSME { };
+  pyramid_hawkauth = callPackage ../development/python-modules/pyramid_hawkauth { };
 
-  zake = callPackage ../development/python-modules/zake { };
+  pyramid_jinja2 = callPackage ../development/python-modules/pyramid_jinja2 { };
 
-  zarr = callPackage ../development/python-modules/zarr { };
+  pyramid_mako = callPackage ../development/python-modules/pyramid_mako { };
 
-  kazoo = callPackage ../development/python-modules/kazoo { };
+  pyramid_multiauth = callPackage ../development/python-modules/pyramid_multiauth { };
 
-  FormEncode = callPackage ../development/python-modules/FormEncode { };
+  pyreadability = callPackage ../development/python-modules/pyreadability { };
 
-  pycountry = callPackage ../development/python-modules/pycountry { };
+  pyrealsense2 = toPythonModule (pkgs.librealsense.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
 
-  nine = callPackage ../development/python-modules/nine { };
+  pyrealsense2WithCuda = toPythonModule (pkgs.librealsenseWithCuda.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
 
-  logutils = callPackage ../development/python-modules/logutils { };
+  pyrealsense2WithoutCuda = toPythonModule (pkgs.librealsenseWithoutCuda.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
 
-  ldappool = callPackage ../development/python-modules/ldappool { };
+  pyregion = callPackage ../development/python-modules/pyregion { };
 
-  retrying = callPackage ../development/python-modules/retrying { };
+  pyreport = callPackage ../development/python-modules/pyreport { };
 
-  fasteners = callPackage ../development/python-modules/fasteners { };
+  pyres = callPackage ../development/python-modules/pyres { };
 
-  aiocontextvars = callPackage ../development/python-modules/aiocontextvars { };
+  pyRFC3339 = callPackage ../development/python-modules/pyrfc3339 { };
 
-  aioeventlet = callPackage ../development/python-modules/aioeventlet { };
+  PyRMVtransport = callPackage ../development/python-modules/PyRMVtransport { };
 
-  aiokafka = callPackage ../development/python-modules/aiokafka { };
+  Pyro4 = callPackage ../development/python-modules/pyro4 { };
 
-  olefile = callPackage ../development/python-modules/olefile { };
+  Pyro5 = callPackage ../development/python-modules/pyro5 { };
 
-  requests-mock = callPackage ../development/python-modules/requests-mock { };
+  pyroma = callPackage ../development/python-modules/pyroma { };
 
-  mecab-python3 = callPackage ../development/python-modules/mecab-python3 { };
+  pyro-ppl = callPackage ../development/python-modules/pyro-ppl { };
 
-  mox3 = callPackage ../development/python-modules/mox3 { };
+  pyroute2 = callPackage ../development/python-modules/pyroute2 { };
 
-  doc8 = callPackage ../development/python-modules/doc8 { };
+  pyrr = callPackage ../development/python-modules/pyrr { };
 
-  wrapt = callPackage ../development/python-modules/wrapt { };
+  pyrsistent = callPackage ../development/python-modules/pyrsistent { };
 
-  pagerduty = callPackage ../development/python-modules/pagerduty { };
+  PyRSS2Gen = callPackage ../development/python-modules/pyrss2gen { };
 
-  pandas = if isPy3k then
-    callPackage ../development/python-modules/pandas { }
-  else
-    callPackage ../development/python-modules/pandas/2.nix { };
+  pyrtlsdr = callPackage ../development/python-modules/pyrtlsdr { };
 
-  panel = callPackage ../development/python-modules/panel { };
+  pysam = callPackage ../development/python-modules/pysam { };
 
-  xlrd = callPackage ../development/python-modules/xlrd { };
+  pysaml2 = callPackage ../development/python-modules/pysaml2 { inherit (pkgs) xmlsec; };
 
-  bottleneck = callPackage ../development/python-modules/bottleneck { };
+  pysc2 = callPackage ../development/python-modules/pysc2 { };
 
-  paho-mqtt = callPackage ../development/python-modules/paho-mqtt { };
+  pyscard = callPackage ../development/python-modules/pyscard { inherit (pkgs.darwin.apple_sdk.frameworks) PCSC; };
 
-  pagelabels = callPackage ../development/python-modules/pagelabels { };
+  pyschedule = callPackage ../development/python-modules/pyschedule { };
 
-  pamqp = callPackage ../development/python-modules/pamqp { };
+  pyscreenshot = callPackage ../development/python-modules/pyscreenshot { };
 
-  parsedatetime = callPackage ../development/python-modules/parsedatetime { };
+  py_scrypt = callPackage ../development/python-modules/py_scrypt { };
 
-  param = callPackage ../development/python-modules/param { };
+  pyscrypt = callPackage ../development/python-modules/pyscrypt { };
 
-  paramiko = callPackage ../development/python-modules/paramiko { };
+  pyscss = callPackage ../development/python-modules/pyscss { };
 
-  parameterized = callPackage ../development/python-modules/parameterized { };
+  pysdl2 = callPackage ../development/python-modules/pysdl2 { };
 
-  paramz = callPackage ../development/python-modules/paramz { };
+  pysendfile = callPackage ../development/python-modules/pysendfile { };
 
-  parfive = callPackage ../development/python-modules/parfive { };
+  pysensors = callPackage ../development/python-modules/pysensors { };
 
-  parsel = callPackage ../development/python-modules/parsel { };
+  pyserial-asyncio = callPackage ../development/python-modules/pyserial-asyncio { };
 
-  parso = callPackage ../development/python-modules/parso { };
+  pyserial = callPackage ../development/python-modules/pyserial { };
 
-  partd = callPackage ../development/python-modules/partd { };
+  pysftp = callPackage ../development/python-modules/pysftp { };
 
-  patch = callPackage ../development/python-modules/patch { };
+  pysha3 = callPackage ../development/python-modules/pysha3 { };
 
-  patch-ng = callPackage ../development/python-modules/patch-ng { };
+  pyshp = callPackage ../development/python-modules/pyshp { };
 
-  pathos = callPackage ../development/python-modules/pathos { };
+  pyside2-tools =
+    toPythonModule (callPackage ../development/python-modules/pyside2-tools { inherit (pkgs) cmake qt5; });
 
-  patsy = callPackage ../development/python-modules/patsy { };
+  pyside2 = toPythonModule (callPackage ../development/python-modules/pyside2 { inherit (pkgs) cmake qt5 ninja; });
 
-  paste = callPackage ../development/python-modules/paste { };
+  pyside = callPackage ../development/python-modules/pyside { inherit (pkgs) mesa; };
 
-  PasteDeploy = callPackage ../development/python-modules/pastedeploy { };
+  pysideShiboken = callPackage ../development/python-modules/pyside/shiboken.nix { inherit (pkgs) libxml2 libxslt; };
 
-  pasteScript = callPackage ../development/python-modules/pastescript { };
+  pysideTools = callPackage ../development/python-modules/pyside/tools.nix { };
 
-  patator = callPackage ../development/python-modules/patator { };
+  pysigset = callPackage ../development/python-modules/pysigset { };
 
-  pathlib2 = callPackage ../development/python-modules/pathlib2 { };
+  pysingleton = callPackage ../development/python-modules/pysingleton { };
 
-  pathpy = if isPy3k then
-    callPackage ../development/python-modules/path.py { }
-  else
-    callPackage ../development/python-modules/path.py/2.nix { };
+  pyslurm = callPackage ../development/python-modules/pyslurm { slurm = pkgs.slurm; };
 
-  paypalrestsdk = callPackage ../development/python-modules/paypalrestsdk { };
+  pysmb = callPackage ../development/python-modules/pysmb { };
 
-  pbr = callPackage ../development/python-modules/pbr { };
+  pysmbc = callPackage ../development/python-modules/pysmbc { inherit (pkgs) pkgconfig; };
 
-  fixtures = callPackage ../development/python-modules/fixtures { };
+  pysmf = callPackage ../development/python-modules/pysmf { };
 
-  fipy = callPackage ../development/python-modules/fipy { };
+  pysmi = callPackage ../development/python-modules/pysmi { };
 
-  sfepy = callPackage ../development/python-modules/sfepy { };
+  pysnmp = callPackage ../development/python-modules/pysnmp { };
 
-  pelican = callPackage ../development/python-modules/pelican {
-    inherit (pkgs) glibcLocales git;
-  };
+  pysnooper = callPackage ../development/python-modules/pysnooper { };
 
-  pep8 = callPackage ../development/python-modules/pep8 { };
+  pysnow = callPackage ../development/python-modules/pysnow { };
 
-  pep8-naming = callPackage ../development/python-modules/pep8-naming { };
+  pysocks = callPackage ../development/python-modules/pysocks { };
 
-  pep257 = callPackage ../development/python-modules/pep257 { };
+  pysolr = callPackage ../development/python-modules/pysolr { };
 
-  pep517 = callPackage ../development/python-modules/pep517 { };
+  pysonos = callPackage ../development/python-modules/pysonos { };
 
-  percol = callPackage ../development/python-modules/percol { };
+  pysoundfile = self.soundfile; # Alias added 23-06-2019
 
-  pexif = callPackage ../development/python-modules/pexif { };
+  pyspark = callPackage ../development/python-modules/pyspark { };
 
-  pexpect = callPackage ../development/python-modules/pexpect { };
+  pysparse = callPackage ../development/python-modules/pysparse { };
 
-  pdfkit = callPackage ../development/python-modules/pdfkit { };
+  pyspf = callPackage ../development/python-modules/pyspf { };
 
-  pdfrw = callPackage ../development/python-modules/pdfrw { };
+  pyspinel = callPackage ../development/python-modules/pyspinel { };
 
-  periodictable = callPackage ../development/python-modules/periodictable { };
+  pyspotify = callPackage ../development/python-modules/pyspotify { };
 
-  pgcli = callPackage ../development/tools/database/pgcli {};
+  pyspread = callPackage ../development/python-modules/pyspread { };
 
-  pg8000 = callPackage ../development/python-modules/pg8000 { };
-  pg8000_1_12 = callPackage ../development/python-modules/pg8000/1_12.nix { };
+  pysptk = callPackage ../development/python-modules/pysptk { };
 
-  pglast = callPackage ../development/python-modules/pglast { };
+  pysqlite = callPackage ../development/python-modules/pysqlite { };
 
-  pgsanity = callPackage ../development/python-modules/pgsanity { };
+  pysqueezebox = callPackage ../development/python-modules/pysqueezebox { };
 
-  pgspecial = callPackage ../development/python-modules/pgspecial { };
+  pysrim = callPackage ../development/python-modules/pysrim { };
 
-  pgpy = callPackage ../development/python-modules/pgpy { };
+  pysrt = callPackage ../development/python-modules/pysrt { };
 
-  pickleshare = callPackage ../development/python-modules/pickleshare { };
+  pyssim = callPackage ../development/python-modules/pyssim { };
 
-  picos = callPackage ../development/python-modules/picos { };
+  pystache = callPackage ../development/python-modules/pystache { };
 
-  piep = callPackage ../development/python-modules/piep { };
+  pystemd = callPackage ../development/python-modules/pystemd { systemd = pkgs.systemd; };
 
-  piexif = callPackage ../development/python-modules/piexif { };
+  PyStemmer = callPackage ../development/python-modules/pystemmer { };
 
-  pip = callPackage ../development/python-modules/pip { };
+  pystray = callPackage ../development/python-modules/pystray { };
 
-  pipx = callPackage ../development/python-modules/pipx { };
+  py_stringmatching = callPackage ../development/python-modules/py_stringmatching { };
 
-  pip-tools = callPackage ../development/python-modules/pip-tools {
-    git = pkgs.gitMinimal;
-    glibcLocales = pkgs.glibcLocales;
-  };
+  pystringtemplate = callPackage ../development/python-modules/stringtemplate { };
 
-  pipdate = callPackage ../development/python-modules/pipdate { };
+  pysvn = callPackage ../development/python-modules/pysvn { };
 
-  pika = callPackage ../development/python-modules/pika { };
+  pytado = callPackage ../development/python-modules/pytado { };
 
-  pika-pool = callPackage ../development/python-modules/pika-pool { };
+  pytaglib = callPackage ../development/python-modules/pytaglib { };
 
-  pikepdf = callPackage ../development/python-modules/pikepdf { };
+  pyte = callPackage ../development/python-modules/pyte { };
 
-  kmapper = callPackage ../development/python-modules/kmapper { };
+  pytelegrambotapi = callPackage ../development/python-modules/pyTelegramBotAPI { };
 
-  kmsxx = toPythonModule ((callPackage ../development/libraries/kmsxx {
-    inherit (pkgs.kmsxx) stdenv;
-    inherit (pkgs) pkgconfig;
-    withPython = true;
-  }).overrideAttrs (oldAttrs: {
-    name = "${python.libPrefix}-${pkgs.kmsxx.name}";
-  }));
+  pytesseract = callPackage ../development/python-modules/pytesseract { };
 
-  precis-i18n = callPackage ../development/python-modules/precis-i18n { };
+  # pytest>=6 is too new for most packages
+  pytest = if isPy3k then self.pytest_5 else self.pytest_4;
 
-  promise = callPackage ../development/python-modules/promise { };
+  pytest_4 = callPackage
+    ../development/python-modules/pytest/4.nix { # hypothesis tests require pytest that causes dependency cycle
+      hypothesis = self.hypothesis.override { doCheck = false; };
+    };
 
-  prox-tv = callPackage ../development/python-modules/prox-tv { };
+  pytest_5 = callPackage
+    ../development/python-modules/pytest/5.nix { # hypothesis tests require pytest that causes dependency cycle
+      hypothesis = self.hypothesis.override { doCheck = false; };
+    };
 
-  pvlib = callPackage ../development/python-modules/pvlib { };
+  pytest_6 =
+    callPackage ../development/python-modules/pytest { # hypothesis tests require pytest that causes dependency cycle
+      hypothesis = self.hypothesis.override { doCheck = false; };
+    };
 
-  pybase64 = callPackage ../development/python-modules/pybase64 { };
+  pytest-aiohttp = callPackage ../development/python-modules/pytest-aiohttp { };
 
-  pylibconfig2 = callPackage ../development/python-modules/pylibconfig2 { };
+  pytest-annotate = callPackage ../development/python-modules/pytest-annotate { };
 
-  pylibmc = callPackage ../development/python-modules/pylibmc {};
+  pytest-ansible = callPackage ../development/python-modules/pytest-ansible { };
 
-  pymetar = callPackage ../development/python-modules/pymetar { };
+  pytest-arraydiff = callPackage ../development/python-modules/pytest-arraydiff { };
 
-  pypubsub = callPackage ../development/python-modules/pypubsub { };
+  pytest-astropy = callPackage ../development/python-modules/pytest-astropy { };
 
-  pysftp = callPackage ../development/python-modules/pysftp { };
+  pytest-astropy-header = callPackage ../development/python-modules/pytest-astropy-header { };
 
-  soundfile = callPackage ../development/python-modules/soundfile { };
+  pytest-asyncio = callPackage ../development/python-modules/pytest-asyncio { };
 
-  pysoundfile = self.soundfile;  # Alias added 23-06-2019
+  pytest-bdd = callPackage ../development/python-modules/pytest-bdd { };
 
-  python-jenkins = callPackage ../development/python-modules/python-jenkins { };
+  pytest-benchmark = callPackage ../development/python-modules/pytest-benchmark { };
 
-  pystringtemplate = callPackage ../development/python-modules/stringtemplate { };
+  pytest-black = callPackage ../development/python-modules/pytest-black { };
 
-  pyviz-comms = callPackage ../development/python-modules/pyviz-comms { };
+  pytestcache = callPackage ../development/python-modules/pytestcache { };
 
-  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;
-  };
+  pytest-catchlog = callPackage ../development/python-modules/pytest-catchlog { };
 
-  pkgconfig = callPackage ../development/python-modules/pkgconfig {
-    inherit (pkgs) pkgconfig;
-  };
+  pytest-check = callPackage ../development/python-modules/pytest-check { };
 
-  plumbum = callPackage ../development/python-modules/plumbum { };
+  pytest-click = callPackage ../development/python-modules/pytest-click { };
 
-  polib = callPackage ../development/python-modules/polib {};
+  pytestcov = callPackage ../development/python-modules/pytest-cov { };
 
-  ponywhoosh = callPackage ../development/python-modules/ponywhoosh { };
+  pytest-cram = callPackage ../development/python-modules/pytest-cram { };
 
-  posix_ipc = callPackage ../development/python-modules/posix_ipc { };
+  pytest-datadir = callPackage ../development/python-modules/pytest-datadir { };
 
-  portend = callPackage ../development/python-modules/portend { };
+  pytest-datafiles = callPackage ../development/python-modules/pytest-datafiles { };
 
-  powerline = callPackage ../development/python-modules/powerline { };
+  pytest-dependency = callPackage ../development/python-modules/pytest-dependency { };
 
-  pox = callPackage ../development/python-modules/pox { };
+  pytest-django = callPackage ../development/python-modules/pytest-django { };
 
-  ppft = callPackage ../development/python-modules/ppft { };
+  pytest-doctestplus = callPackage ../development/python-modules/pytest-doctestplus { };
 
-  pproxy = callPackage ../development/python-modules/pproxy { };
+  pytest-env = callPackage ../development/python-modules/pytest-env { };
 
-  pq = callPackage ../development/python-modules/pq { };
+  pytest-expect = callPackage ../development/python-modules/pytest-expect { };
 
-  praw = if isPy3k then callPackage ../development/python-modules/praw { }
-    else callPackage ../development/python-modules/praw/6.3.nix { };
+  pytest-factoryboy = callPackage ../development/python-modules/pytest-factoryboy { };
 
-  prance = callPackage ../development/python-modules/prance { };
+  pytest-filter-subpackage = callPackage ../development/python-modules/pytest-filter-subpackage { };
 
-  prawcore = callPackage ../development/python-modules/prawcore { };
+  pytest-fixture-config = callPackage ../development/python-modules/pytest-fixture-config { };
 
-  premailer = callPackage ../development/python-modules/premailer { };
+  pytest-flake8 = callPackage ../development/python-modules/pytest-flake8 { };
 
-  prettytable = callPackage ../development/python-modules/prettytable { };
+  pytest-flakes = callPackage ../development/python-modules/pytest-flakes { };
 
-  property-manager = callPackage ../development/python-modules/property-manager { };
+  pytest-flask = callPackage ../development/python-modules/pytest-flask { };
 
-  prompt_toolkit = let
-    filename = if isPy3k then ../development/python-modules/prompt_toolkit else ../development/python-modules/prompt_toolkit/1.nix;
-  in callPackage filename { };
+  pytest-forked = callPackage ../development/python-modules/pytest-forked { };
 
-  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;
-  };
+  pytest-freezegun = callPackage ../development/python-modules/pytest-freezegun { };
 
-  psautohint = callPackage ../development/python-modules/psautohint { };
+  pytest-helpers-namespace = callPackage ../development/python-modules/pytest-helpers-namespace { };
 
-  psd-tools = callPackage ../development/python-modules/psd-tools { };
+  pytest-html = callPackage ../development/python-modules/pytest-html { };
 
-  psutil = callPackage ../development/python-modules/psutil { };
+  pytest-httpbin = callPackage ../development/python-modules/pytest-httpbin { };
 
-  psycopg2 = callPackage ../development/python-modules/psycopg2 {};
+  pytest-isort = callPackage ../development/python-modules/pytest-isort { };
 
-  ptpython = callPackage ../development/python-modules/ptpython {
-    prompt_toolkit = self.prompt_toolkit;
-  };
+  pytest-lazy-fixture = callPackage ../development/python-modules/pytest-lazy-fixture { };
 
-  ptable = callPackage ../development/python-modules/ptable { };
+  pytest-localserver = callPackage ../development/python-modules/pytest-localserver { };
 
-  publicsuffix = callPackage ../development/python-modules/publicsuffix {};
+  pytest-metadata = callPackage ../development/python-modules/pytest-metadata { };
 
-  publicsuffix2 = callPackage ../development/python-modules/publicsuffix2 {};
+  pytest-mock = if isPy3k then
+    callPackage ../development/python-modules/pytest-mock { }
+  else
+    callPackage ../development/python-modules/pytest-mock/2.nix { };
 
-  py = callPackage ../development/python-modules/py { };
+  pytest-mpl = callPackage ../development/python-modules/pytest-mpl { };
 
-  pyacoustid = callPackage ../development/python-modules/pyacoustid { };
+  pytest-mypy = callPackage ../development/python-modules/pytest-mypy { };
 
-  pyalgotrade = callPackage ../development/python-modules/pyalgotrade { };
+  pytest-openfiles = callPackage ../development/python-modules/pytest-openfiles { };
 
-  pyasn1 = callPackage ../development/python-modules/pyasn1 { };
+  pytest-ordering = callPackage ../development/python-modules/pytest-ordering { };
 
-  pyasn1-modules = callPackage ../development/python-modules/pyasn1-modules { };
+  pytest-pep257 = callPackage ../development/python-modules/pytest-pep257 { };
 
-  pyatmo = callPackage ../development/python-modules/pyatmo { };
+  pytestpep8 = callPackage ../development/python-modules/pytest-pep8 { };
 
-  pyaudio = callPackage ../development/python-modules/pyaudio { };
+  pytest-pylint = callPackage ../development/python-modules/pytest-pylint { };
 
-  pycoin = callPackage ../development/python-modules/pycoin { };
+  pytest-pythonpath = callPackage ../development/python-modules/pytest-pythonpath { };
 
-  pysam = callPackage ../development/python-modules/pysam { };
+  pytest-qt = callPackage ../development/python-modules/pytest-qt { };
 
-  pysaml2 = callPackage ../development/python-modules/pysaml2 {
-    inherit (pkgs) xmlsec;
-  };
+  pytestquickcheck = callPackage ../development/python-modules/pytest-quickcheck { };
 
-  python-pushover = callPackage ../development/python-modules/pushover {};
+  pytest-raisesregexp = callPackage ../development/python-modules/pytest-raisesregexp { };
 
-  pystemd = callPackage ../development/python-modules/pystemd { systemd = pkgs.systemd; };
+  pytest-randomly = callPackage ../development/python-modules/pytest-randomly { };
 
-  mongodict = callPackage ../development/python-modules/mongodict { };
+  pytest-random-order = callPackage ../development/python-modules/pytest-random-order { };
 
-  mongoengine = callPackage ../development/python-modules/mongoengine { };
+  pytest-relaxed = callPackage ../development/python-modules/pytest-relaxed { };
 
-  repoze_who = callPackage ../development/python-modules/repoze_who { };
+  pytest-remotedata = callPackage ../development/python-modules/pytest-remotedata { };
 
-  vobject = callPackage ../development/python-modules/vobject { };
+  pytest-repeat = callPackage ../development/python-modules/pytest-repeat { };
 
-  pycarddav = callPackage ../development/python-modules/pycarddav { };
+  pytest-rerunfailures = callPackage ../development/python-modules/pytest-rerunfailures { };
 
-  pygit2 = callPackage ../development/python-modules/pygit2 { };
+  pytestrunner = callPackage ../development/python-modules/pytestrunner { };
 
-  Babel = callPackage ../development/python-modules/Babel { };
+  pytest-sanic = callPackage ../development/python-modules/pytest-sanic { };
 
-  babelgladeextractor = callPackage ../development/python-modules/babelgladeextractor { };
+  pytest-server-fixtures = callPackage ../development/python-modules/pytest-server-fixtures { };
 
-  batchspawner = callPackage ../development/python-modules/batchspawner { };
+  pytest-services = callPackage ../development/python-modules/pytest-services { };
 
-  pybigwig = callPackage ../development/python-modules/pybigwig { };
+  pytest-shutil = callPackage ../development/python-modules/pytest-shutil { };
 
-  py2bit = callPackage ../development/python-modules/py2bit { };
+  pytest-socket = callPackage ../development/python-modules/pytest-socket { };
 
-  pyblock = callPackage ../development/python-modules/pyblock { };
+  pytest-subtesthack = callPackage ../development/python-modules/pytest-subtesthack { };
 
-  pyblosxom = callPackage ../development/python-modules/pyblosxom { };
+  pytest-sugar = callPackage ../development/python-modules/pytest-sugar { };
 
-  pycapnp = callPackage ../development/python-modules/pycapnp { };
+  pytest-testmon = callPackage ../development/python-modules/pytest-testmon { };
 
-  pycaption = callPackage ../development/python-modules/pycaption { };
+  pytest-timeout = callPackage ../development/python-modules/pytest-timeout { };
 
-  pycdio = callPackage ../development/python-modules/pycdio { };
+  pytest-tornado = callPackage ../development/python-modules/pytest-tornado { };
 
-  pycosat = callPackage ../development/python-modules/pycosat { };
+  pytest-tornasync = callPackage ../development/python-modules/pytest-tornasync { };
 
-  pycryptopp = callPackage ../development/python-modules/pycryptopp { };
+  pytest-trio = callPackage ../development/python-modules/pytest-trio { };
 
-  pyct = callPackage ../development/python-modules/pyct { };
+  pytest-twisted = callPackage ../development/python-modules/pytest-twisted { };
 
-  pycups = callPackage ../development/python-modules/pycups { };
+  pytest-virtualenv = callPackage ../development/python-modules/pytest-virtualenv { };
 
-  pycurl = callPackage ../development/python-modules/pycurl { };
+  pytest-warnings = callPackage ../development/python-modules/pytest-warnings { };
 
-  pycurl2 = callPackage ../development/python-modules/pycurl2 { };
+  pytest-watch = callPackage ../development/python-modules/pytest-watch { };
 
-  pydispatcher = callPackage ../development/python-modules/pydispatcher { };
+  pytest_xdist_1 = callPackage ../development/python-modules/pytest-xdist { };
 
-  pydot = callPackage ../development/python-modules/pydot {
-    inherit (pkgs) graphviz;
-  };
+  pytest_xdist_2 = callPackage ../development/python-modules/pytest-xdist/2.nix { };
 
-  pydot_ng = callPackage ../development/python-modules/pydot_ng { graphviz = pkgs.graphviz; };
+  pytest_xdist = self.pytest_xdist_1;
 
-  pyelftools = callPackage ../development/python-modules/pyelftools { };
+  pytest-xprocess = callPackage ../development/python-modules/pytest-xprocess { };
 
-  pyenchant = callPackage ../development/python-modules/pyenchant { enchant2 = pkgs.enchant2; };
+  pytest-xvfb = callPackage ../development/python-modules/pytest-xvfb { };
 
-  pyexcel = callPackage ../development/python-modules/pyexcel { };
+  python2-pythondialog = callPackage ../development/python-modules/python2-pythondialog { };
 
-  pyexcel-io = callPackage ../development/python-modules/pyexcel-io { };
+  python3-openid = callPackage ../development/python-modules/python3-openid { };
 
-  pyexcel-xls = callPackage ../development/python-modules/pyexcel-xls { };
+  python-axolotl = callPackage ../development/python-modules/python-axolotl { };
 
-  pyexcel-ods = callPackage ../development/python-modules/pyexcel-ods { };
+  python-axolotl-curve25519 = callPackage ../development/python-modules/python-axolotl-curve25519 { };
 
-  pyexcelerator = callPackage ../development/python-modules/pyexcelerator { };
+  python-baseconv = callPackage ../development/python-modules/python-baseconv { };
 
-  pyext = callPackage ../development/python-modules/pyext { };
+  python-binance = callPackage ../development/python-modules/python-binance { };
 
-  pyface = callPackage ../development/python-modules/pyface { };
+  python-constraint = callPackage ../development/python-modules/python-constraint { };
 
-  pyfantom = callPackage ../development/python-modules/pyfantom { };
+  python-ctags3 = callPackage ../development/python-modules/python-ctags3 { };
 
-  pyfma = callPackage ../development/python-modules/pyfma { };
+  python-daemon = callPackage ../development/python-modules/python-daemon { };
 
-  pyfftw = callPackage ../development/python-modules/pyfftw { };
+  python-dateutil = callPackage ../development/python-modules/dateutil { };
+  # Alias that we should deprecate
+  dateutil = self.python-dateutil;
 
-  pyfiglet = callPackage ../development/python-modules/pyfiglet { };
+  python-dbusmock = callPackage ../development/python-modules/python-dbusmock { };
 
-  pyflakes = callPackage ../development/python-modules/pyflakes { };
+  pythondialog = callPackage ../development/python-modules/pythondialog { };
 
-  pyftgl = callPackage ../development/python-modules/pyftgl { };
+  python-didl-lite = callPackage ../development/python-modules/python-didl-lite { };
 
-  pygeoip = callPackage ../development/python-modules/pygeoip {};
+  python-docx = callPackage ../development/python-modules/python-docx { };
 
-  PyGithub = callPackage ../development/python-modules/pyGithub {};
+  python-doi = callPackage ../development/python-modules/python-doi { };
 
-  pyglet = callPackage ../development/python-modules/pyglet {};
+  python-dotenv = callPackage ../development/python-modules/python-dotenv { };
 
-  pygments = if isPy3k then
-    callPackage ../development/python-modules/Pygments { }
-  else
-    callPackage ../development/python-modules/Pygments/2_5.nix { };
+  python-editor = callPackage ../development/python-modules/python-editor { };
 
-  pygpgme = callPackage ../development/python-modules/pygpgme { };
+  pythonefl = callPackage ../development/python-modules/python-efl { inherit (pkgs) pkgconfig; };
 
-  pyment = callPackage ../development/python-modules/pyment { };
+  python-engineio = callPackage ../development/python-modules/python-engineio { };
 
-  pylint = if isPy3k then callPackage ../development/python-modules/pylint { }
-           else callPackage ../development/python-modules/pylint/1.9.nix { };
+  python-etcd = callPackage ../development/python-modules/python-etcd { };
 
-  pylint-celery = callPackage ../development/python-modules/pylint-celery { };
+  python_fedora = callPackage ../development/python-modules/python_fedora { };
 
-  pylint-django = callPackage ../development/python-modules/pylint-django { };
+  python-fontconfig = callPackage ../development/python-modules/python-fontconfig { };
 
-  pylint-flask = callPackage ../development/python-modules/pylint-flask { };
+  python-forecastio = callPackage ../development/python-modules/python-forecastio { };
 
-  pylint-plugin-utils = callPackage ../development/python-modules/pylint-plugin-utils { };
+  python-gitlab = callPackage ../development/python-modules/python-gitlab { };
 
-  pymumble = callPackage ../development/python-modules/pymumble { };
+  python-gnupg = callPackage ../development/python-modules/python-gnupg { };
 
-  pyomo = callPackage ../development/python-modules/pyomo { };
+  python-hosts = callPackage ../development/python-modules/python-hosts { };
 
-  pyopencl = callPackage ../development/python-modules/pyopencl { };
+  python-igraph = callPackage ../development/python-modules/python-igraph {
+    pkgconfig = pkgs.pkgconfig;
+    igraph = pkgs.igraph;
+  };
 
-  pyosmium = callPackage ../development/python-modules/pyosmium { };
+  pythonIRClib = callPackage ../development/python-modules/pythonirclib { };
 
-  pyotp = callPackage ../development/python-modules/pyotp { };
+  pythonix = callPackage ../development/python-modules/pythonix { inherit (pkgs) meson pkgconfig; };
 
-  pyproj = callPackage ../development/python-modules/pyproj { };
+  python-jenkins = callPackage ../development/python-modules/python-jenkins { };
 
-  pyqrcode = callPackage ../development/python-modules/pyqrcode { };
+  python-jose = callPackage ../development/python-modules/python-jose { };
 
-  pyrabbit2 = callPackage ../development/python-modules/pyrabbit2 { };
+  python-json-logger = callPackage ../development/python-modules/python-json-logger { };
 
-  pyrad = callPackage ../development/python-modules/pyrad { };
+  python-jsonrpc-server = callPackage ../development/python-modules/python-jsonrpc-server { };
 
-  pyrr = callPackage ../development/python-modules/pyrr { };
+  python_keyczar = callPackage ../development/python-modules/python_keyczar { };
 
-  pysha3 = callPackage ../development/python-modules/pysha3 { };
+  python-language-server = callPackage ../development/python-modules/python-language-server { };
 
-  pyshp = callPackage ../development/python-modules/pyshp { };
+  python-ldap-test = callPackage ../development/python-modules/python-ldap-test { };
 
-  pysnow = callPackage ../development/python-modules/pysnow { };
+  python-Levenshtein = callPackage ../development/python-modules/python-levenshtein { };
 
-  pysmbc = callPackage ../development/python-modules/pysmbc {
-    inherit (pkgs) pkgconfig;
-  };
+  python-logstash = callPackage ../development/python-modules/python-logstash { };
 
-  pyspread = callPackage ../development/python-modules/pyspread { };
+  python-ly = callPackage ../development/python-modules/python-ly { };
 
-  pysparse = callPackage ../development/python-modules/pysparse { };
+  python-lz4 = callPackage ../development/python-modules/python-lz4 { };
 
-  pyupdate = callPackage ../development/python-modules/pyupdate {};
+  python-lzf = callPackage ../development/python-modules/python-lzf { };
 
-  pyvmomi = callPackage ../development/python-modules/pyvmomi { };
+  python-lzo = callPackage ../development/python-modules/python-lzo { inherit (pkgs) lzo; };
 
-  pyx = callPackage ../development/python-modules/pyx { };
+  python_magic = callPackage ../development/python-modules/python-magic { };
 
-  mmpython = callPackage ../development/python-modules/mmpython { };
+  pythonmagick = callPackage ../development/python-modules/pythonmagick { };
 
-  kaa-base = callPackage ../development/python-modules/kaa-base { };
+  python-mapnik = callPackage ../development/python-modules/python-mapnik { };
 
-  kaa-metadata = callPackage ../development/python-modules/kaa-metadata { };
+  python-markdown-math = callPackage ../development/python-modules/python-markdown-math { };
 
-  PyICU = callPackage ../development/python-modules/pyicu { };
+  python-miio = callPackage ../development/python-modules/python-miio { };
 
-  pyinputevent = callPackage ../development/python-modules/pyinputevent { };
+  python_mimeparse = callPackage ../development/python-modules/python_mimeparse { };
 
-  pyinotify = callPackage ../development/python-modules/pyinotify { };
+  python-mnist = callPackage ../development/python-modules/python-mnist { };
 
-  pyipp = callPackage ../development/python-modules/pyipp { };
+  python-mpv-jsonipc = callPackage ../development/python-modules/python-mpv-jsonipc { };
 
-  pyjwt = callPackage ../development/python-modules/pyjwt { };
+  python-multipart = callPackage ../development/python-modules/python-multipart { };
 
-  pykickstart = callPackage ../development/python-modules/pykickstart { };
+  pythonnet = callPackage
+    ../development/python-modules/pythonnet { # `mono >= 4.6` required to prevent crashes encountered with earlier versions.
+      mono = pkgs.mono4;
+      inherit (pkgs) pkgconfig;
+    };
 
-  pymemoize = callPackage ../development/python-modules/pymemoize { };
+  python-nomad = callPackage ../development/python-modules/python-nomad { };
 
-  pyobjc = if stdenv.isDarwin
-    then callPackage ../development/python-modules/pyobjc {}
-    else throw "pyobjc can only be built on Mac OS";
+  python-oauth2 = callPackage ../development/python-modules/python-oauth2 { };
 
-  pyodbc = callPackage ../development/python-modules/pyodbc { };
+  pythonocc-core =
+    toPythonModule (callPackage ../development/python-modules/pythonocc-core { inherit (pkgs.xorg) libX11; });
 
-  pyocr = callPackage ../development/python-modules/pyocr { };
+  python-olm = callPackage ../development/python-modules/python-olm { };
 
-  pyparsing = callPackage ../development/python-modules/pyparsing { };
+  python_openzwave = callPackage ../development/python-modules/python_openzwave { inherit (pkgs) pkgconfig; };
 
-  pyparted = callPackage ../development/python-modules/pyparted { };
+  python-otr = callPackage ../development/python-modules/python-otr { };
 
-  pyptlib = callPackage ../development/python-modules/pyptlib { };
+  python-packer = callPackage ../development/python-modules/python-packer { };
 
-  pyqtgraph = callPackage ../development/python-modules/pyqtgraph { };
+  python-pam = callPackage ../development/python-modules/python-pam { };
 
-  PyStemmer = callPackage ../development/python-modules/pystemmer {};
+  python-periphery = callPackage ../development/python-modules/python-periphery { };
 
-  # Missing expression?
-  # Pyro = callPackage ../development/python-modules/pyro { };
+  python-pipedrive = callPackage ../development/python-modules/python-pipedrive { };
 
-  pyrsistent = callPackage ../development/python-modules/pyrsistent { };
+  python-prctl = callPackage ../development/python-modules/python-prctl { };
 
-  PyRSS2Gen = callPackage ../development/python-modules/pyrss2gen { };
+  python-ptrace = callPackage ../development/python-modules/python-ptrace { };
 
-  pysmi = callPackage ../development/python-modules/pysmi { };
+  python-pushover = callPackage ../development/python-modules/pushover { };
 
-  pysnmp = callPackage ../development/python-modules/pysnmp { };
+  python-rapidjson = callPackage ../development/python-modules/python-rapidjson { };
 
-  pysocks = callPackage ../development/python-modules/pysocks { };
+  python-redis-lock = callPackage ../development/python-modules/python-redis-lock { };
 
-  python_fedora = callPackage ../development/python-modules/python_fedora {};
+  python-rtmidi = callPackage ../development/python-modules/python-rtmidi { };
 
-  python-simple-hipchat = callPackage ../development/python-modules/python-simple-hipchat {};
+  python-simple-hipchat = callPackage ../development/python-modules/python-simple-hipchat { };
   python_simple_hipchat = self.python-simple-hipchat;
 
-  scs = callPackage ../development/python-modules/scs { scs = pkgs.scs; };
-
-  python_keyczar = callPackage ../development/python-modules/python_keyczar { };
-
-  python-language-server = callPackage ../development/python-modules/python-language-server {};
+  python-slugify = callPackage ../development/python-modules/python-slugify { };
 
-  python-jsonrpc-server = callPackage ../development/python-modules/python-jsonrpc-server {};
+  python-snappy = callPackage ../development/python-modules/python-snappy { inherit (pkgs) snappy; };
 
-  pyls-black = callPackage ../development/python-modules/pyls-black {};
+  python-socketio = callPackage ../development/python-modules/python-socketio { };
 
-  pyls-isort = callPackage ../development/python-modules/pyls-isort {};
+  python-sql = callPackage ../development/python-modules/python-sql { };
 
-  pyls-mypy = callPackage ../development/python-modules/pyls-mypy {};
+  python_statsd = callPackage ../development/python-modules/python_statsd { };
 
-  pyu2f = callPackage ../development/python-modules/pyu2f { };
+  python-stdnum = callPackage ../development/python-modules/python-stdnum { };
 
-  pyudev = callPackage ../development/python-modules/pyudev {
-    inherit (pkgs) systemd;
-  };
+  python-sybase = callPackage ../development/python-modules/sybase { };
 
-  pynmea2 = callPackage ../development/python-modules/pynmea2 {};
+  python-telegram-bot = callPackage ../development/python-modules/python-telegram-bot { };
 
-  pynrrd = callPackage ../development/python-modules/pynrrd { };
+  python-toolbox = callPackage ../development/python-modules/python-toolbox { };
 
-  pynvml = callPackage ../development/python-modules/pynvml { };
+  python-twitter = callPackage ../development/python-modules/python-twitter { };
 
-  pynzb = callPackage ../development/python-modules/pynzb { };
+  python-u2flib-host = callPackage ../development/python-modules/python-u2flib-host { };
 
-  process-tests = callPackage ../development/python-modules/process-tests { };
+  python-uinput = callPackage ../development/python-modules/python-uinput { };
 
-  progressbar = callPackage ../development/python-modules/progressbar {};
+  python-unshare = callPackage ../development/python-modules/python-unshare { };
 
-  progressbar2 = callPackage ../development/python-modules/progressbar2 { };
+  python-utils = callPackage ../development/python-modules/python-utils { };
 
-  progressbar231 = callPackage ../development/python-modules/progressbar231 { };
+  python-vagrant = callPackage ../development/python-modules/python-vagrant { };
 
-  progressbar33 = callPackage ../development/python-modules/progressbar33 { };
+  python-vipaccess = callPackage ../development/python-modules/python-vipaccess { };
 
-  protego = callPackage ../development/python-modules/protego {};
+  python-vlc = callPackage ../development/python-modules/python-vlc { };
 
-  ldap = callPackage ../development/python-modules/ldap {
-    inherit (pkgs) openldap cyrus_sasl;
-  };
+  python-wifi = callPackage ../development/python-modules/python-wifi { };
 
-  ldap3 = callPackage ../development/python-modules/ldap3 {};
+  python-xmp-toolkit = callPackage ../development/python-modules/python-xmp-toolkit { };
 
-  ptest = callPackage ../development/python-modules/ptest { };
+  pytimeparse = callPackage ../development/python-modules/pytimeparse { };
 
-  ptyprocess = callPackage ../development/python-modules/ptyprocess { };
+  pytmx = callPackage ../development/python-modules/pytmx { };
 
-  pylibacl = callPackage ../development/python-modules/pylibacl { };
+  pytoml = callPackage ../development/python-modules/pytoml { };
 
-  pylibgen = throw "pylibgen is unmaintained upstreamed, and removed from nixpkgs"; # added 2020-06-20
+  pytools = callPackage ../development/python-modules/pytools { };
 
-  pyliblo = callPackage ../development/python-modules/pyliblo { };
+  pytorch = callPackage ../development/python-modules/pytorch { cudaSupport = pkgs.config.cudaSupport or false; };
 
-  pypcap = callPackage ../development/python-modules/pypcap {};
+  pytorch-bin = callPackage ../development/python-modules/pytorch/bin.nix {
+    inherit (pkgs.linuxPackages) nvidia_x11;
+  };
 
-  pyplatec = callPackage ../development/python-modules/pyplatec { };
+  pytorch-lightning = callPackage ../development/python-modules/pytorch-lightning { };
 
-  purepng = callPackage ../development/python-modules/purepng { };
+  pytorch-metric-learning = callPackage ../development/python-modules/pytorch-metric-learning { };
 
-  pyhocon = callPackage ../development/python-modules/pyhocon { };
+  pytorchWithCuda = self.pytorch.override { cudaSupport = true; };
 
-  pyjson5 = callPackage ../development/python-modules/pyjson5 {};
+  pytorchWithoutCuda = self.pytorch.override { cudaSupport = false; };
 
-  pymaging = callPackage ../development/python-modules/pymaging { };
+  pytrends = callPackage ../development/python-modules/pytrends { };
 
-  pymaging_png = callPackage ../development/python-modules/pymaging_png { };
+  pytricia = callPackage ../development/python-modules/pytricia { };
 
-  pyPdf = callPackage ../development/python-modules/pypdf { };
+  pytun = callPackage ../development/python-modules/pytun { };
 
-  pypdf2 = callPackage ../development/python-modules/pypdf2 { };
+  pytz = callPackage ../development/python-modules/pytz { };
 
-  pyopengl = callPackage ../development/python-modules/pyopengl { };
+  pytzdata = callPackage ../development/python-modules/pytzdata { };
 
-  pyopenssl = callPackage ../development/python-modules/pyopenssl { };
+  pyu2f = callPackage ../development/python-modules/pyu2f { };
 
-  pyquery = callPackage ../development/python-modules/pyquery { };
+  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";
+        };
+      });
+    };
 
-  pyreport = callPackage ../development/python-modules/pyreport { };
+  pyudev = callPackage ../development/python-modules/pyudev { inherit (pkgs) systemd; };
 
-  pyreadability = callPackage ../development/python-modules/pyreadability { };
+  pyunbound = callPackage ../tools/networking/unbound/python.nix { };
 
-  pyscss = callPackage ../development/python-modules/pyscss { };
+  pyunifi = callPackage ../development/python-modules/pyunifi { };
 
-  pyserial = callPackage ../development/python-modules/pyserial {};
+  pyupdate = callPackage ../development/python-modules/pyupdate { };
 
-  pyserial-asyncio = callPackage ../development/python-modules/pyserial-asyncio { };
+  pyusb = callPackage ../development/python-modules/pyusb { libusb1 = pkgs.libusb1; };
 
-  pysonos = callPackage ../development/python-modules/pysonos {};
+  pyutil = callPackage ../development/python-modules/pyutil { };
 
-  pymongo = callPackage ../development/python-modules/pymongo {};
+  pyutilib = callPackage ../development/python-modules/pyutilib { };
 
-  pyperclip = callPackage ../development/python-modules/pyperclip { };
+  pyuv = callPackage ../development/python-modules/pyuv { };
 
-  pysqlite = callPackage ../development/python-modules/pysqlite { };
+  py-vapid = callPackage ../development/python-modules/py-vapid { };
 
-  pysvn = callPackage ../development/python-modules/pysvn { };
+  pyvcd = callPackage ../development/python-modules/pyvcd { };
 
-  python-markdown-math = callPackage ../development/python-modules/python-markdown-math { };
+  pyvcf = callPackage ../development/python-modules/pyvcf { };
 
-  python-miio = callPackage ../development/python-modules/python-miio { };
+  pyviz-comms = callPackage ../development/python-modules/pyviz-comms { };
 
-  python-pipedrive = callPackage ../development/python-modules/python-pipedrive { };
+  pyvmomi = callPackage ../development/python-modules/pyvmomi { };
 
-  python-ptrace = callPackage ../development/python-modules/python-ptrace { };
+  pyvoro = callPackage ../development/python-modules/pyvoro { };
 
-  python-wifi = callPackage ../development/python-modules/python-wifi { };
+  pywal = callPackage ../development/python-modules/pywal { };
 
-  python-etcd = callPackage ../development/python-modules/python-etcd { };
+  pywatchman = callPackage ../development/python-modules/pywatchman { };
 
-  pythonnet = callPackage ../development/python-modules/pythonnet {
-    # `mono >= 4.6` required to prevent crashes encountered with earlier versions.
-    mono = pkgs.mono4;
-    inherit (pkgs) pkgconfig;
-  };
+  pywavelets = callPackage ../development/python-modules/pywavelets { };
 
-  pytz = callPackage ../development/python-modules/pytz { };
+  # We need "normal" libxml2 and not the python package by the same name.
+  pywbem = callPackage ../development/python-modules/pywbem { libxml2 = pkgs.libxml2; };
 
-  pytzdata = callPackage ../development/python-modules/pytzdata { };
+  PyWebDAV = callPackage ../development/python-modules/pywebdav { };
 
-  pyutil = callPackage ../development/python-modules/pyutil { };
+  pywebpush = callPackage ../development/python-modules/pywebpush { };
 
-  pyutilib = callPackage ../development/python-modules/pyutilib { };
+  pywebview = callPackage ../development/python-modules/pywebview { };
 
-  pywal = callPackage ../development/python-modules/pywal { };
+  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;
@@ -5895,68 +5859,49 @@ 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
-  };
-
-  radicale_infcloud = callPackage ../development/python-modules/radicale_infcloud {};
+  pyx = callPackage ../development/python-modules/pyx { };
 
-  recaptcha_client = callPackage ../development/python-modules/recaptcha_client { };
+  pyxdg = callPackage ../development/python-modules/pyxdg { };
 
-  rbtools = callPackage ../development/python-modules/rbtools { };
+  pyxl3 = callPackage ../development/python-modules/pyxl3 { };
 
-  rencode = callPackage ../development/python-modules/rencode { };
+  pyxml = disabledIf isPy3k (callPackage ../development/python-modules/pyxml { });
 
-  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;
-  };
+  qscintilla-qt5 = pkgs.libsForQt5.callPackage ../development/python-modules/qscintilla-qt5 { pythonPackages = self; };
 
   qscintilla = self.qscintilla-qt4;
 
@@ -5968,792 +5913,673 @@ in {
 
   qtpy = callPackage ../development/python-modules/qtpy { };
 
-  qreactor = callPackage ../development/python-modules/qreactor { };
-
-  quantities = callPackage ../development/python-modules/quantities { };
-
-  qutip = callPackage ../development/python-modules/qutip { };
-
-  rcssmin = callPackage ../development/python-modules/rcssmin { };
+  quamash = callPackage ../development/python-modules/quamash { };
 
-  recommonmark = callPackage ../development/python-modules/recommonmark { };
+  quandl = callPackage ../development/python-modules/quandl { };
 
-  redis = callPackage ../development/python-modules/redis { };
+  Quandl =
+    callPackage ../development/python-modules/quandl { }; # alias for an older package which did not support Python 3
 
-  rednose = callPackage ../development/python-modules/rednose { };
+  quantities = callPackage ../development/python-modules/quantities { };
 
-  reikna = callPackage ../development/python-modules/reikna { };
+  querystring_parser = callPackage ../development/python-modules/querystring-parser { };
 
-  repocheck = callPackage ../development/python-modules/repocheck { };
+  queuelib = callPackage ../development/python-modules/queuelib { };
 
-  restrictedpython = callPackage ../development/python-modules/restrictedpython { };
+  r2pipe = callPackage ../development/python-modules/r2pipe { };
 
-  restview = callPackage ../development/python-modules/restview { };
+  rabbitpy = callPackage ../development/python-modules/rabbitpy { };
 
-  readme = callPackage ../development/python-modules/readme { };
+  radicale_infcloud = callPackage ../development/python-modules/radicale_infcloud { };
 
-  readme_renderer = callPackage ../development/python-modules/readme_renderer { };
+  radio_beam = callPackage ../development/python-modules/radio_beam { };
 
-  readchar = callPackage ../development/python-modules/readchar { };
+  radish-bdd = callPackage ../development/python-modules/radish-bdd { };
 
-  retworkx = disabledIf (pythonOlder "3.5")
-    (toPythonModule (callPackage ../development/python-modules/retworkx { } ));
+  rainbowstream = callPackage ../development/python-modules/rainbowstream { };
 
-  rivet = disabledIf (!isPy3k) (toPythonModule (pkgs.rivet.override {
-    python3 = python;
-  }));
+  ramlfications = callPackage ../development/python-modules/ramlfications { };
 
-  ripser = callPackage ../development/python-modules/ripser { };
+  random2 = callPackage ../development/python-modules/random2 { };
 
-  rjsmin = callPackage ../development/python-modules/rjsmin { };
+  rarfile = callPackage ../development/python-modules/rarfile { inherit (pkgs) libarchive; };
 
-  pysolr = callPackage ../development/python-modules/pysolr { };
+  rasterio = callPackage ../development/python-modules/rasterio { gdal = pkgs.gdal_2; }; # gdal 3.0 not supported yet
 
-  geoalchemy2 = callPackage ../development/python-modules/geoalchemy2 { };
+  ratelimiter = callPackage ../development/python-modules/ratelimiter { };
 
-  geographiclib = callPackage ../development/python-modules/geographiclib { };
+  raven = callPackage ../development/python-modules/raven { };
 
-  geopy = if isPy3k
-    then callPackage ../development/python-modules/geopy { }
-    else callPackage ../development/python-modules/geopy/2.nix { };
+  rawkit = callPackage ../development/python-modules/rawkit { };
 
-  django-haystack = callPackage ../development/python-modules/django-haystack { };
+  rbtools = callPackage ../development/python-modules/rbtools { };
 
-  django-multiselectfield = callPackage ../development/python-modules/django-multiselectfield { };
+  rcssmin = callPackage ../development/python-modules/rcssmin { };
 
   rdflib = callPackage ../development/python-modules/rdflib { };
 
   rdflib-jsonld = callPackage ../development/python-modules/rdflib-jsonld { };
 
-  isodate = callPackage ../development/python-modules/isodate { };
-
-  owslib = callPackage ../development/python-modules/owslib { };
-
-  readthedocs-sphinx-ext = callPackage ../development/python-modules/readthedocs-sphinx-ext { };
-
-  requests-http-signature = callPackage ../development/python-modules/requests-http-signature { };
+  readchar = callPackage ../development/python-modules/readchar { };
 
-  requirements-detector = callPackage ../development/python-modules/requirements-detector { };
+  readme = callPackage ../development/python-modules/readme { };
 
-  resampy = callPackage ../development/python-modules/resampy { };
+  readme_renderer = callPackage ../development/python-modules/readme_renderer { };
 
-  restructuredtext_lint = callPackage ../development/python-modules/restructuredtext_lint { };
+  readthedocs-sphinx-ext = callPackage ../development/python-modules/readthedocs-sphinx-ext { };
 
-  retry = callPackage ../development/python-modules/retry { };
+  rebulk = callPackage ../development/python-modules/rebulk { };
 
-  robomachine = callPackage ../development/python-modules/robomachine { };
+  recaptcha_client = callPackage ../development/python-modules/recaptcha_client { };
 
-  robotframework = callPackage ../development/python-modules/robotframework { };
+  recommonmark = callPackage ../development/python-modules/recommonmark { };
 
-  robotframework-databaselibrary = callPackage ../development/python-modules/robotframework-databaselibrary { };
+  redis = callPackage ../development/python-modules/redis { };
 
-  robotframework-requests = callPackage ../development/python-modules/robotframework-requests { };
+  rednose = callPackage ../development/python-modules/rednose { };
 
-  robotframework-ride = callPackage ../development/python-modules/robotframework-ride { };
+  regex = callPackage ../development/python-modules/regex { };
 
-  robotframework-seleniumlibrary = callPackage ../development/python-modules/robotframework-seleniumlibrary { };
+  regional = callPackage ../development/python-modules/regional { };
 
-  robotframework-selenium2library = callPackage ../development/python-modules/robotframework-selenium2library { };
+  reikna = callPackage ../development/python-modules/reikna { };
 
-  robotframework-sshlibrary = callPackage ../development/python-modules/robotframework-sshlibrary { };
+  relatorio = callPackage ../development/python-modules/relatorio { };
 
-  robotframework-tools = callPackage ../development/python-modules/robotframework-tools { };
+  remotecv = callPackage ../development/python-modules/remotecv { };
 
-  robotstatuschecker = callPackage ../development/python-modules/robotstatuschecker { };
+  rencode = callPackage ../development/python-modules/rencode { };
 
-  robotsuite = callPackage ../development/python-modules/robotsuite { };
+  repeated_test = callPackage ../development/python-modules/repeated_test { };
 
-  serpent = callPackage ../development/python-modules/serpent { };
+  repocheck = callPackage ../development/python-modules/repocheck { };
 
-  selectors34 = callPackage ../development/python-modules/selectors34 { };
+  reportlab = callPackage ../development/python-modules/reportlab { };
 
-  Pyro4 = callPackage ../development/python-modules/pyro4 { };
+  repoze_lru = callPackage ../development/python-modules/repoze_lru { };
 
-  Pyro5 = callPackage ../development/python-modules/pyro5 { };
+  repoze_sphinx_autointerface = callPackage ../development/python-modules/repoze_sphinx_autointerface { };
 
-  rnc2rng = callPackage ../development/python-modules/rnc2rng { };
+  repoze_who = callPackage ../development/python-modules/repoze_who { };
 
-  rope = callPackage ../development/python-modules/rope { };
+  reproject = callPackage ../development/python-modules/reproject { };
 
-  ropper = callPackage ../development/python-modules/ropper { };
+  requests-aws4auth = callPackage ../development/python-modules/requests-aws4auth { };
 
-  rpkg = callPackage ../development/python-modules/rpkg {};
+  requests-cache = callPackage ../development/python-modules/requests-cache { };
 
-  rply = callPackage ../development/python-modules/rply {};
+  requests = callPackage ../development/python-modules/requests { };
 
-  rpm = disabledIf (!isPy3k) (toPythonModule (pkgs.rpm.override{ inherit python; }));
+  requests_download = callPackage ../development/python-modules/requests_download { };
 
-  rpmfluff = callPackage ../development/python-modules/rpmfluff {};
+  requestsexceptions = callPackage ../development/python-modules/requestsexceptions { };
 
-  rpy2 = if isPy3k
-    then callPackage ../development/python-modules/rpy2 { }
-    else callPackage ../development/python-modules/rpy2/2.nix { };
+  requests-file = callPackage ../development/python-modules/requests-file { };
 
-  rtslib = callPackage ../development/python-modules/rtslib {};
+  requests-http-signature = callPackage ../development/python-modules/requests-http-signature { };
 
-  Rtree = callPackage ../development/python-modules/Rtree { inherit (pkgs) libspatialindex; };
+  requests-kerberos = callPackage ../development/python-modules/requests-kerberos { };
 
-  typing = callPackage ../development/python-modules/typing { };
+  requests-mock = callPackage ../development/python-modules/requests-mock { };
 
-  typing-extensions = callPackage ../development/python-modules/typing-extensions { };
+  requests_ntlm = callPackage ../development/python-modules/requests_ntlm { };
 
-  typing-inspect = callPackage ../development/python-modules/typing-inspect { };
+  requests_oauthlib = callPackage ../development/python-modules/requests-oauthlib { };
 
-  typeguard = callPackage ../development/python-modules/typeguard { };
+  requests-toolbelt = callPackage ../development/python-modules/requests-toolbelt { };
 
-  typesentry = callPackage ../development/python-modules/typesentry { };
+  requests_toolbelt = self.requests-toolbelt; # Old attr, 2017-09-26
 
-  typesystem = callPackage ../development/python-modules/typesystem { };
+  requests-unixsocket = callPackage ../development/python-modules/requests-unixsocket { };
 
-  s3transfer = callPackage ../development/python-modules/s3transfer { };
+  requirements-detector = callPackage ../development/python-modules/requirements-detector { };
 
-  seqdiag = callPackage ../development/python-modules/seqdiag { };
+  resampy = callPackage ../development/python-modules/resampy { };
 
-  sequoia = disabledIf (isPyPy || !isPy3k) (toPythonModule (pkgs.sequoia.override {
-    pythonPackages = self;
-    pythonSupport = true;
-  }));
+  responses = callPackage ../development/python-modules/responses { };
 
-  safe = callPackage ../development/python-modules/safe { };
+  restrictedpython = callPackage ../development/python-modules/restrictedpython { };
 
-  safety = callPackage ../development/python-modules/safety { };
+  restructuredtext_lint = callPackage ../development/python-modules/restructuredtext_lint { };
 
-  sampledata = callPackage ../development/python-modules/sampledata { };
+  restview = callPackage ../development/python-modules/restview { };
 
-  sasmodels = callPackage ../development/python-modules/sasmodels { };
+  rethinkdb = callPackage ../development/python-modules/rethinkdb { };
 
-  scapy = callPackage ../development/python-modules/scapy { };
+  retry = callPackage ../development/python-modules/retry { };
 
-  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_;
+  retry_decorator = callPackage ../development/python-modules/retry_decorator { };
 
-  scipy_1_3 = self.scipy.overridePythonAttrs(oldAttrs: rec {
-    version = "1.3.3";
-    src = oldAttrs.src.override {
-      inherit version;
-      sha256 = "02iqb7ws7fw5fd1a83hx705pzrw1imj7z0bphjsl4bfvw254xgv4";
-    };
-    doCheck = false;
-    disabled = !isPy3k;
-  });
+  retrying = callPackage ../development/python-modules/retrying { };
 
-  scikitimage = callPackage ../development/python-modules/scikit-image { };
+  retworkx = disabledIf (pythonOlder "3.5") (toPythonModule (callPackage ../development/python-modules/retworkx { }));
 
-  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;
+  rfc3986 = callPackage ../development/python-modules/rfc3986 { };
 
-  scikit-bio = callPackage ../development/python-modules/scikit-bio { };
+  rfc3987 = callPackage ../development/python-modules/rfc3987 { };
 
-  scikit-build = callPackage ../development/python-modules/scikit-build { };
+  rfc6555 = callPackage ../development/python-modules/rfc6555 { };
 
-  scikits-odes = callPackage ../development/python-modules/scikits-odes { };
+  rfc7464 = callPackage ../development/python-modules/rfc7464 { };
 
-  scikit-optimize = callPackage ../development/python-modules/scikit-optimize { };
+  rhpl = disabledIf isPy3k (callPackage ../development/python-modules/rhpl { });
 
-  scikit-tda = callPackage ../development/python-modules/scikit-tda { };
+  rig = callPackage ../development/python-modules/rig { };
 
-  scikit-fmm = callPackage ../development/python-modules/scikit-fmm { };
+  ripser = callPackage ../development/python-modules/ripser { };
 
-  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
 
-  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 = if isPy3k then
-    callPackage ../development/python-modules/sphinxcontrib-websupport { }
+  rsa = if isPy3k then
+    callPackage ../development/python-modules/rsa { }
   else
-    callPackage ../development/python-modules/sphinxcontrib-websupport/1_1.nix { };
-
-  hieroglyph = callPackage ../development/python-modules/hieroglyph { };
-
-  hvplot = callPackage ../development/python-modules/hvplot { };
-
-  guzzle_sphinx_theme = callPackage ../development/python-modules/guzzle_sphinx_theme { };
-
-  sphinx-testing = callPackage ../development/python-modules/sphinx-testing { };
-
-  sphinxcontrib-applehelp = callPackage ../development/python-modules/sphinxcontrib-applehelp {};
-
-  sphinxcontrib-devhelp = callPackage ../development/python-modules/sphinxcontrib-devhelp {};
-
-  sphinxcontrib-fulltoc = callPackage ../development/python-modules/sphinxcontrib-fulltoc { };
-
-  sphinxcontrib-htmlhelp = callPackage ../development/python-modules/sphinxcontrib-htmlhelp {};
-
-  sphinxcontrib-jsmath = callPackage ../development/python-modules/sphinxcontrib-jsmath {};
-
-  sphinxcontrib-katex = callPackage ../development/python-modules/sphinxcontrib-katex { };
-
-  sphinxcontrib-qthelp = callPackage ../development/python-modules/sphinxcontrib-qthelp {};
-
-  sphinxcontrib-serializinghtml = callPackage ../development/python-modules/sphinxcontrib-serializinghtml {};
-
-  sphinxcontrib-bibtex = callPackage ../development/python-modules/sphinxcontrib-bibtex {};
+    callPackage ../development/python-modules/rsa/4_0.nix { };
 
-  sphinx-navtree = callPackage ../development/python-modules/sphinx-navtree {};
+  rtmidi-python = callPackage ../development/python-modules/rtmidi-python { };
 
-  sphinx-jinja = callPackage ../development/python-modules/sphinx-jinja { };
+  Rtree = callPackage ../development/python-modules/Rtree { inherit (pkgs) libspatialindex; };
 
-  splinter = callPackage ../development/python-modules/splinter { };
+  rtslib = callPackage ../development/python-modules/rtslib { };
 
-  spotipy = callPackage ../development/python-modules/spotipy { };
+  ruamel_base = callPackage ../development/python-modules/ruamel_base { };
 
-  sqlalchemy = callPackage ../development/python-modules/sqlalchemy { };
+  ruamel_ordereddict = callPackage ../development/python-modules/ruamel_ordereddict { };
 
-  sqlalchemy-citext = callPackage ../development/python-modules/sqlalchemy-citext { };
+  ruamel_yaml = callPackage ../development/python-modules/ruamel_yaml { };
 
-  sqlalchemy-continuum = callPackage ../development/python-modules/sqlalchemy-continuum { };
+  ruamel_yaml_clib = callPackage ../development/python-modules/ruamel_yaml_clib { };
 
-  sqlalchemy-i18n = callPackage ../development/python-modules/sqlalchemy-i18n { };
+  rubymarshal = callPackage ../development/python-modules/rubymarshal { };
 
-  sqlalchemy_migrate = callPackage ../development/python-modules/sqlalchemy-migrate { };
+  ruffus = callPackage ../development/python-modules/ruffus { };
 
-  sqlalchemy-utils = callPackage ../development/python-modules/sqlalchemy-utils { };
+  runsnakerun = callPackage ../development/python-modules/runsnakerun { };
 
-  sqlsoup = callPackage ../development/python-modules/sqlsoup { };
+  runway-python = callPackage ../development/python-modules/runway-python { };
 
-  staticjinja = callPackage ../development/python-modules/staticjinja { };
+  rx = callPackage ../development/python-modules/rx { };
 
-  statsmodels = callPackage ../development/python-modules/statsmodels { };
+  rxv = callPackage ../development/python-modules/rxv { };
 
-  strategies = callPackage ../development/python-modules/strategies { };
+  s2clientprotocol = callPackage ../development/python-modules/s2clientprotocol { };
 
-  stravalib = callPackage ../development/python-modules/stravalib { };
+  s3fs = callPackage ../development/python-modules/s3fs { };
 
-  streamz = callPackage ../development/python-modules/streamz { };
+  s3transfer = callPackage ../development/python-modules/s3transfer { };
 
-  structlog = callPackage ../development/python-modules/structlog { };
+  sabyenc3 = callPackage ../development/python-modules/sabyenc3 { };
 
-  stytra = callPackage ../development/python-modules/stytra { };
+  sabyenc = callPackage ../development/python-modules/sabyenc { };
 
-  sybil = callPackage ../development/python-modules/sybil { };
+  sacremoses = callPackage ../development/python-modules/sacremoses { };
 
-  # legacy alias
-  syncthing-gtk = pkgs.syncthing-gtk;
+  safe = callPackage ../development/python-modules/safe { };
 
-  systemd = callPackage ../development/python-modules/systemd {
-    inherit (pkgs) pkgconfig systemd;
-  };
+  safety = callPackage ../development/python-modules/safety { };
 
-  sysv_ipc = callPackage ../development/python-modules/sysv_ipc { };
+  salmon-mail = callPackage ../development/python-modules/salmon-mail { };
 
-  tabulate = callPackage ../development/python-modules/tabulate { };
+  sampledata = callPackage ../development/python-modules/sampledata { };
 
-  tadasets = callPackage ../development/python-modules/tadasets { };
+  samplerate = callPackage ../development/python-modules/samplerate { };
 
-  tasklib = callPackage ../development/python-modules/tasklib { };
+  samsungctl = callPackage ../development/python-modules/samsungctl { };
 
-  tatsu = callPackage ../development/python-modules/tatsu { };
+  samsungtvws = callPackage ../development/python-modules/samsungtvws { };
 
-  tbm-utils = callPackage ../development/python-modules/tbm-utils { };
+  sandboxlib = callPackage ../development/python-modules/sandboxlib { };
 
-  tempita = callPackage ../development/python-modules/tempita { };
+  sanic-auth = callPackage ../development/python-modules/sanic-auth { };
 
-  terminado = callPackage ../development/python-modules/terminado { };
+  sanic = callPackage ../development/python-modules/sanic { };
 
-  tess = callPackage ../development/python-modules/tess { };
+  sapi-python-client = callPackage ../development/python-modules/sapi-python-client { };
 
-  testresources = callPackage ../development/python-modules/testresources { };
+  sarge = callPackage ../development/python-modules/sarge { };
 
-  testtools = callPackage ../development/python-modules/testtools { };
+  sasmodels = callPackage ../development/python-modules/sasmodels { };
 
-  traitlets = callPackage ../development/python-modules/traitlets { };
+  scales = callPackage ../development/python-modules/scales { };
 
-  traittypes = callPackage ../development/python-modules/traittypes { };
+  scandir = callPackage ../development/python-modules/scandir { };
 
-  transitions = callPackage ../development/python-modules/transitions { };
+  scapy = callPackage ../development/python-modules/scapy { };
 
-  extras = callPackage ../development/python-modules/extras { };
+  schedule = callPackage ../development/python-modules/schedule { };
 
-  extension-helpers = callPackage ../development/python-modules/extension-helpers { };
+  schema = callPackage ../development/python-modules/schema { };
 
-  texttable = callPackage ../development/python-modules/texttable { };
+  scikit-bio = callPackage ../development/python-modules/scikit-bio { };
 
-  textwrap3 =  callPackage ../development/python-modules/textwrap3 { };
+  scikit-build = callPackage ../development/python-modules/scikit-build { };
 
-  tiledb = callPackage ../development/python-modules/tiledb {
-    inherit (pkgs) tiledb;
-  };
+  scikit-fmm = callPackage ../development/python-modules/scikit-fmm { };
 
-  timezonefinder = callPackage ../development/python-modules/timezonefinder { };
+  scikitimage = callPackage ../development/python-modules/scikit-image { };
 
-  tiros = callPackage ../development/python-modules/tiros { };
+  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;
 
-  tinydb = callPackage ../development/python-modules/tinydb { };
+  scikit-optimize = callPackage ../development/python-modules/scikit-optimize { };
 
-  tifffile = callPackage ../development/python-modules/tifffile { };
+  scikits-odes = callPackage ../development/python-modules/scikits-odes { };
 
-  tmdb3 = callPackage ../development/python-modules/tmdb3 { };
+  scikit-tda = callPackage ../development/python-modules/scikit-tda { };
 
-  toolz = callPackage ../development/python-modules/toolz { };
+  scipy_1_3 = self.scipy.overridePythonAttrs (oldAttrs: rec {
+    version = "1.3.3";
+    src = oldAttrs.src.override {
+      inherit version;
+      sha256 = "02iqb7ws7fw5fd1a83hx705pzrw1imj7z0bphjsl4bfvw254xgv4";
+    };
+    doCheck = false;
+    disabled = !isPy3k;
+  });
 
-  tox = callPackage ../development/python-modules/tox { };
+  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_;
 
-  tqdm = callPackage ../development/python-modules/tqdm { };
+  scour = callPackage ../development/python-modules/scour { };
 
-  trytond = callPackage ../development/python-modules/trytond { };
+  scp = callPackage ../development/python-modules/scp { };
 
-  smmap = callPackage ../development/python-modules/smmap { };
+  scrapy = callPackage ../development/python-modules/scrapy { };
 
-  smmap2 = throw "smmap2 has been deprecated, use smmap instead."; # added 2020-03-14
+  scrapy-deltafetch = callPackage ../development/python-modules/scrapy-deltafetch { };
 
-  transaction = callPackage ../development/python-modules/transaction { };
+  scrapy-fake-useragent = callPackage ../development/python-modules/scrapy-fake-useragent { };
 
-  TurboCheetah = callPackage ../development/python-modules/TurboCheetah { };
+  scrapy-splash = callPackage ../development/python-modules/scrapy-splash { };
 
-  tweepy = callPackage ../development/python-modules/tweepy { };
+  screeninfo = callPackage ../development/python-modules/screeninfo { };
 
-  twill = callPackage ../development/python-modules/twill { };
+  scripttest = callPackage ../development/python-modules/scripttest { };
 
-  twine = callPackage ../development/python-modules/twine { };
+  scs = callPackage ../development/python-modules/scs { scs = pkgs.scs; };
 
-  twisted = callPackage ../development/python-modules/twisted { };
+  sdnotify = callPackage ../development/python-modules/sdnotify { };
 
-  txtorcon = callPackage ../development/python-modules/txtorcon { };
+  seaborn = if isPy3k then
+    callPackage ../development/python-modules/seaborn { }
+  else
+    callPackage ../development/python-modules/seaborn/0.9.1.nix { };
 
-  txdbus = callPackage ../development/python-modules/txdbus { };
+  seabreeze = callPackage ../development/python-modules/seabreeze { };
 
-  tzlocal = callPackage ../development/python-modules/tzlocal { };
+  secp256k1 = callPackage ../development/python-modules/secp256k1 { inherit (pkgs) secp256k1 pkgconfig; };
 
-  u-msgpack-python = callPackage ../development/python-modules/u-msgpack-python { };
+  secretstorage = if isPy3k then
+    callPackage ../development/python-modules/secretstorage { }
+  else
+    callPackage ../development/python-modules/secretstorage/2.nix { };
 
-  ua-parser = callPackage ../development/python-modules/ua-parser { };
+  secure = callPackage ../development/python-modules/secure { };
 
-  uarray = callPackage ../development/python-modules/uarray { };
+  seekpath = callPackage ../development/python-modules/seekpath { };
 
-  ueberzug = callPackage ../development/python-modules/ueberzug {
-    inherit (pkgs.xorg) libX11 libXext;
-  };
+  selectors2 = callPackage ../development/python-modules/selectors2 { };
 
-  ukpostcodeparser = callPackage ../development/python-modules/ukpostcodeparser { };
+  selectors34 = callPackage ../development/python-modules/selectors34 { };
 
-  umap-learn = callPackage ../development/python-modules/umap-learn { };
+  selenium = callPackage ../development/python-modules/selenium { };
 
-  umemcache = callPackage ../development/python-modules/umemcache {};
+  semantic = callPackage ../development/python-modules/semantic { };
 
-  uritools = callPackage ../development/python-modules/uritools { };
+  semantic-version = callPackage ../development/python-modules/semantic-version { };
 
-  update_checker = callPackage ../development/python-modules/update_checker {};
+  semver = callPackage ../development/python-modules/semver { };
 
-  update-copyright = callPackage ../development/python-modules/update-copyright {};
+  send2trash = callPackage ../development/python-modules/send2trash { };
 
-  update-dotdee = callPackage ../development/python-modules/update-dotdee { };
+  sentencepiece = callPackage ../development/python-modules/sentencepiece { inherit (pkgs) sentencepiece pkgconfig; };
 
-  uritemplate = callPackage ../development/python-modules/uritemplate { };
+  sentinel = callPackage ../development/python-modules/sentinel { };
 
-  uproot = callPackage ../development/python-modules/uproot {};
+  sentry-sdk = callPackage ../development/python-modules/sentry-sdk { };
 
-  uproot-methods = callPackage ../development/python-modules/uproot-methods { };
+  sepaxml = callPackage ../development/python-modules/sepaxml { };
 
-  urlgrabber = callPackage ../development/python-modules/urlgrabber {};
+  seqdiag = callPackage ../development/python-modules/seqdiag { };
 
-  urwid = callPackage ../development/python-modules/urwid {};
+  sequoia = disabledIf (isPyPy || !isPy3k) (toPythonModule (pkgs.sequoia.override {
+    pythonPackages = self;
+    pythonSupport = true;
+  }));
 
-  user-agents = callPackage ../development/python-modules/user-agents { };
+  serpent = callPackage ../development/python-modules/serpent { };
 
-  variants = callPackage ../development/python-modules/variants { };
+  serpy = callPackage ../development/python-modules/serpy { };
 
-  verboselogs = callPackage ../development/python-modules/verboselogs { };
+  serverlessrepo = callPackage ../development/python-modules/serverlessrepo { };
 
-  vega_datasets = callPackage ../development/python-modules/vega_datasets { };
+  serversyncstorage = callPackage ../development/python-modules/serversyncstorage { };
 
-  vertica-python = callPackage ../development/python-modules/vertica-python { };
+  service-identity = callPackage ../development/python-modules/service_identity { };
 
-  virtkey = callPackage ../development/python-modules/virtkey {
-    inherit (pkgs) pkgconfig;
-  };
+  setproctitle = callPackage ../development/python-modules/setproctitle { };
 
-  virtual-display = callPackage ../development/python-modules/virtual-display { };
+  setuptoolsDarcs = callPackage ../development/python-modules/setuptoolsdarcs { };
 
-  virtualenv = callPackage ../development/python-modules/virtualenv { };
+  setuptools-git = callPackage ../development/python-modules/setuptools-git { };
 
-  vispy = callPackage ../development/python-modules/vispy { };
+  setuptools-lint = callPackage ../development/python-modules/setuptools-lint { };
 
-  vsts = callPackage ../development/python-modules/vsts { };
+  setuptools_scm = callPackage ../development/python-modules/setuptools_scm { };
 
-  vsts-cd-manager = callPackage ../development/python-modules/vsts-cd-manager { };
+  setuptools-scm-git-archive = callPackage ../development/python-modules/setuptools-scm-git-archive { };
 
-  python-vlc = callPackage ../development/python-modules/python-vlc { };
+  setuptoolsTrial = callPackage ../development/python-modules/setuptoolstrial { };
 
-  weasyprint = callPackage ../development/python-modules/weasyprint { };
+  sexpdata = callPackage ../development/python-modules/sexpdata { };
 
-  webassets = callPackage ../development/python-modules/webassets { };
+  sfepy = callPackage ../development/python-modules/sfepy { };
 
-  webcolors = callPackage ../development/python-modules/webcolors { };
+  shamir-mnemonic = callPackage ../development/python-modules/shamir-mnemonic { };
 
-  webencodings = callPackage ../development/python-modules/webencodings { };
+  shapely = callPackage ../development/python-modules/shapely { };
 
-  websockets = callPackage ../development/python-modules/websockets { };
+  sharedmem = callPackage ../development/python-modules/sharedmem { };
 
-  Wand = callPackage ../development/python-modules/Wand { };
+  sh = callPackage ../development/python-modules/sh { };
 
-  wcwidth = callPackage ../development/python-modules/wcwidth { };
+  shellingham = callPackage ../development/python-modules/shellingham { };
 
-  werkzeug = callPackage ../development/python-modules/werkzeug { };
+  shiboken2 =
+    toPythonModule (callPackage ../development/python-modules/shiboken2 { inherit (pkgs) cmake qt5 llvmPackages; });
 
-  wheel = callPackage ../development/python-modules/wheel { };
+  shippai = callPackage ../development/python-modules/shippai { };
 
-  widgetsnbextension = callPackage ../development/python-modules/widgetsnbextension { };
+  shodan = callPackage ../development/python-modules/shodan { };
 
-  wordfreq = callPackage ../development/python-modules/wordfreq { };
+  shortuuid = callPackage ../development/python-modules/shortuuid { };
 
-  magic-wormhole = callPackage ../development/python-modules/magic-wormhole { };
+  shouldbe = callPackage ../development/python-modules/shouldbe { };
 
-  magic-wormhole-mailbox-server = callPackage ../development/python-modules/magic-wormhole-mailbox-server { };
+  should-dsl = callPackage ../development/python-modules/should-dsl { };
 
-  magic-wormhole-transit-relay = callPackage ../development/python-modules/magic-wormhole-transit-relay { };
+  showit = callPackage ../development/python-modules/showit { };
 
-  wxPython = self.wxPython30;
+  shutilwhich = callPackage ../development/python-modules/shutilwhich { };
 
-  wxPython30 = callPackage ../development/python-modules/wxPython/3.0.nix {
-    wxGTK = pkgs.wxGTK30;
-    inherit (pkgs) pkgconfig;
-  };
+  sievelib = callPackage ../development/python-modules/sievelib { };
 
-  wxPython_4_0 = callPackage ../development/python-modules/wxPython/4.0.nix {
-    inherit (pkgs) pkgconfig;
-    wxGTK = pkgs.wxGTK30.override { withGtk2 = false; withWebKit = true; };
-  };
+  signedjson = callPackage ../development/python-modules/signedjson { };
 
-  xml2rfc = callPackage ../development/python-modules/xml2rfc { };
+  sigtools = callPackage ../development/python-modules/sigtools { };
 
-  xmlschema = callPackage ../development/python-modules/xmlschema { };
+  simanneal = callPackage ../development/python-modules/simanneal { };
 
-  xmltodict = callPackage ../development/python-modules/xmltodict { };
+  simpleai = callPackage ../development/python-modules/simpleai { };
 
-  xarray = callPackage ../development/python-modules/xarray { };
+  simpleaudio = callPackage ../development/python-modules/simpleaudio { };
 
-  xapian = callPackage ../development/python-modules/xapian { xapian = pkgs.xapian; };
+  simplebayes = callPackage ../development/python-modules/simplebayes { };
 
-  xapp = callPackage ../development/python-modules/xapp {
-    inherit (pkgs) gtk3 gobject-introspection polkit;
-    inherit (pkgs.cinnamon) xapps;
-  };
+  simpleeval = callPackage ../development/python-modules/simpleeval { };
 
-  xlwt = callPackage ../development/python-modules/xlwt { };
+  simplefix = callPackage ../development/python-modules/simplefix { };
 
-  xxhash = callPackage ../development/python-modules/xxhash { };
+  simplegeneric = callPackage ../development/python-modules/simplegeneric { };
 
-  ydiff = callPackage ../development/python-modules/ydiff { };
+  simplejson = callPackage ../development/python-modules/simplejson { };
 
-  yoda = toPythonModule (pkgs.yoda.override {
-    inherit python;
-  });
+  simplekml = callPackage ../development/python-modules/simplekml { };
 
-  youtube-dl = callPackage ../tools/misc/youtube-dl {};
+  simpleparse = callPackage ../development/python-modules/simpleparse { };
 
-  youtube-dl-light = callPackage ../tools/misc/youtube-dl {
-    ffmpegSupport = false;
-    phantomjsSupport = false;
-  };
+  simple-salesforce = callPackage ../development/python-modules/simple-salesforce { };
 
-  zconfig = callPackage ../development/python-modules/zconfig { };
+  simple-websocket-server = callPackage ../development/python-modules/simple-websocket-server { };
 
-  zc_lockfile = callPackage ../development/python-modules/zc_lockfile { };
+  simpy = callPackage ../development/python-modules/simpy { };
 
-  zerorpc = callPackage ../development/python-modules/zerorpc { };
+  singledispatch = callPackage ../development/python-modules/singledispatch { };
 
-  zimports = callPackage ../development/python-modules/zimports { };
+  sip = callPackage ../development/python-modules/sip { };
 
-  zipstream = callPackage ../development/python-modules/zipstream { };
+  sipsimple = callPackage ../development/python-modules/sipsimple { };
 
-  zodb = callPackage ../development/python-modules/zodb {};
+  six = callPackage ../development/python-modules/six { };
 
-  zodbpickle = callPackage ../development/python-modules/zodbpickle {};
+  skein = callPackage ../development/python-modules/skein { };
 
-  BTrees = callPackage ../development/python-modules/btrees {};
+  sklearn-deap = callPackage ../development/python-modules/sklearn-deap { };
 
-  persistent = callPackage ../development/python-modules/persistent {};
+  skorch = callPackage ../development/python-modules/skorch { };
 
-  persim = callPackage ../development/python-modules/persim { };
+  slackclient = callPackage ../development/python-modules/slackclient { };
 
-  xdot = callPackage ../development/python-modules/xdot { };
+  sleekxmpp = callPackage ../development/python-modules/sleekxmpp { };
 
-  zetup = callPackage ../development/python-modules/zetup { };
+  slicedimage = callPackage ../development/python-modules/slicedimage { };
 
-  routes = callPackage ../development/python-modules/routes { };
+  slicerator = callPackage ../development/python-modules/slicerator { };
 
-  rpyc = callPackage ../development/python-modules/rpyc { };
+  slimit = callPackage ../development/python-modules/slimit { };
 
-  rsa = if isPy3k then
-    callPackage ../development/python-modules/rsa { }
-  else
-    callPackage ../development/python-modules/rsa/4_0.nix { };
+  slither-analyzer = callPackage ../development/python-modules/slither-analyzer { };
 
-  squaremap = callPackage ../development/python-modules/squaremap { };
+  slixmpp = callPackage ../development/python-modules/slixmpp { inherit (pkgs) gnupg; };
 
-  ruamel_base = callPackage ../development/python-modules/ruamel_base { };
+  slob = callPackage ../development/python-modules/slob { };
 
-  ruamel_ordereddict = callPackage ../development/python-modules/ruamel_ordereddict { };
+  slowaes = callPackage ../development/python-modules/slowaes { };
 
-  ruamel_yaml = callPackage ../development/python-modules/ruamel_yaml { };
+  sly = callPackage ../development/python-modules/sly { };
 
-  ruamel_yaml_clib = callPackage ../development/python-modules/ruamel_yaml_clib { };
+  smartdc = callPackage ../development/python-modules/smartdc { };
 
-  ruffus = callPackage ../development/python-modules/ruffus { };
+  smart_open = callPackage ../development/python-modules/smart_open { };
 
-  runsnakerun = callPackage ../development/python-modules/runsnakerun { };
+  smartypants = callPackage ../development/python-modules/smartypants { };
 
-  pysendfile = callPackage ../development/python-modules/pysendfile { };
+  smmap2 = throw "smmap2 has been deprecated, use smmap instead."; # added 2020-03-14
 
-  pyxl3 = callPackage ../development/python-modules/pyxl3 { };
+  smmap = callPackage ../development/python-modules/smmap { };
 
-  qpid-python = callPackage ../development/python-modules/qpid-python { };
+  smpplib = callPackage ../development/python-modules/smpplib { };
 
-  xattr = callPackage ../development/python-modules/xattr { };
+  smugline = callPackage ../development/python-modules/smugline { };
 
-  scripttest = callPackage ../development/python-modules/scripttest { };
+  smugpy = callPackage ../development/python-modules/smugpy { };
 
-  setuptoolsDarcs = callPackage ../development/python-modules/setuptoolsdarcs { };
+  snakebite = callPackage ../development/python-modules/snakebite { };
 
-  setuptoolsTrial = callPackage ../development/python-modules/setuptoolstrial { };
+  snakeviz = callPackage ../development/python-modules/snakeviz { };
 
-  simplebayes = callPackage ../development/python-modules/simplebayes { };
+  snapcast = callPackage ../development/python-modules/snapcast { };
 
-  shortuuid = callPackage ../development/python-modules/shortuuid { };
+  snapperGUI = callPackage ../development/python-modules/snappergui { };
 
-  shouldbe = callPackage ../development/python-modules/shouldbe { };
+  sniffio = callPackage ../development/python-modules/sniffio { };
 
-  simpleparse = callPackage ../development/python-modules/simpleparse { };
+  snitun = callPackage ../development/python-modules/snitun { };
 
-  slob = callPackage ../development/python-modules/slob { };
+  snowballstemmer = callPackage ../development/python-modules/snowballstemmer { };
 
-  slowaes = callPackage ../development/python-modules/slowaes { };
+  snowflake-connector-python = callPackage ../development/python-modules/snowflake-connector-python { };
 
-  sqlite3dbm = callPackage ../development/python-modules/sqlite3dbm { };
+  snowflake-sqlalchemy = callPackage ../development/python-modules/snowflake-sqlalchemy { };
 
-  sqlitedict = callPackage ../development/python-modules/sqlitedict { };
+  snscrape = callPackage ../development/python-modules/snscrape { };
 
-  sqlobject = callPackage ../development/python-modules/sqlobject { };
+  snug = callPackage ../development/python-modules/snug { };
 
-  sqlmap = callPackage ../development/python-modules/sqlmap { };
+  snuggs = callPackage ../development/python-modules/snuggs { };
 
-  pgpdump = callPackage ../development/python-modules/pgpdump { };
+  soapysdr = toPythonModule (pkgs.soapysdr.override {
+    python = self.python;
+    usePython = true;
+  });
 
-  spambayes = callPackage ../development/python-modules/spambayes { };
+  soapysdr-with-plugins = toPythonModule (pkgs.soapysdr-with-plugins.override {
+    python = self.python;
+    usePython = true;
+  });
 
-  shapely = callPackage ../development/python-modules/shapely { };
+  sockjs-tornado = callPackage ../development/python-modules/sockjs-tornado { };
 
-  sharedmem = callPackage ../development/python-modules/sharedmem { };
+  socksipy-branch = callPackage ../development/python-modules/socksipy-branch { };
 
   soco = callPackage ../development/python-modules/soco { };
 
-  sopel = callPackage ../development/python-modules/sopel { };
-
-  sounddevice = callPackage ../development/python-modules/sounddevice { };
-
-  stevedore = callPackage ../development/python-modules/stevedore {};
-
-  svglib = callPackage ../development/python-modules/svglib { };
-
-  text-unidecode = callPackage ../development/python-modules/text-unidecode { };
-
-  Theano = callPackage ../development/python-modules/Theano rec {
-    cudaSupport = pkgs.config.cudaSupport or false;
-    cudnnSupport = cudaSupport;
-    inherit (pkgs.linuxPackages) nvidia_x11;
-  };
-
-  TheanoWithoutCuda = self.Theano.override {
-    cudaSupport = false;
-    cudnnSupport = false;
-  };
-
-  TheanoWithCuda = self.Theano.override {
-    cudaSupport = true;
-    cudnnSupport = true;
-  };
-
-  thespian = callPackage ../development/python-modules/thespian { };
-
-  tidylib = callPackage ../development/python-modules/pytidylib { };
-
-  tilestache = callPackage ../development/python-modules/tilestache { };
-
-  timelib = callPackage ../development/python-modules/timelib { };
-
-  timeout-decorator = callPackage ../development/python-modules/timeout-decorator { };
+  softlayer = callPackage ../development/python-modules/softlayer { };
 
-  pid = callPackage ../development/python-modules/pid { };
+  solo-python = disabledIf (!pythonAtLeast "3.6") (callPackage ../development/python-modules/solo-python { });
 
-  pip2nix = callPackage ../development/python-modules/pip2nix { };
+  somajo = callPackage ../development/python-modules/somajo { };
 
-  pychef = callPackage ../development/python-modules/pychef { };
+  sopel = callPackage ../development/python-modules/sopel { };
 
-  pydns =
-    let
-      py3 = callPackage ../development/python-modules/py3dns { };
+  sorl_thumbnail = callPackage ../development/python-modules/sorl_thumbnail { };
 
-      py2 = callPackage ../development/python-modules/pydns { };
-    in if isPy3k then py3 else py2;
+  sortedcollections = callPackage ../development/python-modules/sortedcollections { };
 
-  python-daemon = callPackage ../development/python-modules/python-daemon { };
+  sortedcontainers = callPackage ../development/python-modules/sortedcontainers { };
 
-  python-vagrant = callPackage ../development/python-modules/python-vagrant { };
+  sounddevice = callPackage ../development/python-modules/sounddevice { };
 
-  symengine = callPackage ../development/python-modules/symengine {
-    symengine = pkgs.symengine;
-  };
+  soundfile = callPackage ../development/python-modules/soundfile { };
 
-  sympy = if isPy3k then
-    callPackage ../development/python-modules/sympy { }
+  soupsieve = if isPy3k then
+    callPackage ../development/python-modules/soupsieve { }
   else
-    callPackage ../development/python-modules/sympy/1_5.nix { };
-
-  pilkit = callPackage ../development/python-modules/pilkit { };
-
-  clint = callPackage ../development/python-modules/clint { };
-
-  argh = callPackage ../development/python-modules/argh { };
+    callPackage ../development/python-modules/soupsieve/1.nix { };
 
-  nose_progressive = callPackage ../development/python-modules/nose_progressive { };
+  spacy = callPackage ../development/python-modules/spacy { };
 
-  blessings = callPackage ../development/python-modules/blessings { };
+  spacy_models = callPackage ../development/python-modules/spacy/models.nix { };
 
-  secretstorage = if isPy3k
-    then callPackage ../development/python-modules/secretstorage { }
-    else callPackage ../development/python-modules/secretstorage/2.nix { };
+  spake2 = callPackage ../development/python-modules/spake2 { };
 
-  secure = callPackage ../development/python-modules/secure { };
+  spambayes = callPackage ../development/python-modules/spambayes { };
 
-  semantic = callPackage ../development/python-modules/semantic { };
+  spark_parser = callPackage ../development/python-modules/spark_parser { };
 
-  sandboxlib = callPackage ../development/python-modules/sandboxlib { };
+  SPARQLWrapper = callPackage ../development/python-modules/sparqlwrapper { };
 
-  sanic = callPackage ../development/python-modules/sanic { };
+  sparse = callPackage ../development/python-modules/sparse { };
 
-  scales = callPackage ../development/python-modules/scales { };
+  speaklater = callPackage ../development/python-modules/speaklater { };
 
-  secp256k1 = callPackage ../development/python-modules/secp256k1 {
-    inherit (pkgs) secp256k1 pkgconfig;
-  };
+  spectral-cube = callPackage ../development/python-modules/spectral-cube { };
 
-  semantic-version = callPackage ../development/python-modules/semantic-version { };
+  speedtest-cli = callPackage ../development/python-modules/speedtest-cli { };
 
-  sexpdata = callPackage ../development/python-modules/sexpdata { };
+  spglib = callPackage ../development/python-modules/spglib { };
 
-  sh = callPackage ../development/python-modules/sh { };
+  sphfile = callPackage ../development/python-modules/sphfile { };
 
-  sipsimple = callPackage ../development/python-modules/sipsimple { };
+  sphinxcontrib-applehelp = callPackage ../development/python-modules/sphinxcontrib-applehelp { };
 
-  six = callPackage ../development/python-modules/six { };
+  sphinxcontrib-bibtex = callPackage ../development/python-modules/sphinxcontrib-bibtex { };
 
-  smartdc = callPackage ../development/python-modules/smartdc { };
+  sphinxcontrib-blockdiag = callPackage ../development/python-modules/sphinxcontrib-blockdiag { };
 
-  smpplib = callPackage ../development/python-modules/smpplib { };
+  sphinxcontrib-devhelp = callPackage ../development/python-modules/sphinxcontrib-devhelp { };
 
-  socksipy-branch = callPackage ../development/python-modules/socksipy-branch { };
+  sphinxcontrib-fulltoc = callPackage ../development/python-modules/sphinxcontrib-fulltoc { };
 
-  sockjs-tornado = callPackage ../development/python-modules/sockjs-tornado { };
+  sphinxcontrib-htmlhelp = callPackage ../development/python-modules/sphinxcontrib-htmlhelp { };
 
-  sorl_thumbnail = callPackage ../development/python-modules/sorl_thumbnail { };
+  sphinxcontrib_httpdomain = callPackage ../development/python-modules/sphinxcontrib_httpdomain { };
 
-  soupsieve = if isPy3k then
-    callPackage ../development/python-modules/soupsieve { }
-  else
-    callPackage ../development/python-modules/soupsieve/1.nix { };
+  sphinxcontrib-jsmath = callPackage ../development/python-modules/sphinxcontrib-jsmath { };
 
-  sphinx_rtd_theme = callPackage ../development/python-modules/sphinx_rtd_theme { };
+  sphinxcontrib-katex = callPackage ../development/python-modules/sphinxcontrib-katex { };
 
-  sphinxcontrib-blockdiag = callPackage ../development/python-modules/sphinxcontrib-blockdiag { };
+  sphinxcontrib_newsfeed = callPackage ../development/python-modules/sphinxcontrib_newsfeed { };
 
   sphinxcontrib-openapi = callPackage ../development/python-modules/sphinxcontrib-openapi { };
 
-  sphinxcontrib_httpdomain = callPackage ../development/python-modules/sphinxcontrib_httpdomain { };
+  sphinxcontrib_plantuml =
+    callPackage ../development/python-modules/sphinxcontrib_plantuml { inherit (pkgs) plantuml; };
 
-  sphinxcontrib_newsfeed = callPackage ../development/python-modules/sphinxcontrib_newsfeed { };
+  sphinxcontrib-qthelp = callPackage ../development/python-modules/sphinxcontrib-qthelp { };
 
-  sphinxcontrib_plantuml = callPackage ../development/python-modules/sphinxcontrib_plantuml {
-    inherit (pkgs) plantuml;
-  };
+  sphinxcontrib-serializinghtml = callPackage ../development/python-modules/sphinxcontrib-serializinghtml { };
 
   sphinxcontrib-spelling = callPackage ../development/python-modules/sphinxcontrib-spelling { };
 
@@ -6761,1150 +6587,1105 @@ in {
     texLive = pkgs.texlive.combine { inherit (pkgs.texlive) scheme-small standalone pgfplots; };
   };
 
-  sphinx_pypi_upload = callPackage ../development/python-modules/sphinx_pypi_upload { };
-
-  Pweave = callPackage ../development/python-modules/pweave { };
-
-  SQLAlchemy-ImageAttach = callPackage ../development/python-modules/sqlalchemy-imageattach { };
-
-  sqlparse = callPackage ../development/python-modules/sqlparse { };
-
-  python_statsd = callPackage ../development/python-modules/python_statsd { };
-
-  skein = callPackage ../development/python-modules/skein { };
-
-  stompclient = callPackage ../development/python-modules/stompclient { };
-
-  subdownloader = callPackage ../development/python-modules/subdownloader { };
+  sphinxcontrib-websupport = if isPy3k then
+    callPackage ../development/python-modules/sphinxcontrib-websupport { }
+  else
+    callPackage ../development/python-modules/sphinxcontrib-websupport/1_1.nix { };
 
-  subunit = callPackage ../development/python-modules/subunit {
-    inherit (pkgs) subunit pkg-config cppunit check;
-  };
+  sphinx = if isPy3k then
+    callPackage ../development/python-modules/sphinx { }
+  else
+    callPackage ../development/python-modules/sphinx/2.nix { };
 
-  sure = callPackage ../development/python-modules/sure { };
+  sphinx-jinja = callPackage ../development/python-modules/sphinx-jinja { };
 
-  svgwrite = callPackage ../development/python-modules/svgwrite { };
+  sphinx-navtree = callPackage ../development/python-modules/sphinx-navtree { };
 
-  swagger-spec-validator = callPackage ../development/python-modules/swagger-spec-validator { };
+  sphinx_pypi_upload = callPackage ../development/python-modules/sphinx_pypi_upload { };
 
-  openapi-spec-validator = callPackage ../development/python-modules/openapi-spec-validator { };
+  sphinx_rtd_theme = callPackage ../development/python-modules/sphinx_rtd_theme { };
 
-  freezegun = callPackage ../development/python-modules/freezegun { };
+  sphinx-testing = callPackage ../development/python-modules/sphinx-testing { };
 
-  taskw = callPackage ../development/python-modules/taskw { };
+  spidev = callPackage ../development/python-modules/spidev { };
 
-  telethon = callPackage ../development/python-modules/telethon { };
+  splinter = callPackage ../development/python-modules/splinter { };
 
-  telethon-session-sqlalchemy = callPackage ../development/python-modules/telethon-session-sqlalchemy { };
+  spotipy = callPackage ../development/python-modules/spotipy { };
 
-  terminaltables = callPackage ../development/python-modules/terminaltables { };
+  spyder = callPackage ../development/python-modules/spyder { };
+  spyder_3 = callPackage ../development/python-modules/spyder/3.nix { };
 
-  test-tube = callPackage ../development/python-modules/test-tube { };
+  spyder-kernels = callPackage ../development/python-modules/spyder-kernels { };
+  spyder-kernels_0_5 = callPackage ../development/python-modules/spyder-kernels/0.x.nix { };
 
-  testpath = callPackage ../development/python-modules/testpath { };
+  sqlalchemy = callPackage ../development/python-modules/sqlalchemy { };
 
-  testrepository = callPackage ../development/python-modules/testrepository { };
+  sqlalchemy-citext = callPackage ../development/python-modules/sqlalchemy-citext { };
 
-  testscenarios = callPackage ../development/python-modules/testscenarios { };
+  sqlalchemy-continuum = callPackage ../development/python-modules/sqlalchemy-continuum { };
 
-  python_mimeparse = callPackage ../development/python-modules/python_mimeparse { };
+  sqlalchemy-i18n = callPackage ../development/python-modules/sqlalchemy-i18n { };
 
-  # 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; };
+  SQLAlchemy-ImageAttach = callPackage ../development/python-modules/sqlalchemy-imageattach { };
 
-  tlslite-ng = callPackage ../development/python-modules/tlslite-ng { };
+  sqlalchemy_migrate = callPackage ../development/python-modules/sqlalchemy-migrate { };
 
-  qrcode = callPackage ../development/python-modules/qrcode { };
+  sqlalchemy-utils = callPackage ../development/python-modules/sqlalchemy-utils { };
 
-  traits = callPackage ../development/python-modules/traits { };
+  sqlite3dbm = callPackage ../development/python-modules/sqlite3dbm { };
 
-  transmissionrpc = callPackage ../development/python-modules/transmissionrpc { };
+  sqlitedict = callPackage ../development/python-modules/sqlitedict { };
 
-  eggdeps = callPackage ../development/python-modules/eggdeps { };
+  sqlmap = callPackage ../development/python-modules/sqlmap { };
 
-  twiggy = callPackage ../development/python-modules/twiggy { };
+  sqlobject = callPackage ../development/python-modules/sqlobject { };
 
-  twitter = callPackage ../development/python-modules/twitter { };
+  sqlparse = callPackage ../development/python-modules/sqlparse { };
 
-  twitter-common-collections = callPackage ../development/python-modules/twitter-common-collections { };
+  sqlsoup = callPackage ../development/python-modules/sqlsoup { };
 
-  twitter-common-confluence = callPackage ../development/python-modules/twitter-common-confluence { };
+  squaremap = callPackage ../development/python-modules/squaremap { };
 
-  twitter-common-dirutil = callPackage ../development/python-modules/twitter-common-dirutil { };
+  srp = callPackage ../development/python-modules/srp { };
 
-  twitter-common-lang = callPackage ../development/python-modules/twitter-common-lang { };
+  srptools = callPackage ../development/python-modules/srptools { };
 
-  twitter-common-log = callPackage ../development/python-modules/twitter-common-log { };
+  srsly = callPackage ../development/python-modules/srsly { };
 
-  twitter-common-options = callPackage ../development/python-modules/twitter-common-options { };
+  srvlookup = callPackage ../development/python-modules/srvlookup { };
 
-  python-twitter = callPackage ../development/python-modules/python-twitter { };
+  ssdeep = callPackage ../development/python-modules/ssdeep { };
 
-  umalqurra = callPackage ../development/python-modules/umalqurra { };
+  ssdp = callPackage ../development/python-modules/ssdp { };
 
-  unicodecsv = callPackage ../development/python-modules/unicodecsv { };
+  sseclient = callPackage ../development/python-modules/sseclient { };
 
-  unicodedata2 = callPackage ../development/python-modules/unicodedata2 { };
+  sshpubkeys = callPackage ../development/python-modules/sshpubkeys { };
 
-  unicode-slugify = callPackage ../development/python-modules/unicode-slugify { };
+  sshtunnel = callPackage ../development/python-modules/sshtunnel { };
 
-  unidiff = callPackage ../development/python-modules/unidiff { };
+  sslib = callPackage ../development/python-modules/sslib { };
 
-  units = callPackage ../development/python-modules/units { };
+  sslyze = callPackage ../development/python-modules/sslyze { };
 
-  unittest-data-provider = callPackage ../development/python-modules/unittest-data-provider { };
+  starfish = callPackage ../development/python-modules/starfish { };
 
-  unittest2 = callPackage ../development/python-modules/unittest2 { };
+  starlette = callPackage ../development/python-modules/starlette { };
 
-  unittest-xml-reporting = callPackage ../development/python-modules/unittest-xml-reporting { };
+  staticjinja = callPackage ../development/python-modules/staticjinja { };
 
-  untangle = callPackage ../development/python-modules/untangle { };
+  statistics = callPackage ../development/python-modules/statistics { };
 
-  traceback2 = callPackage ../development/python-modules/traceback2 { };
+  statsd = callPackage ../development/python-modules/statsd { };
 
-  trackpy = callPackage ../development/python-modules/trackpy { };
+  statsmodels = callPackage ../development/python-modules/statsmodels { };
 
-  linecache2 = callPackage ../development/python-modules/linecache2 { };
+  stem = callPackage ../development/python-modules/stem { };
 
-  upass = callPackage ../development/python-modules/upass { };
+  stevedore = callPackage ../development/python-modules/stevedore { };
 
-  uptime = callPackage ../development/python-modules/uptime { };
+  stm32loader = callPackage ../development/python-modules/stm32loader { };
 
-  urwidtrees = callPackage ../development/python-modules/urwidtrees { };
+  stompclient = callPackage ../development/python-modules/stompclient { };
 
-  pyuv = callPackage ../development/python-modules/pyuv { };
+  strategies = callPackage ../development/python-modules/strategies { };
 
-  virtualenv-clone = callPackage ../development/python-modules/virtualenv-clone { };
+  stravalib = callPackage ../development/python-modules/stravalib { };
 
-  virtualenvwrapper = callPackage ../development/python-modules/virtualenvwrapper { };
+  streamz = callPackage ../development/python-modules/streamz { };
 
-  vmprof = callPackage ../development/python-modules/vmprof { };
+  strict-rfc3339 = callPackage ../development/python-modules/strict-rfc3339 { };
 
-  vultr = callPackage ../development/python-modules/vultr { };
+  strictyaml = callPackage ../development/python-modules/strictyaml { };
 
-  vulture = callPackage ../development/python-modules/vulture { };
+  stringcase = callPackage ../development/python-modules/stringcase { };
 
-  wadllib = callPackage ../development/python-modules/wadllib { };
+  stripe = callPackage ../development/python-modules/stripe { };
 
-  waitress = callPackage ../development/python-modules/waitress { };
+  structlog = callPackage ../development/python-modules/structlog { };
 
-  waitress-django = callPackage ../development/python-modules/waitress-django { };
+  stumpy = callPackage ../development/python-modules/stumpy { };
 
-  web = callPackage ../development/python-modules/web { };
+  stups-cli-support = callPackage ../development/python-modules/stups-cli-support { };
 
-  webob = callPackage ../development/python-modules/webob { };
+  stups-fullstop = callPackage ../development/python-modules/stups-fullstop { };
 
-  websockify = callPackage ../development/python-modules/websockify { };
+  stups-pierone = callPackage ../development/python-modules/stups-pierone { };
 
-  webtest = callPackage ../development/python-modules/webtest { };
+  stups-tokens = callPackage ../development/python-modules/stups-tokens { };
 
-  wsgiproxy2 = callPackage ../development/python-modules/wsgiproxy2 { };
+  stups-zign = callPackage ../development/python-modules/stups-zign { };
 
-  wsgitools = callPackage ../development/python-modules/wsgitools { };
+  stytra = callPackage ../development/python-modules/stytra { };
 
-  wurlitzer = callPackage ../development/python-modules/wurlitzer { };
+  subdownloader = callPackage ../development/python-modules/subdownloader { };
 
-  xcaplib = callPackage ../development/python-modules/xcaplib { };
+  subliminal = callPackage ../development/python-modules/subliminal { };
 
-  xlib = callPackage ../development/python-modules/xlib { };
+  subprocess32 = callPackage ../development/python-modules/subprocess32 { };
 
-  yappi = callPackage ../development/python-modules/yappi { };
+  subunit = callPackage ../development/python-modules/subunit { inherit (pkgs) subunit pkg-config cppunit check; };
 
-  zbase32 = callPackage ../development/python-modules/zbase32 { };
+  suds = callPackage ../development/python-modules/suds { };
 
-  zdaemon = callPackage ../development/python-modules/zdaemon { };
+  suds-jurko = callPackage ../development/python-modules/suds-jurko { };
 
-  zfec = callPackage ../development/python-modules/zfec { };
+  sumo = callPackage ../development/python-modules/sumo { };
 
-  zha-quirks = callPackage ../development/python-modules/zha-quirks { };
+  sunpy = callPackage ../development/python-modules/sunpy { };
 
-  zipp = if pythonOlder "3.6" then
-    callPackage ../development/python-modules/zipp/1.nix { }
-  else
-    callPackage ../development/python-modules/zipp { };
+  supervise_api = callPackage ../development/python-modules/supervise_api { };
 
-  zope_broken = callPackage ../development/python-modules/zope_broken { };
+  supervisor = callPackage ../development/python-modules/supervisor { };
 
-  zope_component = callPackage ../development/python-modules/zope_component { };
+  sure = callPackage ../development/python-modules/sure { };
 
-  zope_configuration = callPackage ../development/python-modules/zope_configuration { };
+  suseapi = callPackage ../development/python-modules/suseapi { };
 
-  zope_contenttype = callPackage ../development/python-modules/zope_contenttype { };
+  svg2tikz = callPackage ../development/python-modules/svg2tikz { };
 
-  zope-deferredimport = callPackage ../development/python-modules/zope-deferredimport { };
+  svglib = callPackage ../development/python-modules/svglib { };
 
-  zope_dottedname = callPackage ../development/python-modules/zope_dottedname { };
+  svg-path = callPackage ../development/python-modules/svg-path { };
 
-  zope_event = callPackage ../development/python-modules/zope_event { };
+  svgwrite = callPackage ../development/python-modules/svgwrite { };
 
-  zope_exceptions = callPackage ../development/python-modules/zope_exceptions { };
+  swagger-spec-validator = callPackage ../development/python-modules/swagger-spec-validator { };
 
-  zope_filerepresentation = callPackage ../development/python-modules/zope_filerepresentation { };
+  swagger-ui-bundle = callPackage ../development/python-modules/swagger-ui-bundle { };
 
-  zope-hookable = callPackage ../development/python-modules/zope-hookable { };
+  sybil = callPackage ../development/python-modules/sybil { };
 
-  zope_i18n = callPackage ../development/python-modules/zope_i18n { };
+  symengine = callPackage ../development/python-modules/symengine { symengine = pkgs.symengine; };
 
-  zope_i18nmessageid = callPackage ../development/python-modules/zope_i18nmessageid { };
+  sympy = if isPy3k then
+    callPackage ../development/python-modules/sympy { }
+  else
+    callPackage ../development/python-modules/sympy/1_5.nix { };
 
-  zope_lifecycleevent = callPackage ../development/python-modules/zope_lifecycleevent { };
+  systemd = callPackage ../development/python-modules/systemd { inherit (pkgs) pkgconfig systemd; };
 
-  zope_location = callPackage ../development/python-modules/zope_location { };
+  sysv_ipc = callPackage ../development/python-modules/sysv_ipc { };
 
-  zope_proxy = callPackage ../development/python-modules/zope_proxy { };
+  tableaudocumentapi = callPackage ../development/python-modules/tableaudocumentapi { };
 
-  zope_schema = callPackage ../development/python-modules/zope_schema { };
+  tables = if isPy3k then
+    callPackage ../development/python-modules/tables { hdf5 = pkgs.hdf5.override { zlib = pkgs.zlib; }; }
+  else
+    callPackage ../development/python-modules/tables/3.5.nix { hdf5 = pkgs.hdf5.override { zlib = pkgs.zlib; }; };
 
-  zope_size = callPackage ../development/python-modules/zope_size { };
+  tablib = callPackage ../development/python-modules/tablib { };
 
-  zope_testing = callPackage ../development/python-modules/zope_testing { };
+  tabulate = callPackage ../development/python-modules/tabulate { };
 
-  zope_testrunner = callPackage ../development/python-modules/zope_testrunner { };
+  tadasets = callPackage ../development/python-modules/tadasets { };
 
-  zope_interface = callPackage ../development/python-modules/zope_interface { };
+  tag-expressions = callPackage ../development/python-modules/tag-expressions { };
 
-  zopfli = callPackage ../development/python-modules/zopfli { };
+  tarman = callPackage ../development/python-modules/tarman { };
 
-  hgsvn = callPackage ../development/python-modules/hgsvn { };
+  tasklib = callPackage ../development/python-modules/tasklib { };
 
-  cliapp = callPackage ../development/python-modules/cliapp { };
+  taskw = callPackage ../development/python-modules/taskw { };
 
-  cmdtest = callPackage ../development/python-modules/cmdtest { };
+  tatsu = callPackage ../development/python-modules/tatsu { };
 
-  tornado = if isPy3k then
-    callPackage ../development/python-modules/tornado { }
-  else
-    callPackage ../development/python-modules/tornado/5.nix { };
+  tblib = callPackage ../development/python-modules/tblib { };
 
-  # Used by circus and grab-site, 2020-08-29
-  tornado_4 = callPackage ../development/python-modules/tornado/4.nix { };
+  tbm-utils = callPackage ../development/python-modules/tbm-utils { };
 
-  # Used by luigi, 2020-08-29
-  tornado_5 = callPackage ../development/python-modules/tornado/5.nix { };
+  telegram = callPackage ../development/python-modules/telegram { };
 
-  tokenlib = callPackage ../development/python-modules/tokenlib { };
+  telethon = callPackage ../development/python-modules/telethon { };
 
-  tunigo = callPackage ../development/python-modules/tunigo { };
+  telethon-session-sqlalchemy = callPackage ../development/python-modules/telethon-session-sqlalchemy { };
 
-  tarman = callPackage ../development/python-modules/tarman { };
+  tempita = callPackage ../development/python-modules/tempita { };
 
-  libarchive = self.python-libarchive; # The latter is the name upstream uses
+  tempora = callPackage ../development/python-modules/tempora { };
 
-  python-libarchive = callPackage ../development/python-modules/python-libarchive { };
+  tenacity = callPackage ../development/python-modules/tenacity { };
 
-  python-logstash = callPackage ../development/python-modules/python-logstash { };
+  tensorboardx = callPackage ../development/python-modules/tensorboardx { };
 
-  libarchive-c = callPackage ../development/python-modules/libarchive-c {
-    inherit (pkgs) libarchive;
+  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;
   };
 
-  libasyncns = callPackage ../development/python-modules/libasyncns {
-    inherit (pkgs) libasyncns pkgconfig;
+  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;
   };
 
-  pybrowserid = callPackage ../development/python-modules/pybrowserid { };
+  tensorflow-bin = self.tensorflow-bin_1;
 
-  pyzmq = callPackage ../development/python-modules/pyzmq { };
+  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;
+  };
 
-  testfixtures = callPackage ../development/python-modules/testfixtures {};
+  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;
+  };
 
-  tissue = callPackage ../development/python-modules/tissue { };
+  tensorflow-build = self.tensorflow-build_1;
 
-  titlecase = callPackage ../development/python-modules/titlecase { };
+  tensorflow-estimator_1 = callPackage ../development/python-modules/tensorflow-estimator/1 { };
 
-  tracing = callPackage ../development/python-modules/tracing { };
+  tensorflow-estimator_2 = callPackage ../development/python-modules/tensorflow-estimator/2 { };
 
-  traitsui = callPackage ../development/python-modules/traitsui { };
+  tensorflow-estimator = self.tensorflow-estimator_1;
 
-  translationstring = callPackage ../development/python-modules/translationstring { };
+  tensorflow-probability = callPackage ../development/python-modules/tensorflow-probability { };
 
-  ttystatus = callPackage ../development/python-modules/ttystatus { };
+  tensorflow = self.tensorflow_1;
+  tensorflow_1 = self.tensorflow-build_1;
+  tensorflow_2 = self.tensorflow-build_2;
 
-  larch = callPackage ../development/python-modules/larch { };
+  tensorflow-tensorboard_1 = callPackage ../development/python-modules/tensorflow-tensorboard/1 { };
 
-  websocket_client = callPackage ../development/python-modules/websocket_client { };
+  tensorflow-tensorboard_2 = callPackage ../development/python-modules/tensorflow-tensorboard/2 { };
 
-  webhelpers = callPackage ../development/python-modules/webhelpers { };
+  tensorflow-tensorboard = self.tensorflow-tensorboard_1;
 
-  whichcraft = callPackage ../development/python-modules/whichcraft { };
+  tensorflowWithCuda = self.tensorflow.override { cudaSupport = true; };
 
-  whisper = callPackage ../development/python-modules/whisper { };
+  tensorflowWithoutCuda = self.tensorflow.override { cudaSupport = false; };
 
-  worldengine = callPackage ../development/python-modules/worldengine { };
+  tensorly = callPackage ../development/python-modules/tensorly { };
 
-  carbon = callPackage ../development/python-modules/carbon { };
+  termcolor = callPackage ../development/python-modules/termcolor { };
 
-  ujson = if isPy27
-    then callPackage ../development/python-modules/ujson/2.nix { }
-    else callPackage ../development/python-modules/ujson { };
+  terminado = callPackage ../development/python-modules/terminado { };
 
-  unidecode = callPackage ../development/python-modules/unidecode {};
+  terminaltables = callPackage ../development/python-modules/terminaltables { };
 
-  pyusb = callPackage ../development/python-modules/pyusb { libusb1 = pkgs.libusb1; };
+  termstyle = callPackage ../development/python-modules/termstyle { };
 
-  BlinkStick = callPackage ../development/python-modules/blinkstick { };
+  tess = callPackage ../development/python-modules/tess { };
 
-  usbtmc = callPackage ../development/python-modules/usbtmc {};
+  tesserocr = callPackage ../development/python-modules/tesserocr { };
 
-  txgithub = callPackage ../development/python-modules/txgithub { };
+  testfixtures = callPackage ../development/python-modules/testfixtures { };
 
-  txrequests = callPackage ../development/python-modules/txrequests { };
+  testpath = callPackage ../development/python-modules/testpath { };
 
-  txamqp = callPackage ../development/python-modules/txamqp { };
+  testrepository = callPackage ../development/python-modules/testrepository { };
 
-  versiontools = callPackage ../development/python-modules/versiontools { };
+  testresources = callPackage ../development/python-modules/testresources { };
 
-  veryprettytable = callPackage ../development/python-modules/veryprettytable { };
+  testscenarios = callPackage ../development/python-modules/testscenarios { };
 
-  graphite-web = callPackage ../development/python-modules/graphite-web { };
+  testtools = callPackage ../development/python-modules/testtools { };
 
-  graphite_api = callPackage ../development/python-modules/graphite-api { };
+  test-tube = callPackage ../development/python-modules/test-tube { };
 
-  graphite_beacon = callPackage ../development/python-modules/graphite_beacon { };
+  textacy = callPackage ../development/python-modules/textacy { };
 
-  graph_nets = callPackage ../development/python-modules/graph_nets { };
+  texttable = callPackage ../development/python-modules/texttable { };
 
-  graspy = callPackage ../development/python-modules/graspy { };
+  text-unidecode = callPackage ../development/python-modules/text-unidecode { };
 
-  influxgraph = callPackage ../development/python-modules/influxgraph { };
+  textwrap3 = callPackage ../development/python-modules/textwrap3 { };
 
-  pyspotify = callPackage ../development/python-modules/pyspotify { };
+  tflearn = callPackage ../development/python-modules/tflearn { };
 
-  pykka = callPackage ../development/python-modules/pykka { };
+  Theano = callPackage ../development/python-modules/Theano rec {
+    cudaSupport = pkgs.config.cudaSupport or false;
+    cudnnSupport = cudaSupport;
+    inherit (pkgs.linuxPackages) nvidia_x11;
+  };
 
-  ws4py = callPackage ../development/python-modules/ws4py {};
+  TheanoWithCuda = self.Theano.override {
+    cudaSupport = true;
+    cudnnSupport = true;
+  };
 
-  gdata = callPackage ../development/python-modules/gdata { };
+  TheanoWithoutCuda = self.Theano.override {
+    cudaSupport = false;
+    cudnnSupport = false;
+  };
 
-  IMAPClient = callPackage ../development/python-modules/imapclient { };
+  thespian = callPackage ../development/python-modules/thespian { };
 
-  Logbook = callPackage ../development/python-modules/Logbook { };
+  thinc = callPackage ../development/python-modules/thinc { };
 
-  libversion = callPackage ../development/python-modules/libversion {
-    inherit (pkgs) libversion pkgconfig;
-  };
+  threadpool = callPackage ../development/python-modules/threadpool { };
 
-  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;
-  });
+  threadpoolctl = callPackage ../development/python-modules/threadpoolctl { };
 
-  rpdb = callPackage ../development/python-modules/rpdb { };
+  thrift = callPackage ../development/python-modules/thrift { };
 
-  grequests = callPackage ../development/python-modules/grequests { };
+  thumbor = callPackage ../development/python-modules/thumbor { };
 
-  first = callPackage ../development/python-modules/first {};
+  thumborPexif = callPackage ../development/python-modules/thumborpexif { };
 
-  flaskbabel = callPackage ../development/python-modules/flaskbabel { };
+  tkinter = let
+    py = python.override{x11Support=true;};
+  in callPackage ../development/python-modules/tkinter { py = py; };
 
-  speaklater = callPackage ../development/python-modules/speaklater { };
+  tidylib = callPackage ../development/python-modules/pytidylib { };
 
-  speedtest-cli = callPackage ../development/python-modules/speedtest-cli { };
+  tifffile = callPackage ../development/python-modules/tifffile { };
 
-  pushbullet = callPackage ../development/python-modules/pushbullet { };
+  tiledb = callPackage ../development/python-modules/tiledb { inherit (pkgs) tiledb; };
 
-  power = callPackage ../development/python-modules/power { };
+  tilestache = callPackage ../development/python-modules/tilestache { };
 
-  pythonefl = callPackage ../development/python-modules/python-efl {
-    inherit (pkgs) pkgconfig;
-  };
+  timelib = callPackage ../development/python-modules/timelib { };
 
-  tlsh = callPackage ../development/python-modules/tlsh { };
+  timeout-decorator = callPackage ../development/python-modules/timeout-decorator { };
 
-  toposort = callPackage ../development/python-modules/toposort { };
+  timezonefinder = callPackage ../development/python-modules/timezonefinder { };
 
-  snakebite = callPackage ../development/python-modules/snakebite { };
+  tinycss2 = callPackage ../development/python-modules/tinycss2 { };
 
-  snapperGUI = callPackage ../development/python-modules/snappergui { };
+  tinycss = callPackage ../development/python-modules/tinycss { };
 
-  dm-sonnet = callPackage ../development/python-modules/dm-sonnet { };
+  tinydb = callPackage ../development/python-modules/tinydb { };
 
-  uncertainties = callPackage ../development/python-modules/uncertainties { };
+  tiros = callPackage ../development/python-modules/tiros { };
 
-  funcy = callPackage ../development/python-modules/funcy { };
+  tissue = callPackage ../development/python-modules/tissue { };
 
-  vxi11 = callPackage ../development/python-modules/vxi11 { };
+  titlecase = callPackage ../development/python-modules/titlecase { };
 
-  svg2tikz = callPackage ../development/python-modules/svg2tikz { };
+  tld = callPackage ../development/python-modules/tld { };
 
-  WSGIProxy = callPackage ../development/python-modules/wsgiproxy { };
+  tldextract = callPackage ../development/python-modules/tldextract { };
 
-  blist = callPackage ../development/python-modules/blist { };
+  tlsh = callPackage ../development/python-modules/tlsh { };
 
-  canonicaljson = callPackage ../development/python-modules/canonicaljson { };
+  tlslite-ng = callPackage ../development/python-modules/tlslite-ng { };
 
-  daemonize = callPackage ../development/python-modules/daemonize { };
+  tls-parser = callPackage ../development/python-modules/tls-parser { };
 
-  pydenticon = callPackage ../development/python-modules/pydenticon { };
+  tmdb3 = callPackage ../development/python-modules/tmdb3 { };
 
-  pynac = callPackage ../development/python-modules/pynac { };
+  todoist = callPackage ../development/python-modules/todoist { };
 
-  pybindgen = callPackage ../development/python-modules/pybindgen {};
+  toggl-cli = callPackage ../development/python-modules/toggl-cli { };
 
-  pygccxml = callPackage ../development/python-modules/pygccxml {};
+  tokenizers = disabledIf (!isPy3k) (toPythonModule (callPackage ../development/python-modules/tokenizers { }));
 
-  pymacaroons = callPackage ../development/python-modules/pymacaroons { };
+  tokenlib = callPackage ../development/python-modules/tokenlib { };
 
-  pynacl = callPackage ../development/python-modules/pynacl { };
+  tokenserver = callPackage ../development/python-modules/tokenserver { };
 
-  service-identity = callPackage ../development/python-modules/service_identity { };
+  toml = callPackage ../development/python-modules/toml { };
 
-  signedjson = callPackage ../development/python-modules/signedjson { };
+  tomlkit = callPackage ../development/python-modules/tomlkit { };
 
-  unpaddedbase64 = callPackage ../development/python-modules/unpaddedbase64 { };
+  toolz = callPackage ../development/python-modules/toolz { };
 
-  thumbor = callPackage ../development/python-modules/thumbor { };
+  toposort = callPackage ../development/python-modules/toposort { };
 
-  thumborPexif = callPackage ../development/python-modules/thumborpexif { };
+  topydo = throw "python3Packages.topydo was moved to topydo"; # 2017-09-22
 
-  pync = callPackage ../development/python-modules/pync { };
+  torchgpipe = callPackage ../development/python-modules/torchgpipe { };
 
-  weboob = callPackage ../development/python-modules/weboob { };
+  torchvision = callPackage ../development/python-modules/torchvision { };
 
-  datadiff = callPackage ../development/python-modules/datadiff { };
+  tornado = if isPy3k then
+    callPackage ../development/python-modules/tornado { }
+  else
+    callPackage ../development/python-modules/tornado/5.nix { };
 
-  termcolor = callPackage ../development/python-modules/termcolor { };
+  # Used by circus and grab-site, 2020-08-29
+  tornado_4 = callPackage ../development/python-modules/tornado/4.nix { };
 
-  html2text = if isPy3k then callPackage ../development/python-modules/html2text { }
-                        else callPackage ../development/python-modules/html2text/2018.nix { };
+  # Used by luigi, 2020-08-29
+  tornado_5 = callPackage ../development/python-modules/tornado/5.nix { };
 
-  pychart = callPackage ../development/python-modules/pychart {};
+  towncrier = callPackage ../development/python-modules/towncrier { inherit (pkgs) git; };
 
-  parsimonious = callPackage ../development/python-modules/parsimonious { };
+  tox = callPackage ../development/python-modules/tox { };
 
-  networkx = if isPy3k then callPackage ../development/python-modules/networkx { }
-    else
-      callPackage ../development/python-modules/networkx/2.2.nix { };
+  tqdm = callPackage ../development/python-modules/tqdm { };
 
-  ofxclient = callPackage ../development/python-modules/ofxclient {};
+  traceback2 = callPackage ../development/python-modules/traceback2 { };
 
-  ofxhome = callPackage ../development/python-modules/ofxhome { };
+  tracing = callPackage ../development/python-modules/tracing { };
 
-  ofxparse = callPackage ../development/python-modules/ofxparse { };
+  trackpy = callPackage ../development/python-modules/trackpy { };
 
-  ofxtools = callPackage ../development/python-modules/ofxtools { };
+  traitlets = callPackage ../development/python-modules/traitlets { };
 
-  orm = callPackage ../development/python-modules/orm { };
+  traits = callPackage ../development/python-modules/traits { };
 
-  basemap = callPackage ../development/python-modules/basemap { };
+  traitsui = callPackage ../development/python-modules/traitsui { };
 
-  dict2xml = callPackage ../development/python-modules/dict2xml { };
+  traittypes = callPackage ../development/python-modules/traittypes { };
 
-  dicttoxml = callPackage ../development/python-modules/dicttoxml { };
+  transaction = callPackage ../development/python-modules/transaction { };
 
-  markdown2 = callPackage ../development/python-modules/markdown2 { };
+  transformers = callPackage ../development/python-modules/transformers { };
 
-  evernote = callPackage ../development/python-modules/evernote { };
+  transforms3d = callPackage ../development/python-modules/transforms3d { };
 
-  setproctitle = callPackage ../development/python-modules/setproctitle { };
+  transip = callPackage ../development/python-modules/transip { };
 
-  thrift = callPackage ../development/python-modules/thrift { };
+  transitions = callPackage ../development/python-modules/transitions { };
 
-  geeknote = callPackage ../development/python-modules/geeknote { };
+  translationstring = callPackage ../development/python-modules/translationstring { };
 
-  trollius = callPackage ../development/python-modules/trollius {};
+  transmissionrpc = callPackage ../development/python-modules/transmissionrpc { };
 
-  pynvim = callPackage ../development/python-modules/pynvim {};
+  treq = callPackage ../development/python-modules/treq { };
 
-  typogrify = callPackage ../development/python-modules/typogrify { };
+  trezor_agent = callPackage ../development/python-modules/trezor_agent { };
 
-  smartypants = callPackage ../development/python-modules/smartypants { };
+  trezor = callPackage ../development/python-modules/trezor { };
 
-  pypeg2 = callPackage ../development/python-modules/pypeg2 { };
+  trimesh = callPackage ../development/python-modules/trimesh { };
 
-  torchvision = callPackage ../development/python-modules/torchvision { };
+  trio = callPackage ../development/python-modules/trio { };
 
-  torchgpipe = callPackage ../development/python-modules/torchgpipe { };
+  trollius = callPackage ../development/python-modules/trollius { };
 
-  jenkinsapi = callPackage ../development/python-modules/jenkinsapi { };
+  trueskill = callPackage ../development/python-modules/trueskill { };
 
-  jenkins-job-builder = callPackage ../development/python-modules/jenkins-job-builder { };
+  trustme = callPackage ../development/python-modules/trustme { };
 
-  dot2tex = callPackage ../development/python-modules/dot2tex {
-    inherit (pkgs) graphviz;
-  };
+  trytond = callPackage ../development/python-modules/trytond { };
 
-  poezio = callPackage ../applications/networking/instant-messengers/poezio {
-    inherit (pkgs) pkgconfig;
-  };
+  ttystatus = callPackage ../development/python-modules/ttystatus { };
 
-  potr = callPackage ../development/python-modules/potr {};
+  tunigo = callPackage ../development/python-modules/tunigo { };
 
-  pyregion = callPackage ../development/python-modules/pyregion {};
+  TurboCheetah = callPackage ../development/python-modules/TurboCheetah { };
 
-  python-nomad = callPackage ../development/python-modules/python-nomad { };
+  tvdb_api = callPackage ../development/python-modules/tvdb_api { };
 
-  python-u2flib-host = callPackage ../development/python-modules/python-u2flib-host { };
+  tvnamer = callPackage ../development/python-modules/tvnamer { };
 
-  python-xmp-toolkit = callPackage ../development/python-modules/python-xmp-toolkit { };
+  tweepy = callPackage ../development/python-modules/tweepy { };
 
-  pluggy = callPackage ../development/python-modules/pluggy {};
+  twiggy = callPackage ../development/python-modules/twiggy { };
 
-  xcffib = callPackage ../development/python-modules/xcffib {};
+  twilio = callPackage ../development/python-modules/twilio { };
 
-  xpybutil = callPackage ../development/python-modules/xpybutil {};
+  twill = callPackage ../development/python-modules/twill { };
 
-  pafy = callPackage ../development/python-modules/pafy { };
+  twine = callPackage ../development/python-modules/twine { };
 
-  suds = callPackage ../development/python-modules/suds { };
+  twisted = callPackage ../development/python-modules/twisted { };
 
-  suds-jurko = callPackage ../development/python-modules/suds-jurko { };
+  twitter = callPackage ../development/python-modules/twitter { };
 
-  mailcap-fix = callPackage ../development/python-modules/mailcap-fix { };
+  twitter-common-collections = callPackage ../development/python-modules/twitter-common-collections { };
 
-  maildir-deduplicate = callPackage ../development/python-modules/maildir-deduplicate { };
+  twitter-common-confluence = callPackage ../development/python-modules/twitter-common-confluence { };
 
-  d2to1 = callPackage ../development/python-modules/d2to1 { };
+  twitter-common-dirutil = callPackage ../development/python-modules/twitter-common-dirutil { };
 
-  ovh = callPackage ../development/python-modules/ovh { };
+  twitter-common-lang = callPackage ../development/python-modules/twitter-common-lang { };
 
-  willow = callPackage ../development/python-modules/willow { };
+  twitter-common-log = callPackage ../development/python-modules/twitter-common-log { };
 
-  importmagic = callPackage ../development/python-modules/importmagic { };
+  twitter-common-options = callPackage ../development/python-modules/twitter-common-options { };
 
-  xgboost = callPackage ../development/python-modules/xgboost {
-    xgboost = pkgs.xgboost;
-  };
+  twofish = callPackage ../development/python-modules/twofish { };
 
-  xhtml2pdf = callPackage ../development/python-modules/xhtml2pdf { };
+  txaio = callPackage ../development/python-modules/txaio { };
 
-  xkcdpass = callPackage ../development/python-modules/xkcdpass { };
+  txamqp = callPackage ../development/python-modules/txamqp { };
 
-  xlsx2csv = callPackage ../development/python-modules/xlsx2csv { };
+  txdbus = callPackage ../development/python-modules/txdbus { };
 
-  xmodem = callPackage ../development/python-modules/xmodem {};
+  txgithub = callPackage ../development/python-modules/txgithub { };
 
-  xmpppy = callPackage ../development/python-modules/xmpppy {};
+  txrequests = callPackage ../development/python-modules/txrequests { };
 
-  xstatic = callPackage ../development/python-modules/xstatic {};
+  txtorcon = callPackage ../development/python-modules/txtorcon { };
 
-  xstatic-bootbox = callPackage ../development/python-modules/xstatic-bootbox {};
+  typed-ast = callPackage ../development/python-modules/typed-ast { };
 
-  xstatic-bootstrap = callPackage ../development/python-modules/xstatic-bootstrap {};
+  typeguard = callPackage ../development/python-modules/typeguard { };
 
-  xstatic-jquery = callPackage ../development/python-modules/xstatic-jquery {};
+  typesentry = callPackage ../development/python-modules/typesentry { };
 
-  xstatic-jquery-file-upload = callPackage ../development/python-modules/xstatic-jquery-file-upload {};
+  typesystem = callPackage ../development/python-modules/typesystem { };
 
-  xstatic-jquery-ui = callPackage ../development/python-modules/xstatic-jquery-ui {};
+  typing = callPackage ../development/python-modules/typing { };
 
-  xstatic-pygments = callPackage ../development/python-modules/xstatic-pygments {};
+  typing-extensions = callPackage ../development/python-modules/typing-extensions { };
 
-  xvfbwrapper = callPackage ../development/python-modules/xvfbwrapper {
-    inherit (pkgs.xorg) xorgserver;
-  };
+  typing-inspect = callPackage ../development/python-modules/typing-inspect { };
 
-  hidapi = callPackage ../development/python-modules/hidapi {
-    inherit (pkgs) udev libusb1;
-  };
+  typogrify = callPackage ../development/python-modules/typogrify { };
 
-  ckcc-protocol = callPackage ../development/python-modules/ckcc-protocol { };
+  tzlocal = callPackage ../development/python-modules/tzlocal { };
 
-  mnemonic = callPackage ../development/python-modules/mnemonic { };
+  uamqp =
+    callPackage ../development/python-modules/uamqp { inherit (pkgs.darwin.apple_sdk.frameworks) CFNetwork Security; };
 
-  keepkey = callPackage ../development/python-modules/keepkey { };
+  ua-parser = callPackage ../development/python-modules/ua-parser { };
 
-  keepkey_agent = callPackage ../development/python-modules/keepkey_agent { };
+  uarray = callPackage ../development/python-modules/uarray { };
 
-  libagent = callPackage ../development/python-modules/libagent { };
+  ueberzug = callPackage ../development/python-modules/ueberzug { inherit (pkgs.xorg) libX11 libXext; };
 
-  ledger_agent = callPackage ../development/python-modules/ledger_agent { };
+  ufonormalizer = callPackage ../development/python-modules/ufonormalizer { };
 
-  ledgerblue = callPackage ../development/python-modules/ledgerblue { };
+  ufoprocessor = callPackage ../development/python-modules/ufoprocessor { };
 
-  ecpy = callPackage ../development/python-modules/ecpy { };
+  ujson = if isPy27 then
+    callPackage ../development/python-modules/ujson/2.nix { }
+  else
+    callPackage ../development/python-modules/ujson { };
 
-  semver = callPackage ../development/python-modules/semver { };
+  ukpostcodeparser = callPackage ../development/python-modules/ukpostcodeparser { };
 
-  ed25519 = callPackage ../development/python-modules/ed25519 { };
+  umalqurra = callPackage ../development/python-modules/umalqurra { };
 
-  trezor = callPackage ../development/python-modules/trezor { };
+  umap-learn = callPackage ../development/python-modules/umap-learn { };
 
-  trezor_agent = callPackage ../development/python-modules/trezor_agent { };
+  umemcache = callPackage ../development/python-modules/umemcache { };
 
-  x11_hash = callPackage ../development/python-modules/x11_hash { };
+  u-msgpack-python = callPackage ../development/python-modules/u-msgpack-python { };
 
-  termstyle = callPackage ../development/python-modules/termstyle { };
+  uncertainties = callPackage ../development/python-modules/uncertainties { };
 
-  green = callPackage ../development/python-modules/green { };
+  uncompyle6 = callPackage ../development/python-modules/uncompyle6 { };
 
-  topydo = throw "python3Packages.topydo was moved to topydo"; # 2017-09-22
+  unicodecsv = callPackage ../development/python-modules/unicodecsv { };
 
-  w3lib = callPackage ../development/python-modules/w3lib { };
+  unicodedata2 = callPackage ../development/python-modules/unicodedata2 { };
 
-  queuelib = callPackage ../development/python-modules/queuelib { };
+  unicode-slugify = callPackage ../development/python-modules/unicode-slugify { };
 
-  scrapy = callPackage ../development/python-modules/scrapy { };
+  unicorn = callPackage ../development/python-modules/unicorn { };
 
-  scrapy-fake-useragent = callPackage ../development/python-modules/scrapy-fake-useragent { };
+  unidecode = callPackage ../development/python-modules/unidecode { };
 
-  scrapy-deltafetch = callPackage ../development/python-modules/scrapy-deltafetch { };
+  unidiff = callPackage ../development/python-modules/unidiff { };
 
-  scrapy-splash = callPackage ../development/python-modules/scrapy-splash { };
+  unifi = callPackage ../development/python-modules/unifi { };
 
-  pandocfilters = callPackage ../development/python-modules/pandocfilters { };
+  units = callPackage ../development/python-modules/units { };
 
-  pandoc-attributes = callPackage ../development/python-modules/pandoc-attributes { };
+  unittest2 = callPackage ../development/python-modules/unittest2 { };
 
-  htmltreediff = callPackage ../development/python-modules/htmltreediff { };
+  unittest-data-provider = callPackage ../development/python-modules/unittest-data-provider { };
 
-  repeated_test = callPackage ../development/python-modules/repeated_test { };
+  unittest-xml-reporting = callPackage ../development/python-modules/unittest-xml-reporting { };
 
-  Keras = callPackage ../development/python-modules/keras { };
+  unpaddedbase64 = callPackage ../development/python-modules/unpaddedbase64 { };
 
-  keras-applications = callPackage ../development/python-modules/keras-applications { };
+  unrpa = callPackage ../development/python-modules/unrpa { };
 
-  keras-preprocessing = callPackage ../development/python-modules/keras-preprocessing { };
+  untangle = callPackage ../development/python-modules/untangle { };
 
-  Lasagne = callPackage ../development/python-modules/lasagne { };
+  upass = callPackage ../development/python-modules/upass { };
 
-  send2trash = callPackage ../development/python-modules/send2trash { };
+  update_checker = callPackage ../development/python-modules/update_checker { };
 
-  sigtools = callPackage ../development/python-modules/sigtools { };
+  update-copyright = callPackage ../development/python-modules/update-copyright { };
 
-  annoy = callPackage ../development/python-modules/annoy { };
+  update-dotdee = callPackage ../development/python-modules/update-dotdee { };
 
-  clize = callPackage ../development/python-modules/clize { };
+  uproot = callPackage ../development/python-modules/uproot { };
 
-  rl-coach = callPackage ../development/python-modules/rl-coach { };
+  uproot-methods = callPackage ../development/python-modules/uproot-methods { };
 
-  zerobin = callPackage ../development/python-modules/zerobin { };
+  uptime = callPackage ../development/python-modules/uptime { };
 
-  tensorflow-estimator = self.tensorflow-estimator_1;
+  uranium = callPackage ../development/python-modules/uranium { };
 
-  tensorflow-estimator_1 = callPackage ../development/python-modules/tensorflow-estimator/1 { };
+  uritemplate = callPackage ../development/python-modules/uritemplate { };
 
-  tensorflow-estimator_2 = callPackage ../development/python-modules/tensorflow-estimator/2 { };
+  uritools = callPackage ../development/python-modules/uritools { };
 
-  tensorflow-probability = callPackage ../development/python-modules/tensorflow-probability { };
+  urlgrabber = callPackage ../development/python-modules/urlgrabber { };
 
-  tensorflow-tensorboard = self.tensorflow-tensorboard_1;
+  urllib3 = callPackage ../development/python-modules/urllib3 { };
 
-  tensorflow-tensorboard_1 = callPackage ../development/python-modules/tensorflow-tensorboard/1 { };
+  urwid = callPackage ../development/python-modules/urwid { };
 
-  tensorflow-tensorboard_2 = callPackage ../development/python-modules/tensorflow-tensorboard/2 { };
+  urwidtrees = callPackage ../development/python-modules/urwidtrees { };
 
-  tensorflow-bin = self.tensorflow-bin_1;
+  usbtmc = callPackage ../development/python-modules/usbtmc { };
 
-  tensorflow-bin_1 = callPackage ../development/python-modules/tensorflow/1/bin.nix {
-    cudaSupport = pkgs.config.cudaSupport or false;
-    inherit (pkgs.linuxPackages) nvidia_x11;
-    cudatoolkit = pkgs.cudatoolkit_10;
-    cudnn = pkgs.cudnn_cudatoolkit_10;
-  };
+  us = callPackage ../development/python-modules/us { };
 
-  tensorflow-bin_2 = callPackage ../development/python-modules/tensorflow/2/bin.nix {
-    cudaSupport = pkgs.config.cudaSupport or false;
-    inherit (pkgs.linuxPackages) nvidia_x11;
-    cudatoolkit = pkgs.cudatoolkit_10;
-    cudnn = pkgs.cudnn_cudatoolkit_10;
-  };
+  user-agents = callPackage ../development/python-modules/user-agents { };
 
-  tensorflow-build = self.tensorflow-build_1;
+  userpath = callPackage ../development/python-modules/userpath { };
 
-  tensorflow-build_1 = callPackage ../development/python-modules/tensorflow/1 {
-    cudaSupport = pkgs.config.cudaSupport or false;
-    inherit (pkgs.linuxPackages) nvidia_x11;
-    cudatoolkit = pkgs.cudatoolkit_10;
-    cudnn = pkgs.cudnn_cudatoolkit_10;
-    nccl = pkgs.nccl_cudatoolkit_10;
-    openssl = pkgs.openssl_1_1;
-    inherit (pkgs.darwin.apple_sdk.frameworks) Foundation Security;
-  };
+  uuid = callPackage ../development/python-modules/uuid { };
 
-  tensorflow-build_2 = callPackage ../development/python-modules/tensorflow/2 {
-    cudaSupport = pkgs.config.cudaSupport or false;
-    inherit (pkgs.linuxPackages) nvidia_x11;
-    cudatoolkit = pkgs.cudatoolkit_10;
-    cudnn = pkgs.cudnn_cudatoolkit_10;
-    nccl = pkgs.nccl_cudatoolkit_10;
-    openssl = pkgs.openssl_1_1;
-    inherit (pkgs.darwin.apple_sdk.frameworks) Foundation Security;
-  };
+  uvcclient = callPackage ../development/python-modules/uvcclient { };
 
-  tensorflow = self.tensorflow_1;
-  tensorflow_1 = self.tensorflow-build_1;
-  tensorflow_2 = self.tensorflow-build_2;
+  uvicorn = callPackage ../development/python-modules/uvicorn { };
 
-  tensorflowWithoutCuda = self.tensorflow.override {
-    cudaSupport = false;
+  uvloop = callPackage ../development/python-modules/uvloop {
+    inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices CoreServices;
   };
 
-  tensorflowWithCuda = self.tensorflow.override {
-    cudaSupport = true;
-  };
+  validate-email = callPackage ../development/python-modules/validate-email { };
 
-  tensorly = callPackage ../development/python-modules/tensorly { };
+  validators = callPackage ../development/python-modules/validators { };
 
-  tflearn = callPackage ../development/python-modules/tflearn { };
+  validictory = callPackage ../development/python-modules/validictory { };
 
-  simpleai = callPackage ../development/python-modules/simpleai { };
+  variants = callPackage ../development/python-modules/variants { };
 
-  word2vec = callPackage ../development/python-modules/word2vec { };
+  varint = callPackage ../development/python-modules/varint { };
 
-  tvdb_api = callPackage ../development/python-modules/tvdb_api { };
+  vcrpy = callPackage ../development/python-modules/vcrpy { };
 
-  sdnotify = callPackage ../development/python-modules/sdnotify { };
+  vcver = callPackage ../development/python-modules/vcver { };
 
-  tvnamer = callPackage ../development/python-modules/tvnamer { };
+  vcversioner = callPackage ../development/python-modules/vcversioner { };
 
-  threadpool = callPackage ../development/python-modules/threadpool { };
+  vdf = callPackage ../development/python-modules/vdf { };
 
-  threadpoolctl = callPackage ../development/python-modules/threadpoolctl { };
+  vdirsyncer = callPackage ../development/python-modules/vdirsyncer {
+    inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices Security;
+    inherit (pkgs) pkg-config openssl rustPlatform;
+  };
 
-  rocket-errbot = callPackage ../development/python-modules/rocket-errbot {  };
+  vdirsyncerStable = callPackage ../development/python-modules/vdirsyncer/stable.nix { };
 
-  Yapsy = callPackage ../development/python-modules/yapsy { };
+  vega = callPackage ../development/python-modules/vega { };
 
-  ansi = callPackage ../development/python-modules/ansi { };
+  vega_datasets = callPackage ../development/python-modules/vega_datasets { };
 
-  pygments-better-html = callPackage ../development/python-modules/pygments-better-html { };
+  venusian = callPackage ../development/python-modules/venusian { };
 
-  pygments-markdown-lexer = callPackage ../development/python-modules/pygments-markdown-lexer { };
+  verboselogs = callPackage ../development/python-modules/verboselogs { };
 
-  telegram = callPackage ../development/python-modules/telegram { };
+  versioneer = callPackage ../development/python-modules/versioneer { };
 
-  python-telegram-bot = callPackage ../development/python-modules/python-telegram-bot { };
+  versiontools = callPackage ../development/python-modules/versiontools { };
 
-  irc = callPackage ../development/python-modules/irc { };
+  vertica-python = callPackage ../development/python-modules/vertica-python { };
 
-  jaraco_logging = callPackage ../development/python-modules/jaraco_logging { };
+  veryprettytable = callPackage ../development/python-modules/veryprettytable { };
 
-  jaraco_text = callPackage ../development/python-modules/jaraco_text { };
+  vidstab = callPackage ../development/python-modules/vidstab { };
 
-  jaraco_collections = callPackage ../development/python-modules/jaraco_collections { };
+  viewstate = callPackage ../development/python-modules/viewstate { };
 
-  jaraco_itertools = callPackage ../development/python-modules/jaraco_itertools { };
+  vine = callPackage ../development/python-modules/vine { };
 
-  inflect = callPackage ../development/python-modules/inflect { };
+  virtkey = callPackage ../development/python-modules/virtkey { inherit (pkgs) pkgconfig; };
 
-  more-itertools = if isPy27 then
-    callPackage ../development/python-modules/more-itertools/2.7.nix { }
-  else callPackage ../development/python-modules/more-itertools { };
+  virtual-display = callPackage ../development/python-modules/virtual-display { };
 
-  morphys = callPackage ../development/python-modules/morphys { };
+  virtualenv = callPackage ../development/python-modules/virtualenv { };
 
-  jaraco_functools = if pythonOlder "3.6" then
-    callPackage ../development/python-modules/jaraco_functools/2.nix { }
-  else
-    callPackage ../development/python-modules/jaraco_functools { };
+  virtualenv-clone = callPackage ../development/python-modules/virtualenv-clone { };
 
-  jaraco_classes = callPackage ../development/python-modules/jaraco_classes { };
+  virtualenvwrapper = callPackage ../development/python-modules/virtualenvwrapper { };
 
-  jaraco_stream = if pythonOlder "3.6"
-    then callPackage ../development/python-modules/jaraco_stream/2.nix { }
-  else
-    callPackage ../development/python-modules/jaraco_stream { };
+  visitor = callPackage ../development/python-modules/visitor { };
 
-  javaobj-py3 = callPackage ../development/python-modules/javaobj-py3 { };
+  vispy = callPackage ../development/python-modules/vispy { };
 
-  javaproperties = callPackage ../development/python-modules/javaproperties { };
+  vmprof = callPackage ../development/python-modules/vmprof { };
 
-  tempora= callPackage ../development/python-modules/tempora { };
+  vobject = callPackage ../development/python-modules/vobject { };
 
-  hypchat = callPackage ../development/python-modules/hypchat { };
+  voluptuous = callPackage ../development/python-modules/voluptuous { };
 
-  pivy = callPackage ../development/python-modules/pivy { };
+  voluptuous-serialize = callPackage ../development/python-modules/voluptuous-serialize { };
 
-  smugpy = callPackage ../development/python-modules/smugpy { };
+  vowpalwabbit = callPackage ../development/python-modules/vowpalwabbit { };
 
-  smugline = callPackage ../development/python-modules/smugline { };
+  vsts = callPackage ../development/python-modules/vsts { };
 
-  txaio = callPackage ../development/python-modules/txaio { };
+  vsts-cd-manager = callPackage ../development/python-modules/vsts-cd-manager { };
 
-  ramlfications = callPackage ../development/python-modules/ramlfications { };
+  vtk = toPythonModule (pkgs.vtk_7.override {
+    inherit (self) python;
+    enablePython = true;
+  });
 
-  yapf = callPackage ../development/python-modules/yapf { };
+  vultr = callPackage ../development/python-modules/vultr { };
 
-  black = callPackage ../development/python-modules/black { };
+  vulture = callPackage ../development/python-modules/vulture { };
 
-  bjoern = callPackage ../development/python-modules/bjoern { };
+  vxi11 = callPackage ../development/python-modules/vxi11 { };
 
-  autobahn = callPackage ../development/python-modules/autobahn { };
+  w3lib = callPackage ../development/python-modules/w3lib { };
 
-  jsonref = callPackage ../development/python-modules/jsonref { };
+  wadllib = callPackage ../development/python-modules/wadllib { };
 
-  whoosh = callPackage ../development/python-modules/whoosh { };
+  waitress = callPackage ../development/python-modules/waitress { };
 
-  packet-python = callPackage ../development/python-modules/packet-python { };
+  waitress-django = callPackage ../development/python-modules/waitress-django { };
 
-  pwntools = callPackage ../development/python-modules/pwntools { debugger = pkgs.gdb; };
+  wakeonlan = callPackage ../development/python-modules/wakeonlan { };
 
-  ROPGadget = callPackage ../development/python-modules/ROPGadget { };
+  Wand = callPackage ../development/python-modules/Wand { };
 
-  # We need "normal" libxml2 and not the python package by the same name.
-  pywbem = callPackage ../development/python-modules/pywbem { libxml2 = pkgs.libxml2; };
+  warlock = callPackage ../development/python-modules/warlock { };
 
-  unicorn = callPackage ../development/python-modules/unicorn { };
+  warrant = callPackage ../development/python-modules/warrant { };
 
-  intervaltree = callPackage ../development/python-modules/intervaltree { };
+  wasabi = callPackage ../development/python-modules/wasabi { };
 
-  packaging = callPackage ../development/python-modules/packaging { };
+  watchdog = callPackage ../development/python-modules/watchdog { };
 
-  preggy = callPackage ../development/python-modules/preggy { };
+  WazeRouteCalculator = callPackage ../development/python-modules/WazeRouteCalculator { };
 
-  prison = callPackage ../development/python-modules/prison { };
+  wcwidth = callPackage ../development/python-modules/wcwidth { };
 
-  pytoml = callPackage ../development/python-modules/pytoml { };
+  weasyprint = callPackage ../development/python-modules/weasyprint { };
 
-  pypamtest = pkgs.libpam-wrapper.override {
-    enablePython = true;
-    inherit python;
-  };
+  webapp2 = callPackage ../development/python-modules/webapp2 { };
 
-  pypandoc = callPackage ../development/python-modules/pypandoc { };
+  webassets = callPackage ../development/python-modules/webassets { };
 
-  yamllint = callPackage ../development/python-modules/yamllint { };
+  web = callPackage ../development/python-modules/web { };
 
-  yanc = callPackage ../development/python-modules/yanc { };
+  webcolors = callPackage ../development/python-modules/webcolors { };
 
-  yarl = callPackage ../development/python-modules/yarl { };
+  webdavclient3 = callPackage ../development/python-modules/webdavclient3 { };
 
-  solo-python = disabledIf (! pythonAtLeast "3.6") (callPackage ../development/python-modules/solo-python { });
+  webencodings = callPackage ../development/python-modules/webencodings { };
 
-  suseapi = callPackage ../development/python-modules/suseapi { };
+  webhelpers = callPackage ../development/python-modules/webhelpers { };
 
-  tensorboardx = callPackage ../development/python-modules/tensorboardx { };
+  webob = callPackage ../development/python-modules/webob { };
 
-  typed-ast = callPackage ../development/python-modules/typed-ast { };
+  weboob = callPackage ../development/python-modules/weboob { };
 
-  stripe = callPackage ../development/python-modules/stripe { };
+  webrtcvad = callPackage ../development/python-modules/webrtcvad { };
 
-  strict-rfc3339 = callPackage ../development/python-modules/strict-rfc3339 { };
+  websocket_client = callPackage ../development/python-modules/websocket_client { };
 
-  strictyaml = callPackage ../development/python-modules/strictyaml { };
+  websockets = callPackage ../development/python-modules/websockets { };
 
-  twilio = callPackage ../development/python-modules/twilio { };
+  websockify = callPackage ../development/python-modules/websockify { };
 
-  twofish = callPackage ../development/python-modules/twofish { };
+  webtest = callPackage ../development/python-modules/webtest { };
 
-  uranium = callPackage ../development/python-modules/uranium { };
+  werkzeug = callPackage ../development/python-modules/werkzeug { };
 
-  uuid = callPackage ../development/python-modules/uuid { };
+  west = callPackage ../development/python-modules/west { };
 
-  versioneer = callPackage ../development/python-modules/versioneer { };
+  wfuzz = callPackage ../development/python-modules/wfuzz { };
 
-  viewstate = callPackage ../development/python-modules/viewstate { };
+  wget = callPackage ../development/python-modules/wget { };
 
-  vine = callPackage ../development/python-modules/vine { };
+  wheel = callPackage ../development/python-modules/wheel { };
 
-  visitor = callPackage ../development/python-modules/visitor { };
+  whichcraft = callPackage ../development/python-modules/whichcraft { };
 
-  vtk = toPythonModule (pkgs.vtk_7.override {
-    inherit (self) python;
-    enablePython = true;
-  });
+  whisper = callPackage ../development/python-modules/whisper { };
 
   whitenoise = callPackage ../development/python-modules/whitenoise { };
 
-  XlsxWriter = callPackage ../development/python-modules/XlsxWriter { };
-
-  yowsup = callPackage ../development/python-modules/yowsup { };
-
-  yubico-client = callPackage ../development/python-modules/yubico-client { };
-
-  wptserve = callPackage ../development/python-modules/wptserve { };
-
-  yenc = callPackage ../development/python-modules/yenc { };
-
-  zeep = callPackage ../development/python-modules/zeep { };
-
-  zeitgeist = disabledIf isPy3k
-    (toPythonModule (pkgs.zeitgeist.override{python2Packages=self;})).py;
-
-  zeroconf = callPackage ../development/python-modules/zeroconf { };
-
-  zipfile36 = callPackage ../development/python-modules/zipfile36 { };
+  whoosh = callPackage ../development/python-modules/whoosh { };
 
-  todoist = callPackage ../development/python-modules/todoist { };
+  widgetsnbextension = callPackage ../development/python-modules/widgetsnbextension { };
 
-  zstd = callPackage ../development/python-modules/zstd {
-    inherit (pkgs) zstd pkgconfig;
-  };
+  willow = callPackage ../development/python-modules/willow { };
 
-  zstandard = callPackage ../development/python-modules/zstandard { };
+  word2vec = callPackage ../development/python-modules/word2vec { };
 
-  zxcvbn = callPackage ../development/python-modules/zxcvbn { };
+  wordcloud = callPackage ../development/python-modules/wordcloud { };
 
-  incremental = callPackage ../development/python-modules/incremental { };
+  wordfreq = callPackage ../development/python-modules/wordfreq { };
 
-  treq = callPackage ../development/python-modules/treq { };
+  worldengine = callPackage ../development/python-modules/worldengine { };
 
-  snakeviz = callPackage ../development/python-modules/snakeviz { };
+  wptserve = callPackage ../development/python-modules/wptserve { };
 
-  nitpick = callPackage ../applications/version-management/nitpick { };
+  wrapt = callPackage ../development/python-modules/wrapt { };
 
-  pluginbase = callPackage ../development/python-modules/pluginbase { };
+  wrf-python = callPackage ../development/python-modules/wrf-python { };
 
-  node-semver = callPackage ../development/python-modules/node-semver { };
+  ws4py = callPackage ../development/python-modules/ws4py { };
 
-  diskcache = callPackage ../development/python-modules/diskcache { };
+  wsgiproxy2 = callPackage ../development/python-modules/wsgiproxy2 { };
 
-  dissononce = callPackage ../development/python-modules/dissononce { };
+  WSGIProxy = callPackage ../development/python-modules/wsgiproxy { };
 
-  distro = callPackage ../development/python-modules/distro { };
+  wsgitools = callPackage ../development/python-modules/wsgitools { };
 
-  bz2file =  callPackage ../development/python-modules/bz2file { };
+  WSME = callPackage ../development/python-modules/WSME { };
 
-  smart_open =  callPackage ../development/python-modules/smart_open { };
+  wsproto = if (pythonAtLeast "3.6") then
+    callPackage ../development/python-modules/wsproto { }
+  else
+    callPackage ../development/python-modules/wsproto/0.14.nix { };
 
-  gensim = callPackage  ../development/python-modules/gensim { };
+  wtforms = callPackage ../development/python-modules/wtforms { };
 
-  genpy = callPackage ../development/python-modules/genpy { };
+  wtf-peewee = callPackage ../development/python-modules/wtf-peewee { };
 
-  cymem = callPackage ../development/python-modules/cymem { };
+  wurlitzer = callPackage ../development/python-modules/wurlitzer { };
 
-  ftfy = callPackage ../development/python-modules/ftfy { };
+  wxPython30 = callPackage ../development/python-modules/wxPython/3.0.nix {
+    wxGTK = pkgs.wxGTK30;
+    inherit (pkgs) pkgconfig;
+  };
 
-  mmh3 = callPackage ../development/python-modules/mmh3 { };
+  wxPython_4_0 = callPackage ../development/python-modules/wxPython/4.0.nix {
+    inherit (pkgs) pkgconfig;
+    wxGTK = pkgs.wxGTK30.override {
+      withGtk2 = false;
+      withWebKit = true;
+    };
+  };
 
-  murmurhash = callPackage ../development/python-modules/murmurhash { };
+  wxPython = self.wxPython30;
 
-  pkuseg = callPackage ../development/python-modules/pkuseg { };
+  x11_hash = callPackage ../development/python-modules/x11_hash { };
 
-  plac = callPackage ../development/python-modules/plac { };
+  x256 = callPackage ../development/python-modules/x256 { };
 
-  preshed = callPackage ../development/python-modules/preshed { };
+  xapian = callPackage ../development/python-modules/xapian { xapian = pkgs.xapian; };
 
-  backports_weakref = callPackage ../development/python-modules/backports_weakref { };
+  xapp = callPackage ../development/python-modules/xapp {
+    inherit (pkgs) gtk3 gobject-introspection polkit;
+    inherit (pkgs.cinnamon) xapps;
+  };
 
-  blis = callPackage ../development/python-modules/blis { };
+  xarray = callPackage ../development/python-modules/xarray { };
 
-  srsly = callPackage ../development/python-modules/srsly { };
+  xattr = callPackage ../development/python-modules/xattr { };
 
-  thinc = callPackage ../development/python-modules/thinc { };
+  xcaplib = callPackage ../development/python-modules/xcaplib { };
 
-  wasabi = callPackage ../development/python-modules/wasabi { };
+  xcffib = callPackage ../development/python-modules/xcffib { };
 
-  yahooweather = callPackage ../development/python-modules/yahooweather { };
+  xdg = callPackage ../development/python-modules/xdg { };
 
-  somajo = callPackage ../development/python-modules/somajo { };
+  xdis = callPackage ../development/python-modules/xdis { };
 
-  spacy = callPackage ../development/python-modules/spacy { };
+  xdot = callPackage ../development/python-modules/xdot { };
 
-  spacy_models = callPackage ../development/python-modules/spacy/models.nix { };
+  xenomapper = disabledIf (!isPy3k) (callPackage ../applications/science/biology/xenomapper { });
 
-  pyspark = callPackage ../development/python-modules/pyspark { };
+  xgboost = callPackage ../development/python-modules/xgboost { xgboost = pkgs.xgboost; };
 
-  pysensors = callPackage ../development/python-modules/pysensors { };
+  xhtml2pdf = callPackage ../development/python-modules/xhtml2pdf { };
 
-  python-toolbox = callPackage ../development/python-modules/python-toolbox { };
+  xkcdpass = callPackage ../development/python-modules/xkcdpass { };
 
-  pysnooper = callPackage ../development/python-modules/pysnooper { };
+  xlib = callPackage ../development/python-modules/xlib { };
 
-  sseclient = callPackage ../development/python-modules/sseclient { };
+  xlrd = callPackage ../development/python-modules/xlrd { };
 
-  warrant = callPackage ../development/python-modules/warrant { };
+  xlsx2csv = callPackage ../development/python-modules/xlsx2csv { };
 
-  textacy = callPackage ../development/python-modules/textacy { };
+  XlsxWriter = callPackage ../development/python-modules/XlsxWriter { };
 
-  tld = callPackage ../development/python-modules/tld { };
+  xlwt = callPackage ../development/python-modules/xlwt { };
 
-  tldextract = callPackage ../development/python-modules/tldextract { };
+  xml2rfc = callPackage ../development/python-modules/xml2rfc { };
 
-  transip = callPackage ../development/python-modules/transip { };
+  xmlschema = callPackage ../development/python-modules/xmlschema { };
 
-  pyemd  = callPackage ../development/python-modules/pyemd { };
+  xmltodict = callPackage ../development/python-modules/xmltodict { };
 
-  openwrt-luci-rpc = disabledIf (!isPy3k) (callPackage ../development/python-modules/openwrt-luci-rpc { });
+  xmodem = callPackage ../development/python-modules/xmodem { };
 
-  pulp  = callPackage ../development/python-modules/pulp { };
+  xmpppy = callPackage ../development/python-modules/xmpppy { };
 
-  pure-pcapy3 = callPackage ../development/python-modules/pure-pcapy3 { };
+  xnd = callPackage ../development/python-modules/xnd { };
 
-  cucumber-tag-expressions = callPackage ../development/python-modules/cucumber-tag-expressions { };
+  xpybutil = callPackage ../development/python-modules/xpybutil { };
 
-  behave = callPackage ../development/python-modules/behave { };
+  xstatic-bootbox = callPackage ../development/python-modules/xstatic-bootbox { };
 
-  bellows = callPackage ../development/python-modules/bellows { };
+  xstatic-bootstrap = callPackage ../development/python-modules/xstatic-bootstrap { };
 
-  pyhamcrest = if isPy3k then
-    callPackage ../development/python-modules/pyhamcrest { }
-  else
-    callPackage ../development/python-modules/pyhamcrest/1.nix { };
+  xstatic = callPackage ../development/python-modules/xstatic { };
 
-  pyhaversion = callPackage ../development/python-modules/pyhaversion { };
+  xstatic-jquery = callPackage ../development/python-modules/xstatic-jquery { };
 
-  parse = callPackage ../development/python-modules/parse { };
+  xstatic-jquery-file-upload = callPackage ../development/python-modules/xstatic-jquery-file-upload { };
 
-  parse-type = callPackage ../development/python-modules/parse-type { };
+  xstatic-jquery-ui = callPackage ../development/python-modules/xstatic-jquery-ui { };
 
-  ephem = callPackage ../development/python-modules/ephem { };
+  xstatic-pygments = callPackage ../development/python-modules/xstatic-pygments { };
 
-  voluptuous = callPackage ../development/python-modules/voluptuous { };
+  xvfbwrapper = callPackage ../development/python-modules/xvfbwrapper { inherit (pkgs.xorg) xorgserver; };
 
-  voluptuous-serialize = callPackage ../development/python-modules/voluptuous-serialize { };
+  xxhash = callPackage ../development/python-modules/xxhash { };
 
-  pysigset = callPackage ../development/python-modules/pysigset { };
+  yahooweather = callPackage ../development/python-modules/yahooweather { };
 
-  us = callPackage ../development/python-modules/us { };
+  yamllint = callPackage ../development/python-modules/yamllint { };
 
-  wsproto = if (pythonAtLeast "3.6") then
-      callPackage ../development/python-modules/wsproto { }
-    else
-      callPackage ../development/python-modules/wsproto/0.14.nix { };
+  yanc = callPackage ../development/python-modules/yanc { };
 
-  h11 = callPackage ../development/python-modules/h11 { };
+  yapf = callPackage ../development/python-modules/yapf { };
 
-  python-docx = callPackage ../development/python-modules/python-docx { };
+  yappi = callPackage ../development/python-modules/yappi { };
 
-  python-doi = callPackage ../development/python-modules/python-doi { };
+  Yapsy = callPackage ../development/python-modules/yapsy { };
 
-  aiohue = callPackage ../development/python-modules/aiohue { };
+  yarg = callPackage ../development/python-modules/yarg { };
 
-  PyMVGLive = callPackage ../development/python-modules/pymvglive { };
+  yarl = callPackage ../development/python-modules/yarl { };
 
-  coinmarketcap = callPackage ../development/python-modules/coinmarketcap { };
+  yattag = callPackage ../development/python-modules/yattag { };
 
-  pyowm = callPackage ../development/python-modules/pyowm { };
+  ydiff = callPackage ../development/python-modules/ydiff { };
 
-  prometheus_client = callPackage ../development/python-modules/prometheus_client { };
+  yeelight = callPackage ../development/python-modules/yeelight { };
 
-  pysdl2 = callPackage ../development/python-modules/pysdl2 { };
+  yenc = callPackage ../development/python-modules/yenc { };
 
-  pyogg = callPackage ../development/python-modules/pyogg { };
+  yfinance = callPackage ../development/python-modules/yfinance { };
 
-  rubymarshal = callPackage ../development/python-modules/rubymarshal { };
+  yoda = toPythonModule (pkgs.yoda.override { inherit python; });
 
-  radio_beam = callPackage ../development/python-modules/radio_beam { };
+  youtube-dl = callPackage ../tools/misc/youtube-dl { };
 
-  spectral-cube = callPackage ../development/python-modules/spectral-cube { };
+  youtube-dl-light = callPackage ../tools/misc/youtube-dl {
+    ffmpegSupport = false;
+    phantomjsSupport = false;
+  };
 
-  astunparse = callPackage ../development/python-modules/astunparse { };
+  yowsup = callPackage ../development/python-modules/yowsup { };
 
-  gast = callPackage ../development/python-modules/gast { };
+  yt = callPackage ../development/python-modules/yt { };
 
-  ibis = callPackage ../development/python-modules/ibis { };
+  yubico-client = callPackage ../development/python-modules/yubico-client { };
 
-  ibis-framework = callPackage ../development/python-modules/ibis-framework { };
+  z3c-checkversions = callPackage ../development/python-modules/z3c-checkversions { };
 
-  qiskit = callPackage ../development/python-modules/qiskit { };
+  z3 = (toPythonModule (pkgs.z3.override { inherit python; })).python;
 
-  qiskit-aer = callPackage ../development/python-modules/qiskit-aer { };
+  zake = callPackage ../development/python-modules/zake { };
 
-  qiskit-aqua = callPackage ../development/python-modules/qiskit-aqua { };
+  zarr = callPackage ../development/python-modules/zarr { };
 
-  qiskit-ibmq-provider = callPackage ../development/python-modules/qiskit-ibmq-provider { };
+  zbase32 = callPackage ../development/python-modules/zbase32 { };
 
-  qiskit-ignis = callPackage ../development/python-modules/qiskit-ignis { };
+  zc_buildout221 = callPackage ../development/python-modules/buildout { };
 
-  qiskit-terra = callPackage ../development/python-modules/qiskit-terra { };
+  zc_buildout = self.zc_buildout221; # A patched version of buildout, useful for buildout based development on Nix
 
-  qasm2image = callPackage ../development/python-modules/qasm2image { };
+  zc_buildout_nix = callPackage ../development/python-modules/buildout-nix { };
 
-  simpy = callPackage ../development/python-modules/simpy { };
+  zc_lockfile = callPackage ../development/python-modules/zc_lockfile { };
 
-  x256 = callPackage ../development/python-modules/x256 { };
+  zconfig = callPackage ../development/python-modules/zconfig { };
 
-  yattag = callPackage ../development/python-modules/yattag { };
+  zdaemon = callPackage ../development/python-modules/zdaemon { };
 
-  yfinance = callPackage ../development/python-modules/yfinance { };
+  zeep = callPackage ../development/python-modules/zeep { };
 
-  xenomapper = disabledIf (!isPy3k) (callPackage ../applications/science/biology/xenomapper { });
+  zeitgeist = disabledIf isPy3k (toPythonModule (pkgs.zeitgeist.override { python2Packages = self; })).py;
 
-  z3 = (toPythonModule (pkgs.z3.override {
-    inherit python;
-  })).python;
+  zerobin = callPackage ../development/python-modules/zerobin { };
 
   zeroc-ice = callPackage ../development/python-modules/zeroc-ice { };
 
-  zm-py = callPackage ../development/python-modules/zm-py { };
+  zeroconf = callPackage ../development/python-modules/zeroconf { };
 
-  rfc7464 = callPackage ../development/python-modules/rfc7464 { };
+  zerorpc = callPackage ../development/python-modules/zerorpc { };
 
-  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; };
+  zetup = callPackage ../development/python-modules/zetup { };
 
-  libtorrentRasterbar = (toPythonModule (pkgs.libtorrentRasterbar.override {
-    inherit python;
-  })).python;
+  zfec = callPackage ../development/python-modules/zfec { };
 
-  libiio = (toPythonModule (pkgs.libiio.override {
-    inherit python;
-  })).python;
+  zha-quirks = callPackage ../development/python-modules/zha-quirks { };
 
-  localzone = callPackage ../development/python-modules/localzone { };
+  zict = callPackage ../development/python-modules/zict { };
 
-  scour = callPackage ../development/python-modules/scour { };
+  zigpy = callPackage ../development/python-modules/zigpy { };
 
-  pymssql = throw "pymssql has been abandoned upstream."; # added 2020-05-04
+  zigpy-cc = callPackage ../development/python-modules/zigpy-cc { };
 
-  nanoleaf = callPackage ../development/python-modules/nanoleaf { };
+  zigpy-deconz = callPackage ../development/python-modules/zigpy-deconz { };
 
-  nanotime = callPackage ../development/python-modules/nanotime { };
+  zigpy-xbee = callPackage ../development/python-modules/zigpy-xbee { };
 
-  importlib-metadata = callPackage ../development/python-modules/importlib-metadata {};
+  zigpy-zigate = callPackage ../development/python-modules/zigpy-zigate { };
 
-  importlib-resources = callPackage ../development/python-modules/importlib-resources {};
+  zimports = callPackage ../development/python-modules/zimports { };
 
-  srptools = callPackage ../development/python-modules/srptools { };
+  zipfile36 = callPackage ../development/python-modules/zipfile36 { };
 
-  srp = callPackage ../development/python-modules/srp { };
+  zipp = if pythonOlder "3.6" then
+    callPackage ../development/python-modules/zipp/1.nix { }
+  else
+    callPackage ../development/python-modules/zipp { };
 
-  curve25519-donna = callPackage ../development/python-modules/curve25519-donna { };
+  zipstream = callPackage ../development/python-modules/zipstream { };
 
-  pyatv = callPackage ../development/python-modules/pyatv { };
+  zm-py = callPackage ../development/python-modules/zm-py { };
 
-  pybotvac = callPackage ../development/python-modules/pybotvac { };
+  zodb = callPackage ../development/python-modules/zodb { };
 
-  pymetno = callPackage ../development/python-modules/pymetno { };
+  zodbpickle = callPackage ../development/python-modules/zodbpickle { };
 
-  pytado = callPackage ../development/python-modules/pytado { };
+  zope_broken = callPackage ../development/python-modules/zope_broken { };
 
-  casttube = callPackage ../development/python-modules/casttube { };
+  zope_component = callPackage ../development/python-modules/zope_component { };
 
-  lzstring = callPackage ../development/python-modules/lzstring { };
+  zope_configuration = callPackage ../development/python-modules/zope_configuration { };
 
-  flickrapi = callPackage ../development/python-modules/flickrapi { };
+  zope_contenttype = callPackage ../development/python-modules/zope_contenttype { };
 
-  aioesphomeapi = callPackage ../development/python-modules/aioesphomeapi { };
+  zope_copy = callPackage ../development/python-modules/zope_copy { };
 
-  mwparserfromhell = callPackage ../development/python-modules/mwparserfromhell { };
+  zope-deferredimport = callPackage ../development/python-modules/zope-deferredimport { };
 
-  starlette = callPackage ../development/python-modules/starlette { };
+  zope_deprecation = callPackage ../development/python-modules/zope_deprecation { };
 
-  uvicorn = callPackage ../development/python-modules/uvicorn { };
+  zope_dottedname = callPackage ../development/python-modules/zope_dottedname { };
 
-  pydantic = callPackage ../development/python-modules/pydantic { };
+  zope_event = callPackage ../development/python-modules/zope_event { };
 
-  fastapi = callPackage ../development/python-modules/fastapi { };
+  zope_exceptions = callPackage ../development/python-modules/zope_exceptions { };
 
-  stringcase = callPackage ../development/python-modules/stringcase { };
+  zope_filerepresentation = callPackage ../development/python-modules/zope_filerepresentation { };
 
-  webrtcvad = callPackage ../development/python-modules/webrtcvad { };
+  zope-hookable = callPackage ../development/python-modules/zope-hookable { };
 
-  pykwalify = callPackage ../development/python-modules/pykwalify { };
+  zope_i18nmessageid = callPackage ../development/python-modules/zope_i18nmessageid { };
 
-  west = callPackage ../development/python-modules/west { };
+  zope_interface = callPackage ../development/python-modules/zope_interface { };
 
-  wfuzz = callPackage ../development/python-modules/wfuzz { };
+  zope_lifecycleevent = callPackage ../development/python-modules/zope_lifecycleevent { };
 
-  wget = callPackage ../development/python-modules/wget { };
+  zope_location = callPackage ../development/python-modules/zope_location { };
 
-  runway-python = callPackage ../development/python-modules/runway-python { };
+  zope_proxy = callPackage ../development/python-modules/zope_proxy { };
 
-  pyprof2calltree = callPackage ../development/python-modules/pyprof2calltree { };
+  zope_schema = callPackage ../development/python-modules/zope_schema { };
 
-  hcloud = callPackage ../development/python-modules/hcloud { };
+  zope_size = callPackage ../development/python-modules/zope_size { };
 
-  managesieve = callPackage ../development/python-modules/managesieve { };
+  zope_testing = callPackage ../development/python-modules/zope_testing { };
 
-  pony = callPackage ../development/python-modules/pony { };
+  zope_testrunner = callPackage ../development/python-modules/zope_testrunner { };
 
-  rxv     = callPackage ../development/python-modules/rxv     { };
+  zopfli = callPackage ../development/python-modules/zopfli { };
 
-  userpath = callPackage ../development/python-modules/userpath { };
+  zstandard = callPackage ../development/python-modules/zstandard { };
+
+  zstd = callPackage ../development/python-modules/zstd { inherit (pkgs) zstd pkgconfig; };
 
-  pooch = callPackage ../development/python-modules/pooch {};
+  zxcvbn = callPackage ../development/python-modules/zxcvbn { };
 
 });
 
diff --git a/pkgs/top-level/stage.nix b/pkgs/top-level/stage.nix
index 9e07d2bf06146..58b0300cc79ce 100644
--- a/pkgs/top-level/stage.nix
+++ b/pkgs/top-level/stage.nix
@@ -215,6 +215,7 @@ let
       crossOverlays = [ (import ./static.nix) ];
     } // lib.optionalAttrs stdenv.hostPlatform.isLinux {
       crossSystem = {
+        isStatic = true;
         parsed = stdenv.hostPlatform.parsed // {
           abi = {
             gnu = lib.systems.parse.abis.musl;