about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/audio/audacity/default.nix2
-rw-r--r--pkgs/applications/audio/fmit/default.nix4
-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/qsynth/default.nix4
-rw-r--r--pkgs/applications/audio/renoise/default.nix4
-rw-r--r--pkgs/applications/audio/sonata/default.nix31
-rw-r--r--pkgs/applications/audio/sonic-visualiser/default.nix18
-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/blockchains/lnd.nix6
-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.nix12
-rw-r--r--pkgs/applications/editors/neovim/qt.nix1
-rw-r--r--pkgs/applications/editors/texstudio/default.nix4
-rw-r--r--pkgs/applications/editors/typora/default.nix8
-rw-r--r--pkgs/applications/editors/vim/qvim.nix113
-rw-r--r--pkgs/applications/graphics/shotwell/default.nix4
-rw-r--r--pkgs/applications/graphics/xfractint/default.nix4
-rw-r--r--pkgs/applications/misc/adobe-reader/default.nix4
-rw-r--r--pkgs/applications/misc/minder/default.nix4
-rw-r--r--pkgs/applications/misc/orca/default.nix4
-rw-r--r--pkgs/applications/misc/qdirstat/default.nix12
-rw-r--r--pkgs/applications/misc/sdcv/default.nix4
-rw-r--r--pkgs/applications/misc/worker/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix770
-rw-r--r--pkgs/applications/networking/cloudflared/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kops/default.nix17
-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/mailreaders/mutt/default.nix4
-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/office/gnumeric/default.nix8
-rw-r--r--pkgs/applications/office/portfolio/default.nix4
-rw-r--r--pkgs/applications/office/todo.txt-cli/default.nix4
-rw-r--r--pkgs/applications/office/zotero/default.nix4
-rw-r--r--pkgs/applications/radio/chirp/default.nix4
-rw-r--r--pkgs/applications/radio/fldigi/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/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/version-management/gitlab/data.json10
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/default.nix4
-rw-r--r--pkgs/applications/version-management/sparkleshare/default.nix87
-rw-r--r--pkgs/applications/version-management/yadm/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/build-support/cc-wrapper/default.nix12
-rw-r--r--pkgs/data/fonts/noto-fonts/default.nix36
-rw-r--r--pkgs/data/fonts/noto-fonts/tools.nix62
-rw-r--r--pkgs/data/fonts/twitter-color-emoji/default.nix25
-rw-r--r--pkgs/data/misc/cldr-emoji-annotation/default.nix4
-rw-r--r--pkgs/data/themes/marwaita/default.nix4
-rw-r--r--pkgs/data/themes/venta/default.nix47
-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/gnome-2/platform/libgnomeui/default.nix2
-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.nix8
-rw-r--r--pkgs/desktops/plasma-5/plasma-desktop/default.nix4
-rw-r--r--pkgs/desktops/plasma-5/plasma-desktop/hwclock-path.patch2
-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/go/1.15.nix4
-rw-r--r--pkgs/development/coq-modules/dpdgraph/default.nix4
-rw-r--r--pkgs/development/interpreters/j/default.nix2
-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/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/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/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/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/kde-frameworks/default.nix1
-rw-r--r--pkgs/development/libraries/kde-frameworks/kquickcharts.nix15
-rw-r--r--pkgs/development/libraries/libaacs/default.nix4
-rw-r--r--pkgs/development/libraries/libfilezilla/default.nix4
-rw-r--r--pkgs/development/libraries/libpwquality/default.nix19
-rw-r--r--pkgs/development/libraries/libraw/default.nix4
-rw-r--r--pkgs/development/libraries/libthreadar/default.nix35
-rw-r--r--pkgs/development/libraries/linbox/default.nix21
-rw-r--r--pkgs/development/libraries/notify-sharp/default.nix7
-rw-r--r--pkgs/development/libraries/pcl/default.nix4
-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/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/suitesparse-graphblas/default.nix4
-rw-r--r--pkgs/development/libraries/sparsehash/default.nix4
-rw-r--r--pkgs/development/libraries/speechd/default.nix4
-rw-r--r--pkgs/development/libraries/wcslib/default.nix4
-rw-r--r--pkgs/development/libraries/webkit2-sharp/default.nix49
-rw-r--r--pkgs/development/libraries/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/x265/default.nix2
-rw-r--r--pkgs/development/libraries/xapian/default.nix2
-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/posix/base.nix26
-rw-r--r--pkgs/development/ocaml-modules/posix/socket.nix16
-rw-r--r--pkgs/development/ocaml-modules/posix/types.nix15
-rw-r--r--pkgs/development/python-modules/afdko/default.nix55
-rw-r--r--pkgs/development/python-modules/booleanoperations/default.nix34
-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/credstash/default.nix10
-rw-r--r--pkgs/development/python-modules/databricks-connect/default.nix32
-rw-r--r--pkgs/development/python-modules/defcon/default.nix35
-rw-r--r--pkgs/development/python-modules/dlib/default.nix4
-rw-r--r--pkgs/development/python-modules/fontmath/default.nix25
-rw-r--r--pkgs/development/python-modules/fontparts/default.nix39
-rw-r--r--pkgs/development/python-modules/fontpens/default.nix38
-rw-r--r--pkgs/development/python-modules/fonttools/default.nix62
-rw-r--r--pkgs/development/python-modules/howdoi/default.nix18
-rw-r--r--pkgs/development/python-modules/keep/default.nix36
-rw-r--r--pkgs/development/python-modules/mutatormath/default.nix25
-rw-r--r--pkgs/development/python-modules/pdfminer_six/default.nix4
-rw-r--r--pkgs/development/python-modules/pre-commit/default.nix4
-rw-r--r--pkgs/development/python-modules/psautohint/default.nix40
-rw-r--r--pkgs/development/python-modules/pytest-randomly/default.nix31
-rw-r--r--pkgs/development/python-modules/pytorch/bin.nix68
-rw-r--r--pkgs/development/python-modules/pytorch/binary-hashes.nix10
-rw-r--r--pkgs/development/python-modules/pytorch/default.nix4
-rw-r--r--pkgs/development/python-modules/solo-python/default.nix4
-rw-r--r--pkgs/development/python-modules/tensorflow/1/default.nix6
-rw-r--r--pkgs/development/python-modules/tensorflow/2/default.nix6
-rw-r--r--pkgs/development/python-modules/transformers/default.nix15
-rw-r--r--pkgs/development/python-modules/ufonormalizer/default.nix19
-rw-r--r--pkgs/development/python-modules/ufoprocessor/default.nix35
-rw-r--r--pkgs/development/python-modules/unicodedata2/default.nix23
-rw-r--r--pkgs/development/python-modules/zopfli/default.nix21
-rw-r--r--pkgs/development/tools/ameba/default.nix4
-rw-r--r--pkgs/development/tools/java/visualvm/default.nix4
-rw-r--r--pkgs/development/tools/misc/act/default.nix6
-rw-r--r--pkgs/development/tools/misc/objconv/default.nix4
-rw-r--r--pkgs/development/tools/misc/swig/4.nix4
-rw-r--r--pkgs/development/tools/ocaml/merlin/default.nix4
-rw-r--r--pkgs/development/tools/packer/default.nix2
-rw-r--r--pkgs/development/tools/rust/cbindgen/default.nix6
-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/ydiff/default.nix4
-rw-r--r--pkgs/development/web/deno/default.nix6
-rw-r--r--pkgs/development/web/deno/deps.nix8
-rw-r--r--pkgs/games/vassal/default.nix4
-rw-r--r--pkgs/misc/screensavers/xlockmore/default.nix4
-rw-r--r--pkgs/misc/seafile-shared/default.nix4
-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.nix321
-rw-r--r--pkgs/misc/vim-plugins/vim-plugin-names9
-rw-r--r--pkgs/misc/vscode-extensions/updateSettings.nix6
-rw-r--r--pkgs/misc/vscode-extensions/vscodeEnv.nix14
-rw-r--r--pkgs/misc/vscode-extensions/vscodeEnvTest.nix3
-rw-r--r--pkgs/misc/vscode-extensions/vscodeExts2nix.nix12
-rw-r--r--pkgs/misc/vscode-extensions/vscodeWithConfiguration.nix26
-rw-r--r--pkgs/os-specific/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/firmware/fwupd/default.nix5
-rw-r--r--pkgs/os-specific/linux/kernel/hardened/patches.json24
-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
-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/zfs/default.nix24
-rw-r--r--pkgs/servers/dns/knot-dns/default.nix5
-rw-r--r--pkgs/servers/etcd/default.nix9
-rw-r--r--pkgs/servers/irc/robustirc-bridge/default.nix29
-rw-r--r--pkgs/servers/metabase/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/victoriametrics/default.nix4
-rw-r--r--pkgs/servers/pounce/default.nix4
-rw-r--r--pkgs/servers/search/solr/default.nix4
-rw-r--r--pkgs/servers/ser2net/default.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/shells/xonsh/default.nix14
-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.nix26
-rw-r--r--pkgs/tools/X11/ckbcomp/default.nix4
-rw-r--r--pkgs/tools/admin/lego/default.nix4
-rw-r--r--pkgs/tools/admin/lxd/default.nix4
-rw-r--r--pkgs/tools/audio/qastools/default.nix4
-rw-r--r--pkgs/tools/backup/dar/default.nix24
-rw-r--r--pkgs/tools/filesystems/reiser4progs/default.nix4
-rw-r--r--pkgs/tools/misc/bashcards/default.nix4
-rw-r--r--pkgs/tools/misc/cpuminer-multi/default.nix4
-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/rpm-ostree/default.nix4
-rw-r--r--pkgs/tools/misc/thin-provisioning-tools/default.nix22
-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/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/package-management/nix-template/default.nix23
-rw-r--r--pkgs/tools/package-management/nix/default.nix8
-rw-r--r--pkgs/tools/security/doppler/default.nix4
-rw-r--r--pkgs/tools/security/fail2ban/default.nix2
-rw-r--r--pkgs/tools/security/kbs2/default.nix8
-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/pciutils/default.nix6
-rw-r--r--pkgs/tools/system/stress-ng/default.nix4
-rw-r--r--pkgs/tools/text/ocrmypdf/default.nix6
-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/top-level/aliases.nix2
-rw-r--r--pkgs/top-level/all-packages.nix106
-rw-r--r--pkgs/top-level/ocaml-packages.nix6
-rw-r--r--pkgs/top-level/python-packages.nix8211
-rw-r--r--pkgs/top-level/stage.nix1
330 files changed, 7359 insertions, 10561 deletions
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/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/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/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/sonata/default.nix b/pkgs/applications/audio/sonata/default.nix
index 73e47038a2624..cf3f173a096e9 100644
--- a/pkgs/applications/audio/sonata/default.nix
+++ b/pkgs/applications/audio/sonata/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, wrapGAppsHook, gettext
-, python3Packages, gnome3, gtk3, gsettings-desktop-schemas, gobject-introspection }:
+, python3Packages, gnome3, gtk3, glib, gdk-pixbuf, gsettings-desktop-schemas, gobject-introspection }:
 
 let
   inherit (python3Packages) buildPythonApplication isPy3k dbus-python pygobject3 mpd2 setuptools;
@@ -16,13 +16,30 @@ in buildPythonApplication rec {
 
   disabled = !isPy3k;
 
-  nativeBuildInputs = [ wrapGAppsHook gettext ];
+  nativeBuildInputs = [
+    gettext
+    gobject-introspection
+    wrapGAppsHook
+  ];
+
   buildInputs = [
+    glib
     gnome3.adwaita-icon-theme
     gsettings-desktop-schemas
+    gtk3
+    gdk-pixbuf
+  ];
+
+  # The optional tagpy dependency (for editing metadata) is not yet
+  # included because it's difficult to build.
+  pythonPath = [
+    dbus-python
+    mpd2
+    pygobject3
+    setuptools
   ];
 
-  # Otherwise the setup hook for gsettings-desktop-schemas is not run:
+  # Otherwise the setup hook for gobject-introspection is not run:
   # https://github.com/NixOS/nixpkgs/issues/56943
   strictDeps = false;
 
@@ -31,14 +48,6 @@ in buildPythonApplication rec {
     sed -i '/localmpd/d' sonata/consts.py
   '';
 
-  propagatedBuildInputs = [
-    gobject-introspection gtk3 pygobject3 setuptools
-  ];
-
-  # The optional tagpy dependency (for editing metadata) is not yet
-  # included because it's difficult to build.
-  pythonPath = [ dbus-python pygobject3 mpd2 ];
-
   meta = {
     description = "An elegant client for the Music Player Daemon";
     longDescription = ''
diff --git a/pkgs/applications/audio/sonic-visualiser/default.nix b/pkgs/applications/audio/sonic-visualiser/default.nix
index e8b6a4d4313b8..2593bf38d194b 100644
--- a/pkgs/applications/audio/sonic-visualiser/default.nix
+++ b/pkgs/applications/audio/sonic-visualiser/default.nix
@@ -1,8 +1,8 @@
 # TODO add plugins having various licenses, see http://www.vamp-plugins.org/download.html
 
 { stdenv, fetchurl, alsaLib, bzip2, fftw, libjack2, libX11, liblo
-, libmad, libogg, lrdf, librdf_raptor, librdf_rasqal, libsamplerate
-, libsndfile, pkgconfig, libpulseaudio, qtbase, qtsvg, redland
+, libmad, lrdf, librdf_raptor, librdf_rasqal, libsamplerate
+, libsndfile, pkg-config, libpulseaudio, qtbase, qtsvg, redland
 , rubberband, serd, sord, vamp-plugin-sdk, fftwFloat
 , capnproto, liboggz, libfishsound, libid3tag, opusfile
 , wrapQtAppsHook
@@ -10,13 +10,14 @@
 
 stdenv.mkDerivation rec {
   pname = "sonic-visualiser";
-  version = "4.0.1";
+  version = "4.2";
 
   src = fetchurl {
-    url = "https://code.soundsoftware.ac.uk/attachments/download/2607/${pname}-${version}.tar.gz";
-    sha256 = "14674adzp3chilymna236qyvci3b1zmi3wyz696wk7bcd3ndpsg6";
+    url = "https://code.soundsoftware.ac.uk/attachments/download/2755/${pname}-${version}.tar.gz";
+    sha256 = "1wsvranhvdl21ksbinbgb55qvs3g2d4i57ssj1vx2aln6m01ms9q";
   };
 
+  nativeBuildInputs = [ pkg-config wrapQtAppsHook ];
   buildInputs =
     [ libsndfile qtbase qtsvg fftw fftwFloat bzip2 lrdf rubberband
       libsamplerate vamp-plugin-sdk alsaLib librdf_raptor librdf_rasqal redland
@@ -27,7 +28,6 @@ stdenv.mkDerivation rec {
       # portaudio
       libpulseaudio
       libmad
-      libogg # ?
       libfishsound
       liblo
       libX11
@@ -37,15 +37,13 @@ stdenv.mkDerivation rec {
       opusfile
     ];
 
-  nativeBuildInputs = [ pkgconfig wrapQtAppsHook ];
-
-  enableParallelBuilding = true;
-
   # comment out the tests
   preConfigure = ''
     sed -i 's/sub_test_svcore_/#sub_test_svcore_/' sonic-visualiser.pro
   '';
 
+  enableParallelBuilding = true;
+
   meta = with stdenv.lib; {
     description = "View and analyse contents of music audio files";
     homepage = "https://www.sonicvisualiser.org/";
diff --git a/pkgs/applications/audio/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/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/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 3a0bef24ab73b..e84d2e9dac1af 100644
--- a/pkgs/applications/editors/android-studio/default.nix
+++ b/pkgs/applications/editors/android-studio/default.nix
@@ -14,14 +14,14 @@ 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.7"; # "Android Studio 4.2 Canary 7"
-    build = "201.6720134";
-    sha256Hash = "1c9s6rd0z596qr7hbil5rl3fqby7c8h7ma52d1qj5rxra73k77nz";
+    version = "4.2.0.8"; # "Android Studio 4.2 Canary 8"
+    build = "202.6787931";
+    sha256Hash = "0y5fzr22dknzxay1bhd1ymhdnmdrpccdw8dswy2z9bxjsvq65n62";
   };
 in {
   # Attributes are named by their corresponding release channels
diff --git a/pkgs/applications/editors/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/typora/default.nix b/pkgs/applications/editors/typora/default.nix
index 049ba45f7af37..3c55cffdcf12a 100644
--- a/pkgs/applications/editors/typora/default.nix
+++ b/pkgs/applications/editors/typora/default.nix
@@ -2,7 +2,7 @@
 , lib
 , fetchurl
 , makeWrapper
-, electron_8
+, electron_9
 , dpkg
 , gtk3
 , glib
@@ -13,15 +13,15 @@
 }:
 
 let
-  electron = electron_8;
+  electron = electron_9;
 in
 stdenv.mkDerivation rec {
   pname = "typora";
-  version = "0.9.89";
+  version = "0.9.95";
 
   src = fetchurl {
     url = "https://www.typora.io/linux/typora_${version}_amd64.deb";
-    sha256 = "0gk8j13z1ymad34zzcy4vqwyjgd5khgyw5xjj9rbzm5v537kqmx6";
+    sha256 = "0kgzk7z707vlbjrvykrnw2h6wscmc3h5hxycyz1z1j2cz26fns4p";
   };
 
   nativeBuildInputs = [
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/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/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/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/orca/default.nix b/pkgs/applications/misc/orca/default.nix
index 77c1f67ecf0c5..ccb7f3e47c86b 100644
--- a/pkgs/applications/misc/orca/default.nix
+++ b/pkgs/applications/misc/orca/default.nix
@@ -35,13 +35,13 @@
 
 buildPythonApplication rec {
   pname = "orca";
-  version = "3.36.4";
+  version = "3.36.5";
 
   format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1s6qrmbn3pywidwwfa24ly21c1cz6fnnsipi9vlp3sxswbdcwiwz";
+    sha256 = "0nyb33p4y6nmln41pi70c8hiyjyasaryy10mazi7b2s6fy9pk25x";
   };
 
   patches = [
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/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/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/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/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/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/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/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/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/portfolio/default.nix b/pkgs/applications/office/portfolio/default.nix
index 73f50998f6371..310f57d7cda7c 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.0";
 
   src = fetchurl {
     url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz";
-    sha256 = "0l328wvikdmm2i0kbpv9qwd0mkbs24y89cgfg28swhcvpywjpk36";
+    sha256 = "12skl08isz2f1a6ksmcw7sm82xk909y636ch8jp80lglb21i0q1j";
   };
 
   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/zotero/default.nix b/pkgs/applications/office/zotero/default.nix
index c0690415d6773..567508c36753f 100644
--- a/pkgs/applications/office/zotero/default.nix
+++ b/pkgs/applications/office/zotero/default.nix
@@ -35,11 +35,11 @@
 
 stdenv.mkDerivation rec {
   pname = "zotero";
-  version = "5.0.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 ];
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/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/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/version-management/gitlab/data.json b/pkgs/applications/version-management/gitlab/data.json
index fe211d1b87f1d..9389934ffc68f 100644
--- a/pkgs/applications/version-management/gitlab/data.json
+++ b/pkgs/applications/version-management/gitlab/data.json
@@ -1,13 +1,13 @@
 {
-  "version": "13.0.12",
-  "repo_hash": "0m9pn1alxdib9ppf878wf186bvn0llik7vcpqijzcdzc18q9cldq",
+  "version": "13.0.14",
+  "repo_hash": "15is18x631ifsj4iwmrs1s9lc3i99hwsxxf5v42qldbmsys31l1k",
   "owner": "gitlab-org",
   "repo": "gitlab",
-  "rev": "v13.0.12-ee",
+  "rev": "v13.0.14-ee",
   "passthru": {
-    "GITALY_SERVER_VERSION": "13.0.12",
+    "GITALY_SERVER_VERSION": "13.0.14",
     "GITLAB_PAGES_VERSION": "1.18.0",
     "GITLAB_SHELL_VERSION": "13.2.0",
     "GITLAB_WORKHORSE_VERSION": "8.31.2"
   }
-}
+}
\ No newline at end of file
diff --git a/pkgs/applications/version-management/gitlab/gitaly/default.nix b/pkgs/applications/version-management/gitlab/gitaly/default.nix
index 5f3fa345d8558..84cf1e500a228 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/default.nix
@@ -19,14 +19,14 @@ let
       };
   };
 in buildGoPackage rec {
-  version = "13.0.12";
+  version = "13.0.14";
   pname = "gitaly";
 
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitaly";
     rev = "v${version}";
-    sha256 = "00jzrib8f51b3wkl0zy9a9cr5j9kp6cmm49vxm27zgxpyz8k1axw";
+    sha256 = "16ynkwiv0faa60msashj5w1bc4rdh7yv2qjmpcbf7dwq54gqmlbv";
   };
 
   # Fix a check which assumes that hook files are writeable by their
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/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/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/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/data/fonts/noto-fonts/default.nix b/pkgs/data/fonts/noto-fonts/default.nix
index e077fc3034456..40a6c88743937 100644
--- a/pkgs/data/fonts/noto-fonts/default.nix
+++ b/pkgs/data/fonts/noto-fonts/default.nix
@@ -6,11 +6,12 @@
 , fetchzip
 , optipng
 , cairo
-, python3Packages
+, python3
 , pkgconfig
 , pngquant
 , which
 , imagemagick
+, zopfli
 }:
 
 let
@@ -110,25 +111,36 @@ in
   };
 
   noto-fonts-emoji = let
-    version = "unstable-2019-10-22";
+    version = "unstable-2020-08-20";
+    emojiPythonEnv =
+      python3.withPackages (p: with p; [ fonttools nototools ]);
   in stdenv.mkDerivation {
     pname = "noto-fonts-emoji";
     inherit version;
 
     src = fetchFromGitHub {
-      owner = "googlei18n";
+      owner = "googlefonts";
       repo = "noto-emoji";
-      rev = "018aa149d622a4fea11f01c61a7207079da301bc";
-      sha256 = "0qmnnjpp5lza6g5m3ki6hj46p891h9vl42k3acd0qw8i0jj5yn2c";
+      rev = "1bc491419fa2925d018f27bfe702792031be0e68";
+      sha256 = "1vak4s1p4wlwzpnqfb1c2sg62q82gnjpnmqrfz8xl6bd0z55imzy";
     };
 
-    buildInputs = [ cairo ];
-    nativeBuildInputs = [ pngquant optipng which cairo pkgconfig imagemagick ]
-                     ++ (with python3Packages; [ python fonttools nototools ]);
+    nativeBuildInputs = [
+      cairo
+      imagemagick
+      zopfli
+      pngquant
+      which
+      pkgconfig
+      emojiPythonEnv
+    ];
 
     postPatch = ''
-      sed -i 's,^PNGQUANT :=.*,PNGQUANT := ${pngquant}/bin/pngquant,' Makefile
-      patchShebangs flag_glyph_name.py
+      patchShebangs *.py
+      patchShebangs third_party/color_emoji/*.py
+      # remove check for virtualenv, since we handle
+      # python requirements using python.withPackages
+      sed -i '/ifndef VIRTUAL_ENV/,+2d' Makefile
     '';
 
     enableParallelBuilding = true;
@@ -141,7 +153,7 @@ in
     meta = with lib; {
       inherit version;
       description = "Color and Black-and-White emoji fonts";
-      homepage = "https://github.com/googlei18n/noto-emoji";
+      homepage = "https://github.com/googlefonts/noto-emoji";
       license = with licenses; [ ofl asl20 ];
       platforms = platforms.all;
       maintainers = with maintainers; [ mathnerd314 ];
@@ -165,7 +177,7 @@ in
 
     meta = with stdenv.lib; {
       description = "Noto Emoji with extended Blob support";
-      homepage = https://github.com/C1710/blobmoji;
+      homepage = "https://github.com/C1710/blobmoji";
       license = with licenses; [ ofl asl20 ];
       platforms = platforms.all;
       maintainers = with maintainers; [ rileyinman ];
diff --git a/pkgs/data/fonts/noto-fonts/tools.nix b/pkgs/data/fonts/noto-fonts/tools.nix
index 3cc1570161e63..6ea26f7c79d84 100644
--- a/pkgs/data/fonts/noto-fonts/tools.nix
+++ b/pkgs/data/fonts/noto-fonts/tools.nix
@@ -1,32 +1,62 @@
-{ fetchFromGitHub, lib, fetchpatch, buildPythonPackage, isPy3k, fonttools, numpy, pillow, six, bash }:
+{ fetchFromGitHub, lib, buildPythonPackage, pythonOlder
+, afdko, appdirs, attrs, black, booleanoperations, brotlipy, click
+, defcon, fontmath, fontparts, fontpens, fonttools, fs, lxml
+, mutatormath, pathspec, psautohint, pyclipper, pytz, regex, scour
+, toml, typed-ast, ufonormalizer, ufoprocessor, unicodedata2, zopfli
+, pillow, six, bash, setuptools_scm }:
 
 buildPythonPackage rec {
   pname = "nototools";
-  version = "unstable-2019-10-21";
+  version = "0.2.12";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "googlefonts";
     repo = "nototools";
-    rev = "cae92ce958bee37748bf0602f5d7d97bb6db98ca";
-    sha256 = "1jqr0dz23rjqiyxw1w69l6ry16dwdcf3c6cysiy793g2v7pir2yi";
+    rev = "v${version}";
+    sha256 = "0drmx1asni3g6616fa4gjn5n43qkcf7icvxq9y2krpjxq78wcmc5";
   };
 
-  propagatedBuildInputs = [ fonttools numpy ];
-
-  patches = lib.optionals isPy3k [
-    # Additional Python 3 compat https://github.com/googlefonts/nototools/pull/497
-    (fetchpatch {
-      url = "https://github.com/googlefonts/nototools/commit/ded1f311b3260f015b5c5b80f05f7185392c4eff.patch";
-      sha256 = "0bn0rlbddxicw0h1dnl0cibgj6xjalja2qcm563y7kk3z5cdwhgq";
-    })
-  ];
-
   postPatch = ''
-    sed -ie "s^join(_DATA_DIR_PATH,^join(\"$out/third_party/ucd\",^" nototools/unicode_data.py
+    sed -i 's/use_scm_version=.*,/version="${version}",/' setup.py
   '';
 
+  nativeBuildInputs = [ setuptools_scm ];
+
+  propagatedBuildInputs = [
+    afdko
+    appdirs
+    attrs
+    black
+    booleanoperations
+    brotlipy
+    click
+    defcon
+    fontmath
+    fontparts
+    fontpens
+    fonttools
+    lxml
+    mutatormath
+    pathspec
+    psautohint
+    pyclipper
+    pytz
+    regex
+    scour
+    toml
+    typed-ast
+    ufonormalizer
+    ufoprocessor
+    unicodedata2
+    zopfli
+  ];
+
   checkInputs = [
-    pillow six bash
+    pillow
+    six
+    bash
   ];
 
   checkPhase = ''
diff --git a/pkgs/data/fonts/twitter-color-emoji/default.nix b/pkgs/data/fonts/twitter-color-emoji/default.nix
index ac3930853cf98..8435957fe2011 100644
--- a/pkgs/data/fonts/twitter-color-emoji/default.nix
+++ b/pkgs/data/fonts/twitter-color-emoji/default.nix
@@ -3,9 +3,8 @@
 
 { stdenv
 , fetchFromGitHub
-, fetchpatch
 , cairo
-, graphicsmagick
+, imagemagick
 , pkg-config
 , pngquant
 , python3
@@ -15,7 +14,7 @@
 }:
 
 let
-  version = "12.1.5";
+  version = "13.0.1";
 
   twemojiSrc = fetchFromGitHub {
     name = "twemoji";
@@ -25,6 +24,9 @@ let
     sha256 = "0acinlv2l3s1jga2i9wh16mvgkxw4ipzgvjx8c80zd104lpdpgd9";
   };
 
+  pythonEnv =
+    python3.withPackages (p: [ p.fonttools p.nototools ]);
+
 in
 stdenv.mkDerivation rec {
   pname = "twitter-color-emoji";
@@ -44,23 +46,14 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     cairo
-    graphicsmagick
+    imagemagick
     pkg-config
     pngquant
-    python3
-    python3.pkgs.nototools
+    pythonEnv
     which
     zopfli
   ];
 
-  patches = [
-    # ImageMagick -> GraphicsMagick
-    (fetchpatch {
-      url = "https://src.fedoraproject.org/rpms/twitter-twemoji-fonts/raw/07778605d50696f6aa929020e82611a01d254c90/f/noto-emoji-use-gm.patch";
-      sha256 = "06vg16z79s5adyjy8r3mr8fd391b1hi4xkqvbzkmnjwaai7p08lk";
-    })
-  ];
-
   postPatch = let
     templateSubstitutions = stdenv.lib.concatStringsSep "; " [
       ''s#Noto Color Emoji#Twitter Color Emoji#''
@@ -74,7 +67,7 @@ stdenv.mkDerivation rec {
       ''s#http://scripts.sil.org/OFL#http://creativecommons.org/licenses/by/4.0/#''
     ];
   in ''
-    patchShebangs ./flag_glyph_name.py
+    ${noto-fonts-emoji.postPatch}
 
     sed '${templateSubstitutions}' NotoColorEmoji.tmpl.ttx.tmpl > TwitterColorEmoji.tmpl.ttx.tmpl
     pushd ${twemojiSrc.name}/assets/72x72/
@@ -88,6 +81,8 @@ stdenv.mkDerivation rec {
     "EMOJI=TwitterColorEmoji"
     "EMOJI_SRC_DIR=${twemojiSrc.name}/assets/72x72"
     "BODY_DIMENSIONS=76x72"
+    # twemoji contains some codepoints noto doesn't like
+    "BYPASS_SEQUENCE_CHECK=True"
   ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/data/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/default.nix b/pkgs/data/themes/marwaita/default.nix
index 6bd6de32f00bd..5f09927e15c69 100644
--- a/pkgs/data/themes/marwaita/default.nix
+++ b/pkgs/data/themes/marwaita/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "marwaita";
-  version = "7.5";
+  version = "7.5.1";
 
   src = fetchFromGitHub {
     owner = "darkomarko42";
     repo = pname;
     rev = version;
-    sha256 = "13p0sr5gnb8ww9fx83p6nykdn82jd6hx6l94z939g0ghj5aizbbl";
+    sha256 = "0ig5wc6dkbly6yrvd13h4lyr8x0y7k3d9iv4rhg0pnjgcpna83mw";
   };
 
   buildInputs = [
diff --git a/pkgs/data/themes/venta/default.nix b/pkgs/data/themes/venta/default.nix
new file mode 100644
index 0000000000000..1086aaeb70958
--- /dev/null
+++ b/pkgs/data/themes/venta/default.nix
@@ -0,0 +1,47 @@
+{ stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, gtk_engines
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "venta";
+  version = "2020-08-20";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = "f9b7ea560def5c9d25a14015d265ba559d3501ca";
+    sha256 = "13rdavspz1q3zk2h04jpd77hxdcifg42kd71qq13ryg4b5yzqqgb";
+  };
+
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Venta* $out/share/themes
+    rm $out/share/themes/*/COPYING
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Gtk theme based on windows 10 style";
+    homepage = "https://www.pling.com/p/1386774/";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/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/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/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..7c1f2292ecaaa 100644
--- a/pkgs/desktops/plasma-5/kwin/default.nix
+++ b/pkgs/desktops/plasma-5/kwin/default.nix
@@ -5,13 +5,14 @@
   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/plasma-desktop/default.nix b/pkgs/desktops/plasma-5/plasma-desktop/default.nix
index 4183b38ba4935..b042fc3bd6aca 100644
--- a/pkgs/desktops/plasma-5/plasma-desktop/default.nix
+++ b/pkgs/desktops/plasma-5/plasma-desktop/default.nix
@@ -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,7 +27,7 @@ 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);
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-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..e70d18621a93c 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 = "0vj70mhx6qhvbh4vn9qk9ir5w4s2m76hw2lsxmh3ibgsydz4yilz";
+    })
   ];
 }
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/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/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/interpreters/j/default.nix b/pkgs/development/interpreters/j/default.nix
index 8e6b434281eb1..e2bf921f882a0 100644
--- a/pkgs/development/interpreters/j/default.nix
+++ b/pkgs/development/interpreters/j/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, readline, libedit, bc
-, avxSupport ? false
+, avxSupport ? stdenv.hostPlatform.avxSupport
 }:
 
 stdenv.mkDerivation rec {
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/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/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/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/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/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/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/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/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/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/libthreadar/default.nix b/pkgs/development/libraries/libthreadar/default.nix
new file mode 100644
index 0000000000000..ed19fab6d994f
--- /dev/null
+++ b/pkgs/development/libraries/libthreadar/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  version = "1.3.0";
+  pname = "libthreadar";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/libthreadar/${pname}-${version}.tar.gz";
+    sha256 = "0g2wxykawlsj6ma9slbbk0bxynqvmkwhaln2fiwc21x7nhjvpn9z";
+  };
+
+  outputs = [ "out" "dev" ];
+
+  configureFlags = [
+    "--disable-build-html"
+  ];
+
+  postInstall = ''
+    # Disable html help
+    rm -r "$out"/share
+  '';
+
+  meta = {
+    homepage = "http://libthreadar.sourceforge.net/";
+    description = ''
+      Libthreadar is a C++ library providing a small set of C++ classes to manipulate
+      threads in a very simple and efficient way from your C++ code.
+    '';
+    maintainers = with maintainers; [ izorkin ];
+    license = licenses.lgpl3;
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/libraries/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/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/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-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/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/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/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/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/x265/default.nix b/pkgs/development/libraries/x265/default.nix
index ae3392aeb12a3..48ed6cf468025 100644
--- a/pkgs/development/libraries/x265/default.nix
+++ b/pkgs/development/libraries/x265/default.nix
@@ -84,9 +84,11 @@ stdenv.mkDerivation rec {
     "-DENABLE_SHARED=ON"
     "-DHIGH_BIT_DEPTH=OFF"
     "-DENABLE_HDR10_PLUS=OFF"
+  ] ++ stdenv.lib.optionals is64bit [
     "-DEXTRA_LIB=${libx265-10}/lib/libx265.a;${libx265-12}/lib/libx265.a"
     "-DLINKED_10BIT=ON"
     "-DLINKED_12BIT=ON"
+  ] ++ [
     (mkFlag cliSupport "ENABLE_CLI")
   ] ++ cmakeFlagsAll;
 
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/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/posix/base.nix b/pkgs/development/ocaml-modules/posix/base.nix
new file mode 100644
index 0000000000000..a6fe690ebcc77
--- /dev/null
+++ b/pkgs/development/ocaml-modules/posix/base.nix
@@ -0,0 +1,26 @@
+{ lib, buildDunePackage, fetchFromGitHub
+, ctypes, integers
+}:
+
+buildDunePackage rec {
+  pname = "posix-base";
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    owner = "savonet";
+    repo = "ocaml-posix";
+    rev = "v${version}";
+    sha256 = "18px8hfqcfy2lk8105ki3hrxxigs44gs046ba0fqda6wzd0hr82b";
+  };
+
+  useDune2 = true;
+
+  propagatedBuildInputs = [ ctypes integers ];
+
+  meta = {
+    homepage = "https://www.liquidsoap.info/ocaml-posix/";
+    description = "Base module for the posix bindings";
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.vbgl ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/posix/socket.nix b/pkgs/development/ocaml-modules/posix/socket.nix
new file mode 100644
index 0000000000000..69a469bbecedf
--- /dev/null
+++ b/pkgs/development/ocaml-modules/posix/socket.nix
@@ -0,0 +1,16 @@
+{ lib, buildDunePackage, posix-base }:
+
+buildDunePackage {
+  pname = "posix-socket";
+
+  inherit (posix-base) version src useDune2;
+
+  propagatedBuildInputs = [ posix-base ];
+
+  doCheck = true;
+
+  meta = posix-base.meta // {
+    description = "Bindings for posix sockets";
+  };
+
+}
diff --git a/pkgs/development/ocaml-modules/posix/types.nix b/pkgs/development/ocaml-modules/posix/types.nix
new file mode 100644
index 0000000000000..2512fe892c131
--- /dev/null
+++ b/pkgs/development/ocaml-modules/posix/types.nix
@@ -0,0 +1,15 @@
+{ lib, buildDunePackage, posix-base }:
+
+buildDunePackage {
+  pname = "posix-types";
+
+  inherit (posix-base) version src useDune2;
+
+  minimumOCamlVersion = "4.03";
+
+  propagatedBuildInputs = [ posix-base ];
+
+  meta = posix-base.meta // {
+    description = "Bindings for the types defined in <sys/types.h>";
+  };
+}
diff --git a/pkgs/development/python-modules/afdko/default.nix b/pkgs/development/python-modules/afdko/default.nix
new file mode 100644
index 0000000000000..5d960b5e92e8e
--- /dev/null
+++ b/pkgs/development/python-modules/afdko/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, buildPythonPackage, fetchPypi, pythonOlder, python
+, fonttools, defcon, lxml, fs, unicodedata2, zopfli, brotlipy, fontpens
+, brotli, fontmath, mutatormath, booleanoperations
+, ufoprocessor, ufonormalizer, psautohint
+, setuptools_scm
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "afdko";
+  version = "3.5.0";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0wid4l70bxm297xgayyrgw5glhp6n92gh4sz1nd4rncgf1ziz8ck";
+  };
+
+  nativeBuildInputs = [ setuptools_scm ];
+
+  propagatedBuildInputs = [
+    booleanoperations
+    fonttools
+    lxml           # fonttools[lxml], defcon[lxml] extra
+    fs             # fonttools[ufo] extra
+    unicodedata2   # fonttools[unicode] extra
+    brotlipy       # fonttools[woff] extra
+    zopfli         # fonttools[woff] extra
+    fontpens
+    brotli
+    defcon
+    fontmath
+    mutatormath
+    ufoprocessor
+    ufonormalizer
+    psautohint
+  ];
+
+  # tests are broken on non x86_64
+  # https://github.com/adobe-type-tools/afdko/issues/1163
+  # https://github.com/adobe-type-tools/afdko/issues/1216
+  doCheck = stdenv.isx86_64;
+  checkInputs = [ pytest ];
+  checkPhase = ''
+    PATH="$PATH:$out/bin" py.test
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Adobe Font Development Kit for OpenType";
+    homepage = "https://adobe-type-tools.github.io/afdko/";
+    license = licenses.asl20;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/python-modules/booleanoperations/default.nix b/pkgs/development/python-modules/booleanoperations/default.nix
new file mode 100644
index 0000000000000..c747df90f5a55
--- /dev/null
+++ b/pkgs/development/python-modules/booleanoperations/default.nix
@@ -0,0 +1,34 @@
+{ lib, buildPythonPackage, fetchPypi
+, fonttools, fs, pyclipper, defcon, fontpens
+, setuptools_scm, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "booleanOperations";
+  version = "0.9.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1f41lb19m8azchl1aqz6j5ycbspb8jsf1cnn42hlydxd68f85ylc";
+    extension = "zip";
+  };
+
+  nativeBuildInputs = [ setuptools_scm ];
+
+  propagatedBuildInputs = [
+    fonttools
+    fs
+    pyclipper
+    defcon
+    fontpens
+  ];
+
+  checkInputs = [ pytest ];
+
+  meta = with lib; {
+    description = "Boolean operations on paths";
+    homepage = "https://github.com/typemytype/booleanOperations";
+    license = licenses.mit;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/python-modules/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/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/defcon/default.nix b/pkgs/development/python-modules/defcon/default.nix
new file mode 100644
index 0000000000000..25c5902999224
--- /dev/null
+++ b/pkgs/development/python-modules/defcon/default.nix
@@ -0,0 +1,35 @@
+{ lib, buildPythonPackage, fetchPypi, pythonOlder
+, fonttools
+, pytest, pytestrunner, lxml, fs, unicodedata2, fontpens
+}:
+
+buildPythonPackage rec {
+  pname = "defcon";
+  version = "0.7.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1lfqsvxmq1j0nvp26gidnqkj1dyxv7jalc6i7fz1r3nc7niflrqr";
+    extension = "zip";
+  };
+
+  propagatedBuildInputs = [
+    fonttools
+  ];
+
+  checkInputs = [
+    pytest
+    pytestrunner
+    lxml
+    fs
+    unicodedata2
+    fontpens
+  ];
+
+  meta = with lib; {
+    description = "A set of UFO based objects for use in font editing applications";
+    homepage = "https://github.com/robotools/defcon";
+    license = licenses.mit;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/python-modules/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/fontmath/default.nix b/pkgs/development/python-modules/fontmath/default.nix
new file mode 100644
index 0000000000000..7a23abdd03745
--- /dev/null
+++ b/pkgs/development/python-modules/fontmath/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildPythonPackage, fetchPypi
+, fonttools
+, pytest, pytestrunner
+}:
+
+buildPythonPackage rec {
+  pname = "fontMath";
+  version = "0.6.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "09xdqdjyjlx5k9ymi36d7hkgvn55zzjzd65l2yqidkfazlmh14ss";
+    extension = "zip";
+  };
+
+  propagatedBuildInputs = [ fonttools ];
+  checkInputs = [ pytest pytestrunner ];
+
+  meta = with lib; {
+    description = "A collection of objects that implement fast font, glyph, etc. math";
+    homepage = "https://github.com/robotools/fontMath/";
+    license = licenses.mit;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/python-modules/fontparts/default.nix b/pkgs/development/python-modules/fontparts/default.nix
new file mode 100644
index 0000000000000..dd341fef8b3c1
--- /dev/null
+++ b/pkgs/development/python-modules/fontparts/default.nix
@@ -0,0 +1,39 @@
+{ lib, buildPythonPackage, fetchPypi, python
+, fonttools, lxml, fs, unicodedata2
+, defcon, fontpens, fontmath, booleanoperations
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "fontParts";
+  version = "0.9.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0hwzdppmrrw1xz49x36h6mcsrwya1f3zpqrc206y73j4pbn7fh0k";
+    extension = "zip";
+  };
+
+  propagatedBuildInputs = [
+    booleanoperations
+    fonttools
+    unicodedata2  # fonttools[unicode] extra
+    lxml          # fonttools[lxml] extra
+    fs            # fonttools[ufo] extra
+    defcon
+    fontpens      # defcon[pens] extra
+    fontmath
+  ];
+
+  checkPhase = ''
+    ${python.interpreter} Lib/fontParts/fontshell/test.py
+  '';
+  checkInputs = [ pytest ];
+
+  meta = with lib; {
+    description = "An API for interacting with the parts of fonts during the font development process.";
+    homepage = "https://github.com/robotools/fontParts";
+    license = licenses.mit;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/python-modules/fontpens/default.nix b/pkgs/development/python-modules/fontpens/default.nix
new file mode 100644
index 0000000000000..02adb3b064265
--- /dev/null
+++ b/pkgs/development/python-modules/fontpens/default.nix
@@ -0,0 +1,38 @@
+{ lib, buildPythonPackage, fetchPypi, fonttools }:
+
+buildPythonPackage rec {
+  pname = "fontPens";
+  version = "0.2.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1za15dzsnymq6d9x7xdfqwgw4a3003wj75fn2crhyidkfd2s3nd6";
+    extension = "zip";
+  };
+
+  propagatedBuildInputs = [ fonttools ];
+
+  # can't run normal tests due to circular dependency with fontParts
+  doCheck = false;
+  pythonImportsCheck = [ "fontPens" ] ++ (builtins.map (s: "fontPens." + s) [
+    "angledMarginPen"
+    "digestPointPen"
+    "flattenPen"
+    "guessSmoothPointPen"
+    "marginPen"
+    "penTools"
+    "printPen"
+    "printPointPen"
+    "recordingPointPen"
+    "thresholdPen"
+    "thresholdPointPen"
+    "transformPointPen"
+  ]);
+
+  meta = with lib; {
+    description = "A collection of classes implementing the pen protocol for manipulating glyphs";
+    homepage = "https://github.com/robotools/fontPens";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/python-modules/fonttools/default.nix b/pkgs/development/python-modules/fonttools/default.nix
index 9fe285a8e697f..a1433d08bd04d 100644
--- a/pkgs/development/python-modules/fonttools/default.nix
+++ b/pkgs/development/python-modules/fonttools/default.nix
@@ -1,38 +1,70 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, isPy27
-, numpy
+, fetchFromGitHub
+, pythonOlder
+, brotlipy
+, zopfli
+, fs
+, lxml
+, scipy
+, munkres
+, unicodedata2
+, sympy
+, matplotlib
+, reportlab
 , pytest
-, pytestrunner
+, pytest-randomly
 , glibcLocales
 }:
 
 buildPythonPackage rec {
   pname = "fonttools";
-  version = "4.13.0";
-  disabled = isPy27;
+  version = "4.14.0";
+  disabled = pythonOlder "3.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "63987cd374c39a75146748f8be8637634221e53fef15cdf76f17777676d8545a";
-    extension = "zip";
+  src = fetchFromGitHub {
+    owner  = pname;
+    repo   = pname;
+    rev    = version;
+    sha256 = "0aiaxjg2v2391gxnhp4nvmgfb3ygm6x7n080s5mnkfjq2bq319in";
   };
 
-  buildInputs = [
-    numpy
-  ];
-
+  # all dependencies are optional, but
+  # we run the checks with them
   checkInputs = [
     pytest
-    pytestrunner
+    pytest-randomly
     glibcLocales
+    # etree extra
+    lxml
+    # ufo extra
+    fs
+    # woff extra
+    brotlipy
+    zopfli
+    # unicode extra
+    unicodedata2
+    # interpolatable extra
+    scipy
+    munkres
+    # symfont
+    sympy
+    # varLib
+    matplotlib
+    # pens
+    reportlab
   ];
 
   preCheck = ''
     export LC_ALL="en_US.UTF-8"
   '';
 
+  # avoid timing issues with timestamps in subset_test.py and ttx_test.py
+  checkPhase = ''
+    pytest Tests fontTools \
+      -k 'not ttcompile_timestamp_calcs and not recalc_timestamp'
+  '';
+
   meta = {
     homepage = "https://github.com/fonttools/fonttools";
     description = "A library to manipulate font files from Python";
diff --git a/pkgs/development/python-modules/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/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/mutatormath/default.nix b/pkgs/development/python-modules/mutatormath/default.nix
new file mode 100644
index 0000000000000..9336dbf354af0
--- /dev/null
+++ b/pkgs/development/python-modules/mutatormath/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildPythonPackage, fetchPypi
+, defcon, fontmath
+, unicodedata2, fs
+}:
+
+buildPythonPackage rec {
+  pname = "MutatorMath";
+  version = "3.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0r1qq45np49x14zz1zwkaayqrn7m8dn2jlipjldg2ihnmpzw29w1";
+    extension = "zip";
+  };
+
+  propagatedBuildInputs = [ fontmath unicodedata2 defcon ];
+  checkInputs = [ unicodedata2 fs ];
+
+  meta = with lib; {
+    description = "Piecewise linear interpolation in multiple dimensions with multiple, arbitrarily placed, masters";
+    homepage = "https://github.com/LettError/MutatorMath";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/python-modules/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/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/psautohint/default.nix b/pkgs/development/python-modules/psautohint/default.nix
new file mode 100644
index 0000000000000..0f89069c7d8fe
--- /dev/null
+++ b/pkgs/development/python-modules/psautohint/default.nix
@@ -0,0 +1,40 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
+, fonttools, lxml, fs
+, setuptools_scm
+, pytest, pytestcov, pytest_xdist, pytest-randomly
+}:
+
+buildPythonPackage rec {
+  pname = "psautohint";
+  version = "2.1.0";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner  = "adobe-type-tools";
+    repo   = pname;
+    sha256 = "1k1rx1adqxdxj5v3788lwnvygylp73sps1p0q44hws2vmsag2s8r";
+    rev    = "v${version}";
+    fetchSubmodules = true; # data dir for tests
+  };
+
+  postPatch = ''
+    echo '#define PSAUTOHINT_VERSION "${version}"' > libpsautohint/src/version.h
+    sed -i '/use_scm_version/,+3d' setup.py
+    sed -i '/setup(/a \     version="${version}",' setup.py
+  '';
+
+  nativeBuildInputs = [ setuptools_scm ];
+
+  propagatedBuildInputs = [ fonttools lxml fs ];
+
+  checkInputs = [ pytest pytestcov pytest_xdist pytest-randomly ];
+  checkPhase = "pytest tests";
+
+  meta = with lib; {
+    description = "Script to normalize the XML and other data inside of a UFO";
+    homepage = "https://github.com/adobe-type-tools/psautohint";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytest-randomly/default.nix b/pkgs/development/python-modules/pytest-randomly/default.nix
new file mode 100644
index 0000000000000..c4523ac728c6f
--- /dev/null
+++ b/pkgs/development/python-modules/pytest-randomly/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildPythonPackage, fetchPypi, isPy27
+, factory_boy, faker, numpy
+, pytest, pytest_xdist
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-randomly";
+  version = "3.4.1";
+
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0s9cx692cdchfrjqx7fgf9wnm3fdac211a4hjq1cx9qqnbpdpl2z";
+  };
+
+  propagatedBuildInputs = [ numpy factory_boy faker ];
+
+  checkInputs = [ pytest pytest_xdist ];
+
+  # test warnings are fixed on an unreleased version:
+  # https://github.com/pytest-dev/pytest-randomly/pull/281
+  checkPhase = "pytest -p no:randomly";
+
+  meta = with lib; {
+    description = "Pytest plugin to randomly order tests and control random.seed";
+    homepage = "https://github.com/pytest-dev/pytest-randomly";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytorch/bin.nix b/pkgs/development/python-modules/pytorch/bin.nix
new file mode 100644
index 0000000000000..b1b662e95b3ea
--- /dev/null
+++ b/pkgs/development/python-modules/pytorch/bin.nix
@@ -0,0 +1,68 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, isPy37
+, isPy38
+, python
+, nvidia_x11
+, addOpenGLRunpath
+, future
+, numpy
+, patchelf
+, pyyaml
+, requests
+}:
+
+let
+  pyVerNoDot = builtins.replaceStrings [ "." ] [ "" ] python.pythonVersion;
+  platform = if stdenv.isDarwin then "darwin" else "linux";
+  srcs = import ./binary-hashes.nix;
+  unsupported = throw "Unsupported system";
+in buildPythonPackage {
+  pname = "pytorch";
+  # Don't forget to update pytorch to the same version.
+  version = "1.6.0";
+
+  format = "wheel";
+
+  disabled = !(isPy37 || isPy38);
+
+  src = fetchurl srcs."${stdenv.system}-${pyVerNoDot}" or unsupported;
+
+  nativeBuildInputs = [
+    addOpenGLRunpath
+    patchelf
+  ];
+
+  propagatedBuildInputs = [
+    future
+    numpy
+    pyyaml
+    requests
+  ];
+
+  postInstall = ''
+    # ONNX conversion
+    rm -rf $out/bin
+  '';
+
+  postFixup = let
+    rpath = stdenv.lib.makeLibraryPath [ stdenv.cc.cc.lib nvidia_x11 ];
+  in ''
+    find $out/${python.sitePackages}/torch/lib -type f \( -name '*.so' -or -name '*.so.*' \) | while read lib; do
+      echo "setting rpath for $lib..."
+      patchelf --set-rpath "${rpath}:$out/${python.sitePackages}/torch/lib" "$lib"
+      addOpenGLRunpath "$lib"
+    done
+  '';
+
+  pythonImportsCheck = [ "torch" ];
+
+  meta = with stdenv.lib; {
+    description = "Open source, prototype-to-production deep learning platform";
+    homepage = "https://pytorch.org/";
+    license = licenses.unfree; # Includes CUDA and Intel MKL.
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytorch/binary-hashes.nix b/pkgs/development/python-modules/pytorch/binary-hashes.nix
new file mode 100644
index 0000000000000..481dc6825c7df
--- /dev/null
+++ b/pkgs/development/python-modules/pytorch/binary-hashes.nix
@@ -0,0 +1,10 @@
+{
+  x86_64-linux-37 = {
+    url = "https://download.pytorch.org/whl/cu102/torch-1.6.0-cp37-cp37m-linux_x86_64.whl";
+    sha256 = "0xhwv68j8gvahfzcp43bqp2x71iwv6zjhkw2f1hb82xps40mrml7";
+  };
+  x86_64-linux-38 = {
+    url = "https://download.pytorch.org/whl/cu102/torch-1.6.0-cp38-cp38-linux_x86_64.whl";
+    sha256 = "05m2l04wqzw5xvjam6zwvlmc3979cksl3hrdqc2aikrv4hz8fmsk";
+  };
+}
diff --git a/pkgs/development/python-modules/pytorch/default.nix b/pkgs/development/python-modules/pytorch/default.nix
index a767a913abbbd..9bdead706d7b1 100644
--- a/pkgs/development/python-modules/pytorch/default.nix
+++ b/pkgs/development/python-modules/pytorch/default.nix
@@ -104,8 +104,10 @@ let
     "LD_LIBRARY_PATH=${cudaStub}\${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH ";
 
 in buildPythonPackage rec {
-  version = "1.6.0";
   pname = "pytorch";
+  # Don't forget to update pytorch-bin to the same version.
+  version = "1.6.0";
+
   disabled = !isPy3k;
 
   outputs = [
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/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/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
new file mode 100644
index 0000000000000..1fbed4ad1aa52
--- /dev/null
+++ b/pkgs/development/python-modules/ufonormalizer/default.nix
@@ -0,0 +1,19 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "ufonormalizer";
+  version = "0.4.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1rn64a0i151qk6h5f9pijcmja195i2d6f8jbi5h4xkgkinm9wwzj";
+    extension = "zip";
+  };
+
+  meta = with lib; {
+    description = "Script to normalize the XML and other data inside of a UFO";
+    homepage = "https://github.com/unified-font-object/ufoNormalizer";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/python-modules/ufoprocessor/default.nix b/pkgs/development/python-modules/ufoprocessor/default.nix
new file mode 100644
index 0000000000000..db5b1400fe452
--- /dev/null
+++ b/pkgs/development/python-modules/ufoprocessor/default.nix
@@ -0,0 +1,35 @@
+{ lib, buildPythonPackage, fetchPypi
+, defcon, fonttools, lxml, fs
+, mutatormath, fontmath, fontparts
+, setuptools_scm
+}:
+
+buildPythonPackage rec {
+  pname = "ufoProcessor";
+  version = "1.9.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0ns11aamgavgsfj8qf5kq7dvzmgl0mhr1cbych2f075ipfdvva5s";
+    extension = "zip";
+  };
+
+  nativeBuildInputs = [ setuptools_scm ];
+
+  propagatedBuildInputs = [
+    defcon
+    lxml
+    fonttools
+    fs
+    fontmath
+    fontparts
+    mutatormath
+  ];
+
+  meta = with lib; {
+    description = "Read, write and generate UFOs with designspace data";
+    homepage = "https://github.com/LettError/ufoProcessor";
+    license = licenses.mit;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/python-modules/unicodedata2/default.nix b/pkgs/development/python-modules/unicodedata2/default.nix
new file mode 100644
index 0000000000000..09b75e0c77769
--- /dev/null
+++ b/pkgs/development/python-modules/unicodedata2/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pytest }:
+
+buildPythonPackage rec {
+  pname = "unicodedata2";
+  version = "13.0.0-2";
+
+  src = fetchFromGitHub {
+    owner  = "mikekap";
+    repo   = pname;
+    rev    = version;
+    sha256 = "0p9brbiwyg98q52y0gfyps52xv57fwqfpq0mn18p1xc1imip3h2b";
+  };
+
+  checkInputs = [ pytest ];
+  checkPhase = "pytest tests";
+
+  meta = with lib; {
+    description = "Backport and updates for the unicodedata module";
+    homepage = "http://github.com/mikekap/unicodedata2";
+    license = licenses.asl20;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/python-modules/zopfli/default.nix b/pkgs/development/python-modules/zopfli/default.nix
new file mode 100644
index 0000000000000..58b7d43f3d226
--- /dev/null
+++ b/pkgs/development/python-modules/zopfli/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildPythonPackage, fetchPypi, pytest }:
+
+buildPythonPackage rec {
+  pname = "zopfli";
+  version = "0.1.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0smaxh7iihjr9mwxw1ifc9vnlh3ra8l060dd1gbvp1963k0r68pd";
+    extension = "zip";
+  };
+
+  checkInputs = [ pytest ];
+
+  meta = with lib; {
+    description = "cPython bindings for zopfli";
+    homepage = "https://github.com/obp/py-zopfli";
+    license = licenses.asl20;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/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/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/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/objconv/default.nix b/pkgs/development/tools/misc/objconv/default.nix
index 9fdaca52ca8ac..52cc1b2d5c588 100644
--- a/pkgs/development/tools/misc/objconv/default.nix
+++ b/pkgs/development/tools/misc/objconv/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "objconv";
-  version = "2.51";
+  version = "2.52";
 
   src = fetchurl {
     # Versioned archive of objconv sources maintained by orivej.
     url = "https://archive.org/download/objconv/${pname}-${version}.zip";
-    sha256 = "0wp6ld9vk11f4nnkn56627zmlv9k5vafi99qa3yyn1pgcd61zcfs";
+    sha256 = "0r117r7yvqvvdgwgwxpkyzi6p5nm0xb6p67wvkmvggm9fdyl3z8v";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/pkgs/development/tools/misc/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/merlin/default.nix b/pkgs/development/tools/ocaml/merlin/default.nix
index 4b11dd13983d3..ed1a4361120e7 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.8";
 
   minimumOCamlVersion = "4.02.1";
 
   src = fetchurl {
     url = "https://github.com/ocaml/merlin/releases/download/v${version}/merlin-v${version}.tbz";
-    sha256 = "1360cm0jkn2v2y5p3yzdyw9661a1vpddcibkbfblmk95qafx4civ";
+    sha256 = "0j27piq9hqhr2jp89ni73kchw33pcx7gnjkh8rd6qa8hc12xd794";
   };
 
   buildInputs = [ yojson ];
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/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/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/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 3a0583628f036..9430ebd2ef117 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.1";
+  version = "1.3.2";
 
   src = fetchFromGitHub {
     owner = "denoland";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1j5ajasng380p5a7nkk9ag5zp9ybwfz7b2z42lyk1wfg0pcd6j0r";
+    sha256 = "0vdz3irhc2pxn5zh0c6frbz7pb8vr06kldxa204xwyl7fl770w3g";
     fetchSubmodules = true;
   };
-  cargoSha256 = "0ba7afk4n7k170cqwy0gjc53vz6bjc176s9w1wln6yfhh55fyw6x";
+  cargoSha256 = "1ch7vxnhs69paykrglim0ixaw73lzlmrglqhjp8f4xafvdk7n2ks";
 
   # Install completions post-install
   nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/development/web/deno/deps.nix b/pkgs/development/web/deno/deps.nix
index 2fd88235a8e19..f6baca6fb016b 100644
--- a/pkgs/development/web/deno/deps.nix
+++ b/pkgs/development/web/deno/deps.nix
@@ -2,11 +2,11 @@
 {}:
 rec {
   rustyV8Lib = {
-    version = "0.8.1";
+    version = "0.9.1";
     sha256s = {
-      x86_64-linux = "0nwssdbwscwkh2w9zhlvaj562z19g5icg2yi00fyw8glws69cd6p";
-      aarch64-linux = "0mwd4ix511dzxpah1p2c47a1qhvff0d3kyilc3yra99fa1s0gyxy";
-      x86_64-darwin = "04s4x0n85rxnncy4jsl1ak3rdgb4a3lhqg8h53mvvjmsazsj1q70";
+      x86_64-linux = "07zph4x3k659ywld27b60as7j06bdbab2ws1pf67iwg7w6h7iash";
+      aarch64-linux = "0w9mbsdpkrla3ayaswpdjhiqs74h23qi2sv9355h138pw431ymnx";
+      x86_64-darwin = "091kzdg431lvkvcy0401di3if53pii0isk5ipfpsvic82kr7vaqk";
     };
   };
 }
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/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/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..77b1777ab6343 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/";
   };
@@ -425,12 +425,12 @@ let
 
   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/";
   };
@@ -641,12 +641,12 @@ let
 
   coc-rust-analyzer = buildVimPluginFrom2Nix {
     pname = "coc-rust-analyzer";
-    version = "2020-08-25";
+    version = "2020-08-31";
     src = fetchFromGitHub {
       owner = "fannheyward";
       repo = "coc-rust-analyzer";
-      rev = "fff876cee397d0d696cba74907e33aadfba4d601";
-      sha256 = "0318a19qbp3rpcgqwqshzhrpcbsqcskl993yjxmgmpjxh4r85kh2";
+      rev = "d66f9a5744477b317423d06463331df7b80a0a7f";
+      sha256 = "0vlbyjz09n0zvkbx1kks44mawn21xr24ry28z21zgcv6r0clh1xk";
     };
     meta.homepage = "https://github.com/fannheyward/coc-rust-analyzer/";
   };
@@ -882,24 +882,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-08-29";
     src = fetchFromGitHub {
       owner = "nvim-lua";
       repo = "completion-nvim";
-      rev = "43cb0b123544b602bd31747a3d8cf52ef0660723";
-      sha256 = "0qllj4zqbw2fhp17lqk0xmbraq86gl9gjp9vszpd9jbw7h4lh168";
+      rev = "ade764f6937721493cbfdc21b5b7e44ba71ee5cc";
+      sha256 = "1abdgqpnljy17wfx3ixa73hyzhf3rixmnb2b8h8iyks3hgv9i36r";
     };
     meta.homepage = "https://github.com/nvim-lua/completion-nvim/";
   };
@@ -1086,12 +1086,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/";
   };
@@ -1386,6 +1386,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 +1655,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 +1799,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 +2868,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-08-30";
     src = fetchFromGitHub {
       owner = "neovim";
-      repo = "nvim-lsp";
-      rev = "fc9d94ef006e082596c2e8724eb3f1c92ff203c7";
-      sha256 = "1byji4p0xigyp8y71s00fs2vrhgz3xkf51mmyz489pp52c7nfx4v";
+      repo = "nvim-lspconfig";
+      rev = "b7b311e22a0b071dfb43aa6a9ccc0ed92e5eab3d";
+      sha256 = "1q9z5hryjm6j2bb6iy57bwadm45m402k2bq1w0dkn1bgsnfkbsg3";
     };
-    meta.homepage = "https://github.com/neovim/nvim-lsp/";
+    meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
   };
 
   nvim-terminal-lua = buildVimPluginFrom2Nix {
@@ -2892,12 +2904,12 @@ let
 
   nvim-treesitter = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter";
-    version = "2020-08-26";
+    version = "2020-08-31";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter";
-      rev = "e8fa0d0b31954314528bb88de3b8357af75d21fd";
-      sha256 = "0rczmzzcc82499bbbvz4bfpv8llkzz21hx7i2pz3471c2c97s3hn";
+      rev = "5948aba886e8aad26043402684cf85c307813c4d";
+      sha256 = "1x9pmxwm3lh5w7d22danp8r8g5hycxl1w8q8d1milx882qsjwnqa";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
   };
@@ -2988,12 +3000,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 +3406,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 +3661,12 @@ let
 
   tagbar = buildVimPluginFrom2Nix {
     pname = "tagbar";
-    version = "2020-08-26";
+    version = "2020-08-29";
     src = fetchFromGitHub {
       owner = "majutsushi";
       repo = "tagbar";
-      rev = "40413d8760146471757c69f08be68b24431f9474";
-      sha256 = "1194kp8qzpjvv64lplb49n64ksyv5dbn25sng448b2fgd6wqk9ji";
+      rev = "e5c864738db6135a27b6373585d6f4987ffdddb5";
+      sha256 = "0zqmh4lrlb8v1l17789dbl2rj9i0ywcjdpjxzpikiajnsd8q4yl6";
     };
     meta.homepage = "https://github.com/majutsushi/tagbar/";
   };
@@ -4152,26 +4176,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 +4406,12 @@ let
 
   vim-clap = buildVimPluginFrom2Nix {
     pname = "vim-clap";
-    version = "2020-08-20";
+    version = "2020-08-31";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vim-clap";
-      rev = "e690bde9e7838894b68f9d3d4d1a131e86c13ffb";
-      sha256 = "1pl32zgwn7ffyfn8xqqlck48sqv78jv8v4pfjay0rgr3jvaxis1v";
+      rev = "3850f5aebffeddf3f1a9dfcd8430e8d0b1413480";
+      sha256 = "1ivrsiqid4g89vb0kz3mdmlmar4m5irbnqb5j2lnaxbr7dfl7w3c";
     };
     meta.homepage = "https://github.com/liuchengxu/vim-clap/";
   };
@@ -4658,12 +4694,12 @@ let
 
   vim-dirvish = buildVimPluginFrom2Nix {
     pname = "vim-dirvish";
-    version = "2020-06-30";
+    version = "2020-08-31";
     src = fetchFromGitHub {
       owner = "justinmk";
       repo = "vim-dirvish";
-      rev = "7c4dc5945b15a6b97ebef860070d30e36da01788";
-      sha256 = "0mg8fdfsr59015m309kr9v5akwc3zfwfygn36x47c8q2bwjjr052";
+      rev = "b136fd27a0afaee8306655eca7ac19d0e780faa3";
+      sha256 = "0b6cjxjzkqsrip8b8glwgjam17hjrpk21pgyikfhdrv2cxqvil9z";
     };
     meta.homepage = "https://github.com/justinmk/vim-dirvish/";
   };
@@ -4874,12 +4910,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,12 +4970,12 @@ let
 
   vim-floaterm = buildVimPluginFrom2Nix {
     pname = "vim-floaterm";
-    version = "2020-08-25";
+    version = "2020-08-31";
     src = fetchFromGitHub {
       owner = "voldikss";
       repo = "vim-floaterm";
-      rev = "cc2ff0a07af75cd752afebbf3be62e6ebe234f2d";
-      sha256 = "1q1jmbmx79ii5g991hcp6xd2nzcdqlv4m065vwc8hdpk3ghgc9d4";
+      rev = "ff4c8b634676e67bf089e936c9afb1d308d594dc";
+      sha256 = "1vj0qvbxsp6r4g8v2xwpgmswy54l4lvphzmmvkxp58cpwj7cc10w";
     };
     meta.homepage = "https://github.com/voldikss/vim-floaterm/";
   };
@@ -4982,12 +5018,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 +5078,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 +5114,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 +5138,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/";
   };
@@ -5475,12 +5511,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 +5703,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-08-31";
     src = fetchFromGitHub {
       owner = "prabirshrestha";
       repo = "vim-lsp";
-      rev = "69dc272277da464242bf729eb3b57ad79c5a0aed";
-      sha256 = "0vxkfwdsfsfc91vjhdfbph2287hhr14jr5kzyblk5f1aldgr8901";
+      rev = "1230ae8fa3d7004e6c3d74c1a5aa6c17acaf9f74";
+      sha256 = "1q08h0in1x4hhhvpjx379qw07ghinrxizzvr8f7xxsgg9lpdjxji";
     };
     meta.homepage = "https://github.com/prabirshrestha/vim-lsp/";
   };
@@ -5713,6 +5749,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 +5797,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 +5835,12 @@ let
 
   vim-monokai = buildVimPluginFrom2Nix {
     pname = "vim-monokai";
-    version = "2020-08-08";
+    version = "2020-08-30";
     src = fetchFromGitHub {
       owner = "crusoexia";
       repo = "vim-monokai";
-      rev = "85b18e98a22b17f9e01867988c18cf396316c20f";
-      sha256 = "1vzllvq1ncq4qyqbkp8z26sr4n9kpqv35zkfjas3r2jqbn958a93";
+      rev = "e0714a6e21dfba55b1af202d09f8f50d27b00e85";
+      sha256 = "0q1sxla2s381yjsyjjcd77pp4s98s0579mpr4iln59z60ysayc95";
     };
     meta.homepage = "https://github.com/crusoexia/vim-monokai/";
   };
@@ -6159,12 +6219,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 +6243,12 @@ let
 
   vim-polyglot = buildVimPluginFrom2Nix {
     pname = "vim-polyglot";
-    version = "2020-08-25";
+    version = "2020-08-29";
     src = fetchFromGitHub {
       owner = "sheerun";
       repo = "vim-polyglot";
-      rev = "f0d6ecff07c88e7a406bc082d1ce98a5282b451c";
-      sha256 = "1a8z7753a4g4zyi9dr24mkwhpi18r2wbnf9djjl4r4hr0hc7qcc1";
+      rev = "d4fcef1aa835f20f4f9df41eceb406b66f446f70";
+      sha256 = "1jn0581k1xcsvl0nz0q3qbz2k4cpzn9bjw77fn86xx3v9pg55szh";
     };
     meta.homepage = "https://github.com/sheerun/vim-polyglot/";
   };
@@ -6411,12 +6471,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 +6687,12 @@ let
 
   vim-sneak = buildVimPluginFrom2Nix {
     pname = "vim-sneak";
-    version = "2020-06-29";
+    version = "2020-08-30";
     src = fetchFromGitHub {
       owner = "justinmk";
       repo = "vim-sneak";
-      rev = "afe94543bb3bb95ef9ae2a58eebcbc17d69eb304";
-      sha256 = "0iaksyh77xahg5cp0q9x5c14jdklsrgy9400jp4xjb83qgg6d7qq";
+      rev = "7d82982e3858a6a514525acbba8bf2dff7da6c64";
+      sha256 = "124iqc9vdaa4ms03v20d9np95dizbp23gs3680dws1gjskq9z2pv";
     };
     meta.homepage = "https://github.com/justinmk/vim-sneak/";
   };
@@ -6651,12 +6711,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 +6928,12 @@ let
 
   vim-test = buildVimPluginFrom2Nix {
     pname = "vim-test";
-    version = "2020-08-25";
+    version = "2020-08-31";
     src = fetchFromGitHub {
       owner = "vim-test";
       repo = "vim-test";
-      rev = "45c495d78143f73fc034781601ff44ca90e05687";
-      sha256 = "0h3yjc5g8cklq988bilqjp8wv19yb16rmjphjhifa1c2fp23n7nk";
+      rev = "d1b82e939135bbfc928d2fe54382631f20c6cbb3";
+      sha256 = "1avlh0srwi0xyawp24s1s2hlzs1pj83d5wsn5ha8y9hd96byaxja";
     };
     meta.homepage = "https://github.com/vim-test/vim-test/";
   };
@@ -7070,6 +7130,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 +7216,12 @@ let
 
   vim-vsnip = buildVimPluginFrom2Nix {
     pname = "vim-vsnip";
-    version = "2020-08-23";
+    version = "2020-08-31";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "vim-vsnip";
-      rev = "28867f3dd99efdae7f56b18f6555fc78f30e043b";
-      sha256 = "1av7cvpb8iqnpjbq1cg667k5yhgr8m4vkj6c030a82cy1j49m931";
+      rev = "7bdd786c0ffe1f0876eabcd70daa15f82dc07af9";
+      sha256 = "1bab231y2fcdnpi3fi3as79m2cx28d2drpy5iv77h5q1xgpz2jak";
     };
     meta.homepage = "https://github.com/hrsh7th/vim-vsnip/";
   };
@@ -7394,14 +7466,27 @@ let
     meta.homepage = "https://github.com/Shougo/vimshell.vim/";
   };
 
+  vimspector = buildVimPluginFrom2Nix {
+    pname = "vimspector";
+    version = "2020-08-29";
+    src = fetchFromGitHub {
+      owner = "puremourning";
+      repo = "vimspector";
+      rev = "e634982d78573cf0d678b2981b9ac59cd99126cb";
+      sha256 = "09ifckx1rks7qdj6zq7vqw3acfx6bxqa6ylsls1rnckn0fnn6li4";
+      fetchSubmodules = true;
+    };
+    meta.homepage = "https://github.com/puremourning/vimspector/";
+  };
+
   vimtex = buildVimPluginFrom2Nix {
     pname = "vimtex";
-    version = "2020-08-21";
+    version = "2020-08-30";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "vimtex";
-      rev = "e27836fdf5b919ba8f4357abe16561ca4d0f60b1";
-      sha256 = "1i5w7yijxa37jpn7k4whr3ri2d4nrmlrv94inanlpff006938fdd";
+      rev = "5ff0ed043eefba26f93883759204e86d25323253";
+      sha256 = "0nhxcfkr9f1svjki8m85if8acanw06ki1gax8x47sr43xns1i92r";
     };
     meta.homepage = "https://github.com/lervag/vimtex/";
   };
@@ -7614,24 +7699,24 @@ let
 
   zenburn = buildVimPluginFrom2Nix {
     pname = "zenburn";
-    version = "2020-08-24";
+    version = "2020-08-30";
     src = fetchFromGitHub {
       owner = "jnurmine";
       repo = "zenburn";
-      rev = "de2cc6c93593938b9628e03eb424e318e5ec7959";
-      sha256 = "17kvlbb49l3alqdd2bf6llvvhs0c9p75qn7i1kb1qavyipxi38a3";
+      rev = "94b8319a881b0d2dfe738bae23dbc2129f0e78db";
+      sha256 = "1js7zadw2y2gml3h1z5nqsjw8jafhgw4f2ajplr5nvai8j89j983";
     };
     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/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names
index c8b3f9cfa90ab..0b367bd4bb170 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
@@ -155,6 +156,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
@@ -205,6 +207,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
@@ -381,7 +384,7 @@ 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 +429,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 +446,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 +498,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 +637,7 @@ xolox/vim-misc
 xuhdev/vim-latex-live-preview
 ycm-core/YouCompleteMe
 Yggdroot/indentLine
+Yilin-Yang/vim-markbar
 yuki-ycino/ncm2-dictionary
 zah/nim.vim
 ziglang/zig.vim
diff --git a/pkgs/misc/vscode-extensions/updateSettings.nix b/pkgs/misc/vscode-extensions/updateSettings.nix
index a033229c58981..c7fecf0807204 100644
--- a/pkgs/misc/vscode-extensions/updateSettings.nix
+++ b/pkgs/misc/vscode-extensions/updateSettings.nix
@@ -16,7 +16,7 @@ let
 
   updateVSCodeSettingsCmd = ''
   (
-    echo 'updateSettings.nix: Updating ${vscodeSettingsFile}...' 
+    echo 'updateSettings.nix: Updating ${vscodeSettingsFile}...'
     oldSettings=$(cat ${vscodeSettingsFile})
     echo $oldSettings' ${builtins.toJSON settings}' | ${jq}/bin/jq -s add > ${vscodeSettingsFile}
   )'';
@@ -25,10 +25,10 @@ let
   fileName = builtins.baseNameOf vscodeSettingsFile;
   symlinkFromUserSettingCmd = lib.optionalString symlinkFromUserSetting
     '' && mkdir -p "${userSettingsFolder}" && ln -sfv "$(pwd)/${vscodeSettingsFile}" "${userSettingsFolder}/" '';
-in 
+in
 
   writeShellScriptBin ''vscodeNixUpdate-${lib.removeSuffix ".json" (fileName)}''
-  (lib.optionalString (settings != {}) 
+  (lib.optionalString (settings != {})
     (if createIfDoesNotExists then ''
       [ ! -f "${vscodeSettingsFile}" ] && ${createEmptySettingsCmd}
       ${updateVSCodeSettingsCmd} ${symlinkFromUserSettingCmd}
diff --git a/pkgs/misc/vscode-extensions/vscodeEnv.nix b/pkgs/misc/vscode-extensions/vscodeEnv.nix
index 6e4bb7b3ea88d..7c58a4bdfb342 100644
--- a/pkgs/misc/vscode-extensions/vscodeEnv.nix
+++ b/pkgs/misc/vscode-extensions/vscodeEnv.nix
@@ -21,13 +21,13 @@
 , user-data-dir ? ''"''${TMP}''${name}"/vscode-data-dir''
 # if file exists will use it and import the extensions in it into this dervation else will use empty extensions list
 # this file will be created/updated by vscodeExts2nix when vscode exists
-, mutableExtensionsFile 
+, mutableExtensionsFile
 }:
-let  
+let
   mutableExtensionsFilePath = toString mutableExtensionsFile;
-  mutableExtensions = if builtins.pathExists mutableExtensionsFile 
+  mutableExtensions = if builtins.pathExists mutableExtensionsFile
                       then import mutableExtensionsFilePath else [];
-  vscodeWithConfiguration = import ./vscodeWithConfiguration.nix { 
+  vscodeWithConfiguration = import ./vscodeWithConfiguration.nix {
     inherit lib writeShellScriptBin extensionsFromVscodeMarketplace;
     vscodeDefault = vscode;
   }
@@ -63,19 +63,19 @@ let
     symlinkFromUserSetting = (user-data-dir != "");
   };
 
-  vscodeExts2nix = import ./vscodeExts2nix.nix { 
+  vscodeExts2nix = import ./vscodeExts2nix.nix {
     inherit lib writeShellScriptBin;
     vscodeDefault = vscodeWithConfiguration;
   }
   {
     extensionsToIgnore = nixExtensions;
-    extensions = mutableExtensions; 
+    extensions = mutableExtensions;
   };
   code = writeShellScriptBin "code" ''
     ${updateSettingsCmd}/bin/vscodeNixUpdate-settings
     ${updateLaunchCmd}/bin/vscodeNixUpdate-launch
     ${updateKeybindingsCmd}/bin/vscodeNixUpdate-keybindings
-    ${vscodeWithConfiguration}/bin/code --wait "$@" 
+    ${vscodeWithConfiguration}/bin/code --wait "$@"
     echo 'running vscodeExts2nix to update ${mutableExtensionsFilePath}...'
     ${vscodeExts2nix}/bin/vscodeExts2nix > ${mutableExtensionsFilePath}
   '';
diff --git a/pkgs/misc/vscode-extensions/vscodeEnvTest.nix b/pkgs/misc/vscode-extensions/vscodeEnvTest.nix
index d7e586cab6ec3..19a9edbf1afe4 100644
--- a/pkgs/misc/vscode-extensions/vscodeEnvTest.nix
+++ b/pkgs/misc/vscode-extensions/vscodeEnvTest.nix
@@ -1,5 +1,5 @@
 with import <nixpkgs>{};
-callPackage (import ./vscodeEnv.nix) { 
+callPackage (import ./vscodeEnv.nix) {
   extensionsFromVscodeMarketplace = vscode-utils.extensionsFromVscodeMarketplace;
   vscodeDefault = vscode;
 } {
@@ -9,4 +9,3 @@ callPackage (import ./vscodeEnv.nix) {
     t = "test";
   };
 }
-
diff --git a/pkgs/misc/vscode-extensions/vscodeExts2nix.nix b/pkgs/misc/vscode-extensions/vscodeExts2nix.nix
index afd176b4c5e49..58ad5866c9356 100644
--- a/pkgs/misc/vscode-extensions/vscodeExts2nix.nix
+++ b/pkgs/misc/vscode-extensions/vscodeExts2nix.nix
@@ -1,24 +1,24 @@
-# based on the passed vscode will stdout a nix expression with the installed vscode extensions 
+# based on the passed vscode will stdout a nix expression with the installed vscode extensions
 { lib
 , vscodeDefault
 , writeShellScriptBin
 }:
 
 ##User input
-{ vscode             ? vscodeDefault 
+{ vscode             ? vscodeDefault
 , extensionsToIgnore ? []
 # will use those extensions to get sha256 if still exists when executed.
-, extensions         ? [] 
+, extensions         ? []
 }:
-let 
+let
   mktplcExtRefToFetchArgs = import ./mktplcExtRefToFetchArgs.nix;
 in
 writeShellScriptBin "vscodeExts2nix" ''
-  echo '[' 
+  echo '['
 
   for line in $(${vscode}/bin/code --list-extensions --show-versions \
     ${lib.optionalString (extensionsToIgnore != []) ''
-      | grep -v -i '^\(${lib.concatMapStringsSep "\\|" (e : ''${e.publisher}.${e.name}'') extensionsToIgnore}\)' 
+      | grep -v -i '^\(${lib.concatMapStringsSep "\\|" (e : ''${e.publisher}.${e.name}'') extensionsToIgnore}\)'
     ''}
   ) ; do
     [[ $line =~ ([^.]*)\.([^@]*)@(.*) ]]
diff --git a/pkgs/misc/vscode-extensions/vscodeWithConfiguration.nix b/pkgs/misc/vscode-extensions/vscodeWithConfiguration.nix
index f15d14c74418c..e20c631f8c036 100644
--- a/pkgs/misc/vscode-extensions/vscodeWithConfiguration.nix
+++ b/pkgs/misc/vscode-extensions/vscodeWithConfiguration.nix
@@ -1,22 +1,22 @@
 # wrapper over vscode to control extensions per project (extensions folder will be created in execution path)
-{ lib                             
-, writeShellScriptBin             
-, extensionsFromVscodeMarketplace 
+{ lib
+, writeShellScriptBin
+, extensionsFromVscodeMarketplace
 , vscodeDefault
 }:
 ## User input
-{ vscode ? vscodeDefault                          
+{ vscode ? vscodeDefault
 # extensions to be symlinked into the project's extensions folder
-, nixExtensions        ? []                   
+, nixExtensions        ? []
 # extensions to be copied into the project's extensions folder
-, mutableExtensions    ? []        
-, vscodeExtsFolderName ? ".vscode-exts"        
+, mutableExtensions    ? []
+, vscodeExtsFolderName ? ".vscode-exts"
 , user-data-dir ? ''"''${TMP}vscodeWithConfiguration/vscode-data-dir"''
 }:
-let 
+let
   nixExtsDrvs = extensionsFromVscodeMarketplace nixExtensions;
   mutExtsDrvs = extensionsFromVscodeMarketplace mutableExtensions;
-  mutableExtsPaths = lib.forEach mutExtsDrvs ( e: 
+  mutableExtsPaths = lib.forEach mutExtsDrvs ( e:
   {
     origin = ''${e}/share/vscode/extensions/${e.vscodeExtUniqueId}'';
     target = ''${vscodeExtsFolderName}/${e.vscodeExtUniqueId}-${(lib.findSingle (ext: ''${ext.publisher}.${ext.name}'' == e.vscodeExtUniqueId) "" "m" mutableExtensions ).version}'';
@@ -39,16 +39,16 @@ let
         cp -a ${ePath.origin} ${ePath.target}
         chmod -R u+rwx ${ePath.target}
       fi
-      '') mutableExtsPaths} 
+      '') mutableExtsPaths}
   '';
 in
   writeShellScriptBin "code" ''
-    if ! [[ "$@" =~ "--list-extension" ]]; then 
-      mkdir -p "${vscodeExtsFolderName}" 
+    if ! [[ "$@" =~ "--list-extension" ]]; then
+      mkdir -p "${vscodeExtsFolderName}"
       ${rmExtensions}
       ${cpExtensions}
     fi
-    ${vscode}/bin/code --extensions-dir "${vscodeExtsFolderName}" ${ 
+    ${vscode}/bin/code --extensions-dir "${vscodeExtsFolderName}" ${
       lib.optionalString (user-data-dir != "") ''--user-data-dir ${user-data-dir }''
       } "$@"
   ''
diff --git a/pkgs/os-specific/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/firmware/fwupd/default.nix b/pkgs/os-specific/linux/firmware/fwupd/default.nix
index 0783fb7929691..66edb34d2444f 100644
--- a/pkgs/os-specific/linux/firmware/fwupd/default.nix
+++ b/pkgs/os-specific/linux/firmware/fwupd/default.nix
@@ -167,6 +167,11 @@ let
         # Needs a different set of modules than po/make-images.
         inherit installedTestsPython;
       })
+
+      (fetchpatch {
+        url = "https://github.com/fwupd/fwupd/commit/3e82beeddac31292c50229e59e2404865edee5ad.patch";
+        sha256 = "17p9r8qddqkrnhy9bvp9207afh5fcl1whn79nqcp57b4q4c17zgk";
+      })
     ];
 
     postPatch = ''
diff --git a/pkgs/os-specific/linux/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-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..59acda122aac8 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.5";
 
   # 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 = "0zwl0nk3x6fxwsbnmpx1drh7v0116yhgamisb1pghd472mmw6klx";
   };
 } // (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/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/zfs/default.nix b/pkgs/os-specific/linux/zfs/default.nix
index 56b36d4f36855..27e26b13a5335 100644
--- a/pkgs/os-specific/linux/zfs/default.nix
+++ b/pkgs/os-specific/linux/zfs/default.nix
@@ -42,25 +42,27 @@ let
         inherit rev sha256;
       };
 
-      patches = [ ./BACKPORT-Linux-5.8-compat-__vmalloc.patch ] ++ extraPatches;
+      patches = extraPatches;
 
       postPatch = optionalString buildKernel ''
         patchShebangs scripts
         # The arrays must remain the same length, so we repeat a flag that is
         # already part of the command and therefore has no effect.
-        substituteInPlace ./module/zfs/zfs_ctldir.c --replace '"/usr/bin/env", "umount"' '"${utillinux}/bin/umount", "-n"' \
-                                                    --replace '"/usr/bin/env", "mount"'  '"${utillinux}/bin/mount", "-n"'
+        substituteInPlace ./module/${optionalString isUnstable "os/linux/"}zfs/zfs_ctldir.c \
+          --replace '"/usr/bin/env", "umount"' '"${utillinux}/bin/umount", "-n"' \
+          --replace '"/usr/bin/env", "mount"'  '"${utillinux}/bin/mount", "-n"'
       '' + optionalString buildUser ''
         substituteInPlace ./lib/libzfs/libzfs_mount.c --replace "/bin/umount"             "${utillinux}/bin/umount" \
                                                       --replace "/bin/mount"              "${utillinux}/bin/mount"
-        substituteInPlace ./lib/libshare/nfs.c        --replace "/usr/sbin/exportfs"      "${
+        substituteInPlace ./lib/libshare/${optionalString isUnstable "os/linux/"}nfs.c --replace "/usr/sbin/exportfs" "${
           # We don't *need* python support, but we set it like this to minimize closure size:
           # If it's disabled by default, no need to enable it, even if we have python enabled
           # And if it's enabled by default, only change that if we explicitly disable python to remove python from the closure
           nfs-utils.override (old: { enablePython = old.enablePython or true && enablePython; })
         }/bin/exportfs"
         substituteInPlace ./config/user-systemd.m4    --replace "/usr/lib/modules-load.d" "$out/etc/modules-load.d"
-        substituteInPlace ./config/zfs-build.m4       --replace "\$sysconfdir/init.d"     "$out/etc/init.d"
+        substituteInPlace ./config/zfs-build.m4       --replace "\$sysconfdir/init.d"     "$out/etc/init.d" \
+                                                      --replace "/etc/default"            "$out/etc/default"
         substituteInPlace ./etc/zfs/Makefile.am       --replace "\$(sysconfdir)"          "$out/etc"
         substituteInPlace ./cmd/zed/Makefile.am       --replace "\$(sysconfdir)"          "$out/etc"
 
@@ -79,6 +81,13 @@ let
         substituteInPlace ./etc/systemd/system/Makefile.am \
           --replace '$(DESTDIR)$(systemdunitdir)' "$out"'$(DESTDIR)$(systemdunitdir)'
 
+        ${optionalString isUnstable ''
+        substituteInPlace ./contrib/initramfs/conf.d/Makefile.am \
+          --replace "/usr/share/initramfs-tools/conf.d" "$out/usr/share/initramfs-tools/conf.d"
+        substituteInPlace ./contrib/initramfs/conf-hooks.d/Makefile.am \
+          --replace "/usr/share/initramfs-tools/conf-hooks.d" "$out/usr/share/initramfs-tools/conf-hooks.d"
+        ''}
+
         substituteInPlace ./etc/systemd/system/zfs-share.service.in \
           --replace "/bin/rm " "${coreutils}/bin/rm "
 
@@ -190,6 +199,7 @@ in {
     version = "0.8.4";
 
     sha256 = "1hl4n900d24gl4vd65qdzq4m62b7bpvckldazcbd1xqcn8xhi6wp";
+    extraPatches = [ ./BACKPORT-Linux-5.8-compat-__vmalloc.patch ];
   };
 
   zfsUnstable = common {
@@ -197,9 +207,9 @@ in {
     # incompatibleKernelVersion = "4.19";
 
     # this package should point to a version / git revision compatible with the latest kernel release
-    version = "0.8.4";
+    version = "2.0.0-rc1";
 
-    sha256 = "1hl4n900d24gl4vd65qdzq4m62b7bpvckldazcbd1xqcn8xhi6wp";
+    sha256 = "0d1m5zwgqzfwbscvb60zvzkjgl5nkbvas22vjsyci3xygz0qwjsb";
     isUnstable = true;
   };
 }
diff --git a/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/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/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/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/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/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/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/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/shells/xonsh/default.nix b/pkgs/shells/xonsh/default.nix
index 5d6a8a6065bb8..f73ec422e06bc 100644
--- a/pkgs/shells/xonsh/default.nix
+++ b/pkgs/shells/xonsh/default.nix
@@ -4,21 +4,31 @@
 , glibcLocales
 , coreutils
 , git
+, fetchpatch
 }:
 
 python3Packages.buildPythonApplication rec {
   pname = "xonsh";
-  version = "0.9.19";
+  version = "0.9.20";
 
   # fetch from github because the pypi package ships incomplete tests
   src = fetchFromGitHub {
     owner  = "xonsh";
     repo   = "xonsh";
     rev    = version;
-    sha256 = "1s7nb23zh4may4k3c9yfiizfdflm97hf5q2aww4j6ibykgcydv64";
+    sha256 = "05phrwqd1c64531y78zxkxd4w1cli8yj3x2cqch7nkzbyz93608p";
   };
 
   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/oh-my-zsh/default.nix b/pkgs/shells/zsh/oh-my-zsh/default.nix
index 2fce32e018e53..b8a3a7c5fdc75 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-08-31";
   pname = "oh-my-zsh";
-  rev = "cfb86cd08d3b24fd4b59d0d35b3af1f589c891fa";
+  rev = "a7f5170d68c0b75a9864763a90ac11e51ec67c81";
 
-  src = fetchgit { inherit rev;
-    url = "https://github.com/ohmyzsh/ohmyzsh";
-    sha256 = "0af37smv0bqw37bng2halzgszf8y3m2sxahdff54m16asm0py2cr";
+  src = fetchFromGitHub {
+    inherit rev;
+    owner = "ohmyzsh";
+    repo = "ohmyzsh";
+    sha256 = "03k1918cakqmg3x7kkiffdz1zwd86bipypkfigq3pgalh5zkyny9";
   };
 
-  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..e0266aacf34ca 100644
--- a/pkgs/stdenv/generic/make-derivation.nix
+++ b/pkgs/stdenv/generic/make-derivation.nix
@@ -338,6 +338,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/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/admin/lxd/default.nix b/pkgs/tools/admin/lxd/default.nix
index 2e8ff96d41a8e..2a71556961e9d 100644
--- a/pkgs/tools/admin/lxd/default.nix
+++ b/pkgs/tools/admin/lxd/default.nix
@@ -18,13 +18,13 @@ let
 in
 buildGoPackage rec {
   pname = "lxd";
-  version = "4.4";
+  version = "4.5";
 
   goPackagePath = "github.com/lxc/lxd";
 
   src = fetchurl {
     url = "https://github.com/lxc/lxd/releases/download/${pname}-${version}/${pname}-${version}.tar.gz";
-    sha256 = "0fk42spz57nfmwy6xn02nnlkq01111x03psjq003k2785ah4xk1h";
+    sha256 = "1nszzcyn8kvpnxppjbxky5x9a8n0jfmhy20j6nrwm3196gd6hirr";
   };
 
   postPatch = ''
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/backup/dar/default.nix b/pkgs/tools/backup/dar/default.nix
index a439bbf41b134..1f379feece491 100644
--- a/pkgs/tools/backup/dar/default.nix
+++ b/pkgs/tools/backup/dar/default.nix
@@ -1,18 +1,28 @@
-{ stdenv, fetchurl, zlib, bzip2, openssl, attr, lzo, libgcrypt, e2fsprogs, gpgme, xz }:
+{ stdenv, fetchurl
+, attr, e2fsprogs
+, curl, librsync, libthreadar
+, gpgme, libgcrypt, openssl
+, bzip2, lzo, xz, zlib
+}:
 
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  version = "2.6.9";
+  version = "2.6.10";
   pname = "dar";
 
   src = fetchurl {
     url = "mirror://sourceforge/dar/${pname}-${version}.tar.gz";
-    sha256 = "1jzqq54w1dix2qdlj4hr9dpq9fnp23h102bk8d2gq6k7n2zgaj6v";
+    sha256 = "1ryj4xxar18hshg38j1ljhplypgmfprwqn72k1jwxi28qravg80n";
   };
 
-  buildInputs = [ zlib bzip2 openssl lzo libgcrypt gpgme xz ]
-    ++ optionals stdenv.isLinux [ attr e2fsprogs ];
+  outputs = [ "out" "dev" ];
+
+  buildInputs = [
+    curl librsync libthreadar
+    gpgme libgcrypt openssl
+    bzip2 lzo xz zlib
+  ] ++ optionals stdenv.isLinux [ attr e2fsprogs ];
 
   configureFlags = [
     "--disable-birthtime"
@@ -23,7 +33,8 @@ stdenv.mkDerivation rec {
   ];
 
   postInstall = ''
-    rm -r "$out"/share/dar # Disable html help
+    # Disable html help
+    rm -r "$out"/share/dar
   '';
 
   enableParallelBuilding = true;
@@ -33,6 +44,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://dar.linux.free.fr";
     description = "Disk ARchiver, allows backing up files into indexed archives";
+    maintainers = with maintainers; [ izorkin ];
     license = licenses.gpl2;
     platforms = platforms.unix;
   };
diff --git a/pkgs/tools/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/misc/bashcards/default.nix b/pkgs/tools/misc/bashcards/default.nix
index ecaabb43c1439..3e91b9741c633 100644
--- a/pkgs/tools/misc/bashcards/default.nix
+++ b/pkgs/tools/misc/bashcards/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bashcards";
-  version = "0.1.2";
+  version = "0.1.3";
 
   src = fetchFromGitHub {
     owner = "rpearce";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1zbijbcm9lrqwiax37li0jjqcaxf469wh5d423frain56z1qknxl";
+    sha256 = "1rpqrh0022sbrjvd55a0jvpdqhhka5msf8dsz6adbbmxy3xzgdid";
   };
 
   dontBuild = true;
diff --git a/pkgs/tools/misc/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/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/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/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/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/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/package-management/nix-template/default.nix b/pkgs/tools/package-management/nix-template/default.nix
new file mode 100644
index 0000000000000..0ef3602c5975c
--- /dev/null
+++ b/pkgs/tools/package-management/nix-template/default.nix
@@ -0,0 +1,23 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "nix-template";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "jonringer";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1h6xdvhzg7nb0s82b3r5bsh8bfdb1l5sm7fa24lfwd396xp9yyig";
+  };
+
+  cargoSha256 = "13y3b60xnry71999kygvkr29gkyjss3ga3rzb43ajah4qp90rsqs";
+
+  meta = with lib; {
+    description = "Make creating nix expressions easy";
+    homepage = "https://github.com/jonringer/nix-template/";
+    changelog = "https://github.com/jonringer/nix-template/releases/tag/v${version}";
+    license = licenses.cc0;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index 050367703165d..2acf5d194e09a 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -195,14 +195,14 @@ in rec {
   });
 
   nixUnstable = lib.lowPrio (callPackage common rec {
-    name = "nix-2.4${suffix}";
-    suffix = "pre20200721_ff314f1";
+    name = "nix-3.0${suffix}";
+    suffix = "pre20200829_f156513";
 
     src = fetchFromGitHub {
       owner = "NixOS";
       repo = "nix";
-      rev = "ff314f186e3f91d87af6ad96c0ae3b472494b940";
-      hash = "sha256-QibpLo4/gf2xYGoeQcgjZzH/qy5TBRVH+QCHgqOwur0=";
+      rev = "f15651303f8596bf34c67fc8d536b1e9e7843a87";
+      hash = "sha256-HqM3Z4DLdMrf+0PPZL9ysctGg+K+i3S/IHA1GsJj0Ro=";
     };
 
     inherit storeDir stateDir confDir boehmgc;
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/kbs2/default.nix b/pkgs/tools/security/kbs2/default.nix
index 14f2059cf5c84..191b4f3515095 100644
--- a/pkgs/tools/security/kbs2/default.nix
+++ b/pkgs/tools/security/kbs2/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "kbs2";
-  version = "0.1.3";
+  version = "0.1.4";
 
   src = fetchFromGitHub {
     owner = "woodruffw";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1zp4gpbqhivmp7lpm10xb6ahx1z7nsijz7pi5i0bndv0y9mr609p";
+    sha256 = "1hjcx651nqj1plxw4i2nv72zc0igd8pl31dy2zwm5yyky6dl7qla";
   };
 
-  cargoSha256 = "1inqz4whqw9mb3m22kv44f255m3cjr66pc5ncdw2rgpy3zjh4p3z";
+  cargoSha256 = "11fw097r4mim3rgb0db7naqlf3ws0bavqdd4z84mpdg6714dga0n";
 
   nativeBuildInputs = [ installShellFiles ]
     ++ stdenv.lib.optionals stdenv.isLinux [ python3 ];
@@ -27,6 +27,8 @@ rustPlatform.buildRustPackage rec {
   checkFlagsArray = [ "--skip=kbs2::config::tests::test_find_config_dir" ];
 
   postInstall = ''
+    mkdir -p $out/share/kbs2
+    cp -r contrib/ $out/share/kbs2
     for shell in bash fish zsh; do
       $out/bin/kbs2 --completions $shell > kbs2.$shell
       installShellCompletion kbs2.$shell
diff --git a/pkgs/tools/security/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/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/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/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/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index b020d6fac559e..5bede5bfc9fff 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -218,6 +218,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
@@ -456,6 +457,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
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 88a846a3f184d..ae612d83797e3 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 { };
@@ -2241,6 +2248,8 @@ in
 
   nix-direnv = callPackage ../tools/misc/nix-direnv { };
 
+  nix-template = callPackage ../tools/package-management/nix-template { };
+
   nixpkgs-pytools = with python3.pkgs; toPythonApplication nixpkgs-pytools;
 
   noteshrink = callPackage ../tools/misc/noteshrink { };
@@ -4548,7 +4557,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 { };
 
@@ -7394,6 +7405,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 { };
@@ -10224,6 +10237,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;
@@ -13980,6 +13995,8 @@ in
 
   libtheora = callPackage ../development/libraries/libtheora { };
 
+  libthreadar = callPackage ../development/libraries/libthreadar { };
+
   libtiff = callPackage ../development/libraries/libtiff { };
 
   libtiger = callPackage ../development/libraries/libtiger { };
@@ -14842,8 +14859,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
 
@@ -15677,7 +15695,6 @@ in
   webkitgtk = callPackage ../development/libraries/webkitgtk {
     harfbuzz = harfbuzzFull;
     inherit (gst_all_1) gst-plugins-base gst-plugins-bad;
-    stdenv = clangStdenv; # TODO: https://github.com/NixOS/nixpkgs/issues/36947
   };
 
   websocketpp = callPackage ../development/libraries/websocket++ { };
@@ -15700,19 +15717,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;
   };
@@ -15725,7 +15738,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;
   };
@@ -17570,6 +17582,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
@@ -17660,8 +17688,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 { };
@@ -17814,12 +17840,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);
@@ -17828,7 +17862,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.
 
@@ -18380,6 +18414,7 @@ in
     ubootPine64
     ubootPine64LTS
     ubootPinebook
+    ubootPinebookPro
     ubootQemuAarch64
     ubootQemuArm
     ubootRaspberryPi
@@ -19271,6 +19306,8 @@ in
 
   vegeta = callPackage ../tools/networking/vegeta { };
 
+  venta = callPackage ../data/themes/venta { };
+
   victor-mono = callPackage ../data/fonts/victor-mono { };
 
   vimix-gtk-themes = callPackage ../data/themes/vimix {};
@@ -19975,9 +20012,7 @@ in
     buildServerGui = false;
   };
 
-  droopy = callPackage ../applications/networking/droopy {
-    inherit (python3Packages) wrapPython;
-  };
+  droopy = python37Packages.callPackage ../applications/networking/droopy { };
 
   drumgizmo = callPackage ../applications/audio/drumgizmo { };
 
@@ -21254,8 +21289,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 { };
@@ -21911,8 +21944,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 {
@@ -22990,6 +23021,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 {};
@@ -23102,6 +23135,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 { };
@@ -23383,6 +23421,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 { };
@@ -23476,12 +23518,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 { };
@@ -24628,7 +24664,6 @@ in
   fsg = callPackage ../games/fsg {
     wxGTK = wxGTK28.override {
       unicode = false;
-      gst-plugins-base = null;
     };
   };
 
@@ -25325,11 +25360,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;
   });
@@ -26668,11 +26698,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 { };
 
@@ -27153,9 +27183,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.
@@ -27350,6 +27378,8 @@ in
 
   webfs = callPackage ../servers/http/webfs { };
 
+  webkit2-sharp = callPackage ../development/libraries/webkit2-sharp {  };
+
   websocketd = callPackage ../applications/networking/websocketd { };
 
   wikicurses = callPackage ../applications/misc/wikicurses {
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index 2ebfc3fff9f43..32bb7d3378608 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -754,6 +754,12 @@ let
 
     piqi-ocaml = callPackage ../development/ocaml-modules/piqi-ocaml { };
 
+    posix-base = callPackage ../development/ocaml-modules/posix/base.nix { };
+
+    posix-socket = callPackage ../development/ocaml-modules/posix/socket.nix { };
+
+    posix-types = callPackage ../development/ocaml-modules/posix/types.nix { };
+
     ppxfind = callPackage ../development/ocaml-modules/ppxfind { };
 
     ppxlib = callPackage ../development/ocaml-modules/ppxlib { };
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index b23bdd75db15e..d6ce5710f8abd 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -142,161 +142,362 @@ 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 { };
 
-  ansiwrap =  callPackage ../development/python-modules/ansiwrap { };
+  annexremote = callPackage ../development/python-modules/annexremote { };
+
+  annoy = callPackage ../development/python-modules/annoy { };
+
+  anonip = callPackage ../development/python-modules/anonip { };
 
   ansi2html = callPackage ../development/python-modules/ansi2html { };
 
-  anytree = callPackage ../development/python-modules/anytree {
-    inherit (pkgs) graphviz;
-  };
+  ansible = callPackage ../development/python-modules/ansible { };
+
+  ansible-kernel = callPackage ../development/python-modules/ansible-kernel { };
+
+  ansible-lint = callPackage ../development/python-modules/ansible-lint { };
+
+  ansible-runner = callPackage ../development/python-modules/ansible-runner { };
+
+  ansi = callPackage ../development/python-modules/ansi { };
+
+  ansicolor = callPackage ../development/python-modules/ansicolor { };
+
+  ansicolors = callPackage ../development/python-modules/ansicolors { };
+
+  ansiconv = callPackage ../development/python-modules/ansiconv { };
+
+  ansiwrap = callPackage ../development/python-modules/ansiwrap { };
+
+  antlr4-python2-runtime = callPackage ../development/python-modules/antlr4-python2-runtime { antlr4 = pkgs.antlr4; };
+
+  antlr4-python3-runtime = callPackage ../development/python-modules/antlr4-python3-runtime { antlr4 = pkgs.antlr4; };
+
+  anyjson = callPackage ../development/python-modules/anyjson { };
+
+  anytree = callPackage ../development/python-modules/anytree { inherit (pkgs) graphviz; };
+
+  apache-airflow = callPackage ../development/python-modules/apache-airflow { };
+
+  apipkg = callPackage ../development/python-modules/apipkg { };
+
+  apispec = callPackage ../development/python-modules/apispec { };
 
   aplpy = callPackage ../development/python-modules/aplpy { };
 
+  appdirs = callPackage ../development/python-modules/appdirs { };
+
+  appleseed = disabledIf isPy3k (toPythonModule (pkgs.appleseed.override { inherit (self) python; }));
+
+  application = callPackage ../development/python-modules/application { };
+
+  applicationinsights = callPackage ../development/python-modules/applicationinsights { };
+
+  appnope = callPackage ../development/python-modules/appnope { };
+
   apprise = callPackage ../development/python-modules/apprise { };
 
-  arrayqueues = callPackage ../development/python-modules/arrayqueues { };
+  approvaltests = callPackage ../development/python-modules/approvaltests { };
+
+  apptools = callPackage ../development/python-modules/apptools { };
+
+  APScheduler = callPackage ../development/python-modules/APScheduler { };
+
+  apsw = callPackage ../development/python-modules/apsw { };
+
+  area = callPackage ../development/python-modules/area { };
+
+  arelle = callPackage ../development/python-modules/arelle { gui = true; };
+
+  arelle-headless = callPackage ../development/python-modules/arelle { gui = false; };
 
   aresponses = callPackage ../development/python-modules/aresponses { };
 
+  argcomplete = callPackage ../development/python-modules/argcomplete { };
+
+  argh = callPackage ../development/python-modules/argh { };
+
   argon2_cffi = callPackage ../development/python-modules/argon2_cffi { };
 
+  args = callPackage ../development/python-modules/args { };
+
   aria2p = callPackage ../development/python-modules/aria2p { inherit (pkgs) aria2; };
 
+  arrayqueues = callPackage ../development/python-modules/arrayqueues { };
+
+  arrow = callPackage ../development/python-modules/arrow { };
+
   arviz = callPackage ../development/python-modules/arviz { };
 
-  asana = callPackage ../development/python-modules/asana { };
+  arxiv2bib = callPackage ../development/python-modules/arxiv2bib { };
 
-  asdf = callPackage ../development/python-modules/asdf { };
+  asana = callPackage ../development/python-modules/asana { };
 
   asciimatics = callPackage ../development/python-modules/asciimatics { };
 
   asciitree = callPackage ../development/python-modules/asciitree { };
 
+  asdf = callPackage ../development/python-modules/asdf { };
+
   ase = if isPy27 then
-          callPackage ../development/python-modules/ase/3.17.nix { }
-        else
-          callPackage ../development/python-modules/ase { };
+    callPackage ../development/python-modules/ase/3.17.nix { }
+  else
+    callPackage ../development/python-modules/ase { };
+
+  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 { };
@@ -323,30 +524,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 { };
@@ -357,10 +534,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 { };
@@ -371,6 +548,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 { };
@@ -395,12 +574,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 { };
@@ -417,7 +596,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 { };
 
@@ -451,6 +631,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 { };
@@ -459,10 +641,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 { };
@@ -499,5368 +681,5160 @@ in {
 
   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 { };
-
-  bash_kernel = callPackage ../development/python-modules/bash_kernel {
-    inherit (pkgs) bash;
-  };
-
-  bashlex = callPackage ../development/python-modules/bashlex { };
+  azure-nspkg = callPackage ../development/python-modules/azure-nspkg { };
 
-  bayesian-optimization = callPackage ../development/python-modules/bayesian-optimization { };
+  azure-servicebus = callPackage ../development/python-modules/azure-servicebus { };
 
-  bayespy = callPackage ../development/python-modules/bayespy { };
+  azure-servicefabric = callPackage ../development/python-modules/azure-servicefabric { };
 
-  beanstalkc = callPackage ../development/python-modules/beanstalkc { };
+  azure-servicemanagement-legacy = callPackage ../development/python-modules/azure-servicemanagement-legacy { };
 
-  beancount_docverif = callPackage ../development/python-modules/beancount_docverif { };
+  azure-storage-blob = callPackage ../development/python-modules/azure-storage-blob { };
 
-  biplist = callPackage ../development/python-modules/biplist { };
+  azure-storage = callPackage ../development/python-modules/azure-storage { };
 
-  bip_utils = callPackage ../development/python-modules/bip_utils { };
+  azure-storage-common = callPackage ../development/python-modules/azure-storage-common { };
 
-  bitarray = callPackage ../development/python-modules/bitarray { };
+  azure-storage-file = callPackage ../development/python-modules/azure-storage-file { };
 
-  bitcoinlib = callPackage ../development/python-modules/bitcoinlib { };
+  azure-storage-file-share = callPackage ../development/python-modules/azure-storage-file-share { };
 
-  bitcoin-price-api = callPackage ../development/python-modules/bitcoin-price-api { };
+  azure-storage-nspkg = callPackage ../development/python-modules/azure-storage-nspkg { };
 
-  blivet = callPackage ../development/python-modules/blivet { };
+  azure-storage-queue = callPackage ../development/python-modules/azure-storage-queue { };
 
-  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 { };
+  bleach = callPackage ../development/python-modules/bleach { };
 
-  deeptoolsintervals = callPackage ../development/python-modules/deeptoolsintervals { };
+  bleak = callPackage ../development/python-modules/bleak { };
 
-  dkimpy = callPackage ../development/python-modules/dkimpy { };
+  blessed = callPackage ../development/python-modules/blessed { };
 
-  diceware = callPackage ../development/python-modules/diceware { };
+  blessings = callPackage ../development/python-modules/blessings { };
 
-  dictionaries = callPackage ../development/python-modules/dictionaries { };
+  blinker = callPackage ../development/python-modules/blinker { };
 
-  diff_cover = callPackage ../development/python-modules/diff_cover { };
+  BlinkStick = callPackage ../development/python-modules/blinkstick { };
 
-  diofant = callPackage ../development/python-modules/diofant { };
+  blis = callPackage ../development/python-modules/blis { };
 
-  dipy = callPackage ../development/python-modules/dipy { };
+  blist = callPackage ../development/python-modules/blist { };
 
-  docrep = callPackage ../development/python-modules/docrep { };
+  blivet = callPackage ../development/python-modules/blivet { };
 
-  dominate = callPackage ../development/python-modules/dominate { };
+  blockdiag = callPackage ../development/python-modules/blockdiag { };
 
-  dotnetcore2 = callPackage ../development/python-modules/dotnetcore2 {
-    inherit (pkgs) substituteAll dotnet-sdk;
-  };
+  blockdiagcontrib-cisco = callPackage ../development/python-modules/blockdiagcontrib-cisco { };
 
-  emcee = callPackage ../development/python-modules/emcee { };
+  block-io = callPackage ../development/python-modules/block-io { };
 
-  emailthreads = callPackage ../development/python-modules/emailthreads { };
+  bluepy = callPackage ../development/python-modules/bluepy { };
 
-  email_validator = callPackage ../development/python-modules/email-validator { };
+  bokeh = callPackage ../development/python-modules/bokeh { };
 
-  ewmh = callPackage ../development/python-modules/ewmh { };
+  boltons = callPackage ../development/python-modules/boltons { };
 
-  exchangelib = callPackage ../development/python-modules/exchangelib { };
+  boltztrap2 = callPackage ../development/python-modules/boltztrap2 { };
 
-  dcmstack = callPackage ../development/python-modules/dcmstack { };
+  booleanoperations = callPackage ../development/python-modules/booleanoperations { };
 
-  dbus-python = callPackage ../development/python-modules/dbus {
-    inherit (pkgs) dbus pkgconfig;
-  };
+  boolean-py = callPackage ../development/python-modules/boolean-py { };
 
-  debts = callPackage ../development/python-modules/debts { };
+  # 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;
+  });
 
-  dftfit = callPackage ../development/python-modules/dftfit { };
+  boto3 = callPackage ../development/python-modules/boto3 { };
 
-  dicom2nifti = callPackage ../development/python-modules/dicom2nifti { };
+  boto = callPackage ../development/python-modules/boto { };
 
-  discid = callPackage ../development/python-modules/discid { };
+  botocore = callPackage ../development/python-modules/botocore { };
 
-  discordpy = callPackage ../development/python-modules/discordpy { };
+  bottle = callPackage ../development/python-modules/bottle { };
 
-  parver = callPackage ../development/python-modules/parver { };
-  arpeggio = callPackage ../development/python-modules/arpeggio { };
+  bottleneck = callPackage ../development/python-modules/bottleneck { };
 
-  influxdb-client = callPackage ../development/python-modules/influxdb-client { };
+  box2d = callPackage ../development/python-modules/box2d { };
 
-  invoke = callPackage ../development/python-modules/invoke { };
+  bpython = callPackage ../development/python-modules/bpython { };
 
-  distorm3 = callPackage ../development/python-modules/distorm3 { };
+  braintree = callPackage ../development/python-modules/braintree { };
 
-  distlib = callPackage ../development/python-modules/distlib { };
+  branca = callPackage ../development/python-modules/branca { };
 
-  distributed = callPackage ../development/python-modules/distributed { };
+  bravado-core = callPackage ../development/python-modules/bravado-core { };
 
-  docutils = callPackage ../development/python-modules/docutils { };
+  bravia-tv = callPackage ../development/python-modules/bravia-tv { };
 
-  dogtail = callPackage ../development/python-modules/dogtail { };
+  breathe = callPackage ../development/python-modules/breathe { };
 
-  diff-match-patch = callPackage ../development/python-modules/diff-match-patch { };
+  breezy = callPackage ../development/python-modules/breezy { };
 
-  eliot = callPackage ../development/python-modules/eliot {};
+  broadlink = callPackage ../development/python-modules/broadlink { };
 
-  entrance = callPackage ../development/python-modules/entrance { routerFeatures = false; };
+  brother = callPackage ../development/python-modules/brother { };
 
-  entrance-with-router-features = callPackage ../development/python-modules/entrance { routerFeatures = true; };
+  brotli = callPackage ../development/python-modules/brotli { };
 
-  eradicate = callPackage ../development/python-modules/eradicate {  };
+  brotlipy = callPackage ../development/python-modules/brotlipy { };
 
-  face = callPackage ../development/python-modules/face { };
+  browser-cookie3 = callPackage ../development/python-modules/browser-cookie3 { };
 
-  fastparquet = callPackage ../development/python-modules/fastparquet { };
+  browsermob-proxy = disabledIf isPy3k (callPackage ../development/python-modules/browsermob-proxy { });
 
-  fastpbkdf2 = callPackage ../development/python-modules/fastpbkdf2 {  };
+  bsddb3 = callPackage ../development/python-modules/bsddb3 { };
 
-  fasttext = callPackage ../development/python-modules/fasttext {  };
+  bsdiff4 = callPackage ../development/python-modules/bsdiff4 { };
 
-  facedancer = callPackage ../development/python-modules/facedancer {  };
+  btchip = callPackage ../development/python-modules/btchip { };
 
-  favicon = callPackage ../development/python-modules/favicon {  };
+  bt_proximity = callPackage ../development/python-modules/bt-proximity { };
 
-  fdint = callPackage ../development/python-modules/fdint { };
+  BTrees = callPackage ../development/python-modules/btrees { };
 
-  fido2 = callPackage ../development/python-modules/fido2 {  };
+  btrfs = callPackage ../development/python-modules/btrfs { };
 
-  filterpy = callPackage ../development/python-modules/filterpy { };
+  bugseverywhere = throw "bugseverywhere has been removed: Abandoned by upstream."; # Added 2019-11-27
 
-  filemagic = callPackage ../development/python-modules/filemagic { };
+  bugsnag = callPackage ../development/python-modules/bugsnag { };
 
-  finalfusion = callPackage ../development/python-modules/finalfusion { };
+  bugwarrior = callPackage ../development/python-modules/bugwarrior { };
 
-  fints = callPackage ../development/python-modules/fints { };
+  bugz = callPackage ../development/python-modules/bugz { };
 
-  fire = callPackage ../development/python-modules/fire { };
+  bugzilla = callPackage ../development/python-modules/bugzilla { };
 
-  firetv = callPackage ../development/python-modules/firetv { };
+  buildbot = callPackage ../development/python-modules/buildbot { };
 
-  flower = callPackage ../development/python-modules/flower { };
+  buildbot-ui = self.buildbot.withPlugins (with self.buildbot-plugins; [ www ]);
 
-  flufl_bounce = callPackage ../development/python-modules/flufl/bounce.nix { };
+  buildbot-full = self.buildbot.withPlugins
+    (with self.buildbot-plugins; [ www console-view waterfall-view grid-view wsgi-dashboards ]);
 
-  flufl_i18n = callPackage ../development/python-modules/flufl/i18n.nix { };
+  buildbot-pkg = callPackage ../development/python-modules/buildbot/pkg.nix { };
 
-  flufl_lock = callPackage ../development/python-modules/flufl/lock.nix { };
+  buildbot-plugins = pkgs.recurseIntoAttrs (callPackage ../development/python-modules/buildbot/plugins.nix { });
 
-  foxdot = callPackage ../development/python-modules/foxdot { };
+  buildbot-worker = callPackage ../development/python-modules/buildbot/worker.nix { };
 
-  freetype-py = callPackage ../development/python-modules/freetype-py { };
+  build = callPackage ../development/python-modules/build { };
 
-  fsspec = callPackage ../development/python-modules/fsspec { };
+  bumps = callPackage ../development/python-modules/bumps { };
 
-  furl = callPackage ../development/python-modules/furl { };
+  bunch = callPackage ../development/python-modules/bunch { };
 
-  fuse = callPackage ../development/python-modules/fuse-python {
-    inherit (pkgs) fuse pkgconfig;
-  };
+  bx-python = callPackage ../development/python-modules/bx-python { inherit (pkgs) zlib; };
 
-  fuzzywuzzy = callPackage ../development/python-modules/fuzzywuzzy { };
+  bytecode = callPackage ../development/python-modules/bytecode { };
 
-  genanki = callPackage ../development/python-modules/genanki { };
+  bz2file = callPackage ../development/python-modules/bz2file { };
 
-  geoip2 = callPackage ../development/python-modules/geoip2 { };
+  cachecontrol = callPackage ../development/python-modules/cachecontrol { };
 
-  getmac = callPackage ../development/python-modules/getmac { };
+  cached-property = callPackage ../development/python-modules/cached-property { };
 
-  gidgethub = callPackage ../development/python-modules/gidgethub { };
+  cachelib = callPackage ../development/python-modules/cachelib { };
 
-  gin-config = callPackage ../development/python-modules/gin-config { };
+  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;
 
-  globus-sdk = callPackage ../development/python-modules/globus-sdk { };
+  cachy = callPackage ../development/python-modules/cachy { };
 
-  glymur = callPackage ../development/python-modules/glymur { };
+  cadquery = callPackage ../development/python-modules/cadquery { };
 
-  glob2 = callPackage ../development/python-modules/glob2 { };
+  caffe = toPythonModule (pkgs.caffe.override {
+    pythonSupport = true;
+    inherit (self) python numpy boost;
+  });
 
-  globre = callPackage ../development/python-modules/globre { };
+  cairocffi = if isPy3k then
+    callPackage ../development/python-modules/cairocffi { }
+  else
+    callPackage ../development/python-modules/cairocffi/0_9.nix { };
 
-  glom = callPackage ../development/python-modules/glom { };
+  cairosvg = if isPy3k then
+    callPackage ../development/python-modules/cairosvg { }
+  else
+    callPackage ../development/python-modules/cairosvg/1_x.nix { };
 
-  gdcm = disabledIf isPy27 (toPythonModule (pkgs.gdcm.override {
-    inherit (self) python;
-    enablePython = true;
-  }));
+  caldav = callPackage ../development/python-modules/caldav { };
 
-  goocalendar = callPackage ../development/python-modules/goocalendar { };
+  can = callPackage ../development/python-modules/can { };
 
-  grandalf = callPackage ../development/python-modules/grandalf { };
+  canmatrix = callPackage ../development/python-modules/canmatrix { };
 
-  gprof2dot = callPackage ../development/python-modules/gprof2dot {
-    inherit (pkgs) graphviz;
-  };
+  canonicaljson = callPackage ../development/python-modules/canonicaljson { };
 
-  gsd = if isPy27 then
-      callPackage ../development/python-modules/gsd/1.7.nix { }
-    else
-      callPackage ../development/python-modules/gsd { };
+  canopen = callPackage ../development/python-modules/canopen { };
 
-  gssapi = callPackage ../development/python-modules/gssapi {
-    inherit (pkgs) darwin krb5Full;
-  };
+  capstone = callPackage ../development/python-modules/capstone { inherit (pkgs) capstone; };
 
-  guestfs = callPackage ../development/python-modules/guestfs { };
+  capturer = callPackage ../development/python-modules/capturer { };
 
-  gumath = callPackage ../development/python-modules/gumath { };
+  carbon = callPackage ../development/python-modules/carbon { };
 
-  h3 = callPackage ../development/python-modules/h3 { inherit (pkgs) h3; };
+  carrot = callPackage ../development/python-modules/carrot { };
 
-  h5py = callPackage ../development/python-modules/h5py {
-    hdf5 = pkgs.hdf5;
-  };
+  cartopy = callPackage ../development/python-modules/cartopy { };
 
-  h5py-mpi = self.h5py.override {
-    hdf5 = pkgs.hdf5-mpi;
-  };
+  casbin = callPackage ../development/python-modules/casbin { };
 
-  h5netcdf = callPackage ../development/python-modules/h5netcdf { };
+  case = callPackage ../development/python-modules/case { };
 
-  ha-ffmpeg = callPackage ../development/python-modules/ha-ffmpeg { };
+  cassandra-driver = callPackage ../development/python-modules/cassandra-driver { };
 
-  habanero = callPackage ../development/python-modules/habanero { };
+  casttube = callPackage ../development/python-modules/casttube { };
 
-  handout = callPackage ../development/python-modules/handout { };
+  catalogue = callPackage ../development/python-modules/catalogue { };
 
-  HAP-python = callPackage ../development/python-modules/HAP-python { };
+  cbeams = callPackage ../misc/cbeams { };
 
-  helper = callPackage ../development/python-modules/helper { };
+  cbor2 = callPackage ../development/python-modules/cbor2 { };
 
-  hdmedians = callPackage ../development/python-modules/hdmedians { };
+  cbor = callPackage ../development/python-modules/cbor { };
 
-  hdlparse = callPackage ../development/python-modules/hdlparse { };
+  cccolutils = callPackage ../development/python-modules/cccolutils { };
 
-  hiyapyco = callPackage ../development/python-modules/hiyapyco { };
+  cchardet = callPackage ../development/python-modules/cchardet { };
 
-  hocr-tools = callPackage ../development/python-modules/hocr-tools { };
+  CDDB = callPackage ../development/python-modules/cddb { };
 
-  holidays = callPackage ../development/python-modules/holidays { };
+  cdecimal = callPackage ../development/python-modules/cdecimal { };
 
-  holoviews = callPackage ../development/python-modules/holoviews { };
+  celery = callPackage ../development/python-modules/celery { };
 
-  hoomd-blue = toPythonModule (callPackage ../development/python-modules/hoomd-blue {
-    inherit python;
-  });
+  cement = callPackage ../development/python-modules/cement { };
 
-  hopcroftkarp = callPackage ../development/python-modules/hopcroftkarp { };
+  cerberus = callPackage ../development/python-modules/cerberus { };
 
-  http-ece = callPackage ../development/python-modules/http-ece { };
+  certbot = callPackage ../development/python-modules/certbot { };
 
-  httpsig = callPackage ../development/python-modules/httpsig { };
+  certbot-dns-cloudflare = callPackage ../development/python-modules/certbot-dns-cloudflare { };
 
-  httptools = callPackage ../development/python-modules/httptools { };
+  certbot-dns-rfc2136 = callPackage ../development/python-modules/certbot-dns-rfc2136 { };
 
-  hwi = callPackage ../development/python-modules/hwi { };
+  certbot-dns-route53 = callPackage ../development/python-modules/certbot-dns-route53 { };
 
-  i3ipc = callPackage ../development/python-modules/i3ipc { };
+  certifi = callPackage ../development/python-modules/certifi { };
 
-  ignite = callPackage ../development/python-modules/ignite { };
+  certipy = callPackage ../development/python-modules/certipy { };
 
-  ihatemoney = callPackage ../development/python-modules/ihatemoney { };
+  cffi = callPackage ../development/python-modules/cffi { };
 
-  imutils = callPackage ../development/python-modules/imutils { };
+  cfgv = callPackage ../development/python-modules/cfgv { };
 
-  inotify-simple = callPackage ../development/python-modules/inotify-simple { };
+  cfn-flip = callPackage ../development/python-modules/cfn-flip { };
 
-  intake = callPackage ../development/python-modules/intake { };
+  cfn-lint = callPackage ../development/python-modules/cfn-lint { };
 
-  intelhex = callPackage ../development/python-modules/intelhex { };
+  cftime = callPackage ../development/python-modules/cftime { };
 
-  inquirer = callPackage ../development/python-modules/inquirer { };
+  cgen = callPackage ../development/python-modules/cgen { };
 
-  ipympl = callPackage ../development/python-modules/ipympl { };
+  cgroup-utils = callPackage ../development/python-modules/cgroup-utils { };
 
-  itanium_demangler = callPackage ../development/python-modules/itanium_demangler { };
+  chai = callPackage ../development/python-modules/chai { };
 
-  itemadapter = callPackage ../development/python-modules/itemadapter { };
+  chainer = callPackage ../development/python-modules/chainer { cudaSupport = pkgs.config.cudaSupport or false; };
 
-  itemloaders = callPackage ../development/python-modules/itemloaders { };
+  chainmap = callPackage ../development/python-modules/chainmap { };
 
-  iterm2 = callPackage ../development/python-modules/iterm2 { };
+  chalice = callPackage ../development/python-modules/chalice { };
 
-  janus = callPackage ../development/python-modules/janus { };
+  chameleon = callPackage ../development/python-modules/chameleon { };
 
-  jc = callPackage ../development/python-modules/jc { };
+  channels = callPackage ../development/python-modules/channels { };
 
-  jellyfin-apiclient-python = callPackage ../development/python-modules/jellyfin-apiclient-python { };
+  channels-redis = callPackage ../development/python-modules/channels-redis { };
 
-  jira = callPackage ../development/python-modules/jira { };
+  characteristic = callPackage ../development/python-modules/characteristic { };
 
-  jsonpath = callPackage ../development/python-modules/jsonpath { };
+  chardet = callPackage ../development/python-modules/chardet { };
 
-  junit-xml = callPackage ../development/python-modules/junit-xml { };
+  chart-studio = callPackage ../development/python-modules/chart-studio { };
 
-  junitparser = callPackage ../development/python-modules/junitparser { };
+  check-manifest = callPackage ../development/python-modules/check-manifest { };
 
-  jwcrypto = callPackage ../development/python-modules/jwcrypto { };
+  cheetah3 = callPackage ../development/python-modules/cheetah3 { };
 
-  kconfiglib = callPackage ../development/python-modules/kconfiglib { };
+  cheetah = callPackage ../development/python-modules/cheetah { };
 
-  kinparse = callPackage ../development/python-modules/kinparse { };
+  cheroot = callPackage ../development/python-modules/cheroot { };
 
-  labelbox = callPackage ../development/python-modules/labelbox { };
+  cherrypy = if isPy3k then
+    callPackage ../development/python-modules/cherrypy { }
+  else
+    callPackage ../development/python-modules/cherrypy/17.nix { };
 
-  lammps-cython = callPackage ../development/python-modules/lammps-cython {
-    mpi = pkgs.openmpi;
-  };
+  chevron = callPackage ../development/python-modules/chevron { };
 
-  langdetect = callPackage ../development/python-modules/langdetect { };
+  ci-info = callPackage ../development/python-modules/ci-info { };
 
-  launchpadlib = callPackage ../development/python-modules/launchpadlib { };
+  ci-py = callPackage ../development/python-modules/ci-py { };
 
-  lazr_config = callPackage ../development/python-modules/lazr/config.nix { };
+  cirq = callPackage ../development/python-modules/cirq { };
 
-  lazr_delegates = callPackage ../development/python-modules/lazr/delegates.nix { };
+  ciso8601 = callPackage ../development/python-modules/ciso8601 { };
 
-  lazr-restfulclient = callPackage ../development/python-modules/lazr-restfulclient { };
+  citeproc-py = callPackage ../development/python-modules/citeproc-py { };
 
-  lazr-uri = callPackage ../development/python-modules/lazr-uri { };
+  cjson = callPackage ../development/python-modules/cjson { };
 
-  libmr = callPackage ../development/python-modules/libmr { };
+  ckcc-protocol = callPackage ../development/python-modules/ckcc-protocol { };
 
-  limitlessled = callPackage ../development/python-modules/limitlessled { };
+  cld2-cffi = callPackage ../development/python-modules/cld2-cffi { };
 
-  livelossplot = callPackage ../development/python-modules/livelossplot { };
+  cleo = callPackage ../development/python-modules/cleo { };
 
-  lmtpd = callPackage ../development/python-modules/lmtpd { };
+  clf = callPackage ../development/python-modules/clf { };
 
-  logster = callPackage ../development/python-modules/logster { };
+  cliapp = callPackage ../development/python-modules/cliapp { };
 
-  loguru = callPackage ../development/python-modules/loguru { };
+  click = callPackage ../development/python-modules/click { };
 
-  logzero = callPackage ../development/python-modules/logzero { };
+  clickclick = callPackage ../development/python-modules/clickclick { };
 
-  mac_alias = callPackage ../development/python-modules/mac_alias { };
+  click-completion = callPackage ../development/python-modules/click-completion { };
 
-  macropy = callPackage ../development/python-modules/macropy { };
+  click-datetime = callPackage ../development/python-modules/click-datetime { };
 
-  mail-parser = callPackage ../development/python-modules/mail-parser { };
+  click-default-group = callPackage ../development/python-modules/click-default-group { };
 
-  mailman = callPackage ../servers/mail/mailman { };
+  click-didyoumean = callPackage ../development/python-modules/click-didyoumean { };
 
-  mailman-web = callPackage ../servers/mail/mailman/web.nix { };
+  click-log = callPackage ../development/python-modules/click-log { };
 
-  mailmanclient = callPackage ../development/python-modules/mailmanclient { };
+  click-plugins = callPackage ../development/python-modules/click-plugins { };
 
-  mailman-hyperkitty = callPackage ../development/python-modules/mailman-hyperkitty { };
+  click-repl = callPackage ../development/python-modules/click-repl { };
 
-  manhole = callPackage ../development/python-modules/manhole { };
+  click-threading = callPackage ../development/python-modules/click-threading { };
 
-  mapbox = callPackage ../development/python-modules/mapbox { };
+  cliff = callPackage ../development/python-modules/cliff { };
 
-  markerlib = callPackage ../development/python-modules/markerlib { };
+  clifford = callPackage ../development/python-modules/clifford { };
 
-  mask-rcnn = callPackage ../development/python-modules/mask-rcnn { };
+  cligj = callPackage ../development/python-modules/cligj { };
 
-  matchpy = callPackage ../development/python-modules/matchpy { };
+  cli-helpers = callPackage ../development/python-modules/cli-helpers { };
 
-  mathlibtools = callPackage ../development/python-modules/mathlibtools {};
+  clikit = callPackage ../development/python-modules/clikit { };
 
-  maxminddb = callPackage ../development/python-modules/maxminddb { };
+  clint = callPackage ../development/python-modules/clint { };
 
-  mininet-python = (toPythonModule (pkgs.mininet.override{ inherit python; })).py;
+  clize = callPackage ../development/python-modules/clize { };
 
-  mkl-service = callPackage ../development/python-modules/mkl-service { };
+  closure-linter = callPackage ../development/python-modules/closure-linter { };
 
-  mnist = callPackage ../development/python-modules/mnist { };
+  cloudflare = callPackage ../development/python-modules/cloudflare { };
 
-  monkeyhex = callPackage ../development/python-modules/monkeyhex { };
+  cloudpickle = callPackage ../development/python-modules/cloudpickle { };
 
-  monty = callPackage ../development/python-modules/monty { };
+  clustershell = callPackage ../development/python-modules/clustershell { };
 
-  mpi4py = callPackage ../development/python-modules/mpi4py {
-    mpi = pkgs.openmpi;
-  };
+  cma = callPackage ../development/python-modules/cma { };
 
-  pytest-freezegun = callPackage ../development/python-modules/pytest-freezegun { };
+  cmarkgfm = callPackage ../development/python-modules/cmarkgfm { };
 
-  python-baseconv = callPackage ../development/python-modules/python-baseconv { };
+  cmd2 = callPackage ../development/python-modules/cmd2 { };
 
-  pycognito = callPackage ../development/python-modules/pycognito { };
+  cmdline = callPackage ../development/python-modules/cmdline { };
 
-  python-mpv-jsonipc = callPackage ../development/python-modules/python-mpv-jsonipc { };
+  cmdtest = callPackage ../development/python-modules/cmdtest { };
 
-  mortgage = callPackage ../development/python-modules/mortgage { };
+  cntk = callPackage ../development/python-modules/cntk { };
 
-  msal = callPackage ../development/python-modules/msal { };
+  cnvkit = callPackage ../development/python-modules/cnvkit { };
 
-  msal-extensions = callPackage ../development/python-modules/msal-extensions { };
+  cocotb = callPackage ../development/python-modules/cocotb { };
 
-  msrest = callPackage ../development/python-modules/msrest { };
+  codecov = callPackage ../development/python-modules/codecov { };
 
-  msrestazure = callPackage ../development/python-modules/msrestazure { };
+  codespell = callPackage ../development/python-modules/codespell { };
 
-  multiset = callPackage ../development/python-modules/multiset { };
+  cogapp = callPackage ../development/python-modules/cogapp { };
 
-  mwclient = callPackage ../development/python-modules/mwclient { };
+  coilmq = callPackage ../development/python-modules/coilmq { };
 
-  mwoauth = callPackage ../development/python-modules/mwoauth { };
+  coinmarketcap = callPackage ../development/python-modules/coinmarketcap { };
 
-  nagiosplugin = callPackage ../development/python-modules/nagiosplugin { };
+  ColanderAlchemy = callPackage ../development/python-modules/colanderalchemy { };
 
-  nanomsg-python = callPackage ../development/python-modules/nanomsg-python { inherit (pkgs) nanomsg; };
+  colander = callPackage ../development/python-modules/colander { };
 
-  nassl = callPackage ../development/python-modules/nassl { };
+  colorama = callPackage ../development/python-modules/colorama { };
 
-  nbsmoke = callPackage ../development/python-modules/nbsmoke { };
+  colorcet = callPackage ../development/python-modules/colorcet { };
 
-  nbsphinx = callPackage ../development/python-modules/nbsphinx { };
+  colorclass = callPackage ../development/python-modules/colorclass { };
 
-  nbval = callPackage ../development/python-modules/nbval { };
+  colored = callPackage ../development/python-modules/colored { };
 
-  ndtypes = callPackage ../development/python-modules/ndtypes { };
+  coloredlogs = callPackage ../development/python-modules/coloredlogs { };
 
-  neo = callPackage ../development/python-modules/neo { };
+  colorful = callPackage ../development/python-modules/colorful { };
 
-  nest-asyncio = callPackage ../development/python-modules/nest-asyncio { };
+  colorlog = callPackage ../development/python-modules/colorlog { };
 
-  neuron = pkgs.neuron.override {
-    inherit python;
-  };
+  colorlover = callPackage ../development/python-modules/colorlover { };
 
-  neuron-mpi = pkgs.neuron-mpi.override {
-    inherit python;
-  };
+  colormath = callPackage ../development/python-modules/colormath { };
 
-  nix-prefetch-github = callPackage ../development/python-modules/nix-prefetch-github { };
+  colorspacious = callPackage ../development/python-modules/colorspacious { };
 
-  nixpart = callPackage ../tools/filesystems/nixpart { };
+  colour = callPackage ../development/python-modules/colour { };
 
-  # 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 { };
+  CommonMark = callPackage ../development/python-modules/commonmark { };
 
-  nltk = callPackage ../development/python-modules/nltk { };
+  compiledb = callPackage ../development/python-modules/compiledb { };
 
-  ntlm-auth = callPackage ../development/python-modules/ntlm-auth { };
+  conda = callPackage ../development/python-modules/conda { };
 
-  nvchecker = callPackage ../development/python-modules/nvchecker { };
+  ConfigArgParse = callPackage ../development/python-modules/configargparse { };
 
-  numericalunits = callPackage ../development/python-modules/numericalunits { };
+  configobj = callPackage ../development/python-modules/configobj { };
 
-  nunavut = callPackage ../development/python-modules/nunavut { };
+  configparser = if pythonOlder "3.6" then
+    callPackage ../development/python-modules/configparser/4.nix { }
+  else
+    callPackage ../development/python-modules/configparser { };
 
-  oath = callPackage ../development/python-modules/oath { };
+  configshell = callPackage ../development/python-modules/configshell { };
 
-  oauthenticator = callPackage ../development/python-modules/oauthenticator { };
+  confluent-kafka = callPackage ../development/python-modules/confluent-kafka { };
 
-  onnx = callPackage ../development/python-modules/onnx { };
+  connexion = callPackage ../development/python-modules/connexion { };
 
-  ordered-set = callPackage ../development/python-modules/ordered-set { };
+  consonance = callPackage ../development/python-modules/consonance { };
 
-  orderedmultidict = callPackage ../development/python-modules/orderedmultidict { };
+  constantly = callPackage ../development/python-modules/constantly { };
 
-  ortools = (toPythonModule (pkgs.or-tools.override {
-    inherit (self) python;
-  })).python;
+  construct = callPackage ../development/python-modules/construct { };
 
-  osmnx = callPackage ../development/python-modules/osmnx { };
+  consul = callPackage ../development/python-modules/consul { };
 
-  osmpythontools = callPackage ../development/python-modules/osmpythontools { };
+  contexter = callPackage ../development/python-modules/contexter { };
 
-  outcome = callPackage ../development/python-modules/outcome {};
+  contextlib2 = callPackage ../development/python-modules/contextlib2 { };
 
-  ovito = toPythonModule (pkgs.libsForQt5.callPackage ../development/python-modules/ovito {
-      pythonPackages = self;
-    });
+  contextvars = callPackage ../development/python-modules/contextvars { };
 
-  palettable = callPackage ../development/python-modules/palettable { };
+  convertdate = callPackage ../development/python-modules/convertdate { };
 
-  papermill = callPackage ../development/python-modules/papermill { };
+  cookiecutter = callPackage ../development/python-modules/cookiecutter { };
 
-  parsley = callPackage ../development/python-modules/parsley { };
+  cookies = callPackage ../development/python-modules/cookies { };
 
-  pastel = callPackage ../development/python-modules/pastel { };
+  coordinates = callPackage ../development/python-modules/coordinates { };
 
-  pathlib = callPackage ../development/python-modules/pathlib { };
+  coreapi = callPackage ../development/python-modules/coreapi { };
 
-  pc-ble-driver-py = toPythonModule (callPackage ../development/python-modules/pc-ble-driver-py { });
+  coreschema = callPackage ../development/python-modules/coreschema { };
 
-  pcpp = callPackage ../development/python-modules/pcpp { };
+  cornice = callPackage ../development/python-modules/cornice { };
 
-  pdf2image = callPackage ../development/python-modules/pdf2image { };
+  cot = callPackage ../development/python-modules/cot { };
 
-  pdfminer = callPackage ../development/python-modules/pdfminer_six { };
+  covCore = callPackage ../development/python-modules/cov-core { };
 
-  pdfposter = callPackage ../development/python-modules/pdfposter { };
+  coverage = callPackage ../development/python-modules/coverage { };
 
-  pdftotext = callPackage ../development/python-modules/pdftotext { };
+  coveralls = callPackage ../development/python-modules/coveralls { };
 
-  pdfx = callPackage ../development/python-modules/pdfx { };
+  cozy = callPackage ../development/python-modules/cozy { };
 
-  pushover-complete = callPackage ../development/python-modules/pushover-complete { };
+  cppy = callPackage ../development/python-modules/cppy { };
 
-  pyicloud = callPackage ../development/python-modules/pyicloud { };
+  cram = callPackage ../development/python-modules/cram { };
 
-  pyperf = callPackage ../development/python-modules/pyperf { };
+  crashtest = callPackage ../development/python-modules/crashtest { };
 
-  pyphotonfile = callPackage ../development/python-modules/pyphotonfile { };
+  crayons = callPackage ../development/python-modules/crayons { };
 
-  pefile = callPackage ../development/python-modules/pefile { };
+  crc16 = callPackage ../development/python-modules/crc16 { };
 
-  perfplot = callPackage ../development/python-modules/perfplot { };
+  crc32c = callPackage ../development/python-modules/crc32c { };
 
-  phonopy = callPackage ../development/python-modules/phonopy { };
+  crccheck = callPackage ../development/python-modules/crccheck { };
 
-  phik = callPackage ../development/python-modules/phik {};
+  crcmod = callPackage ../development/python-modules/crcmod { };
 
-  piccata = callPackage ../development/python-modules/piccata {};
+  credstash = callPackage ../development/python-modules/credstash { };
 
-  pims = callPackage ../development/python-modules/pims { };
+  croniter = callPackage ../development/python-modules/croniter { };
 
-  poetry = callPackage ../development/python-modules/poetry { };
+  cryptacular = callPackage ../development/python-modules/cryptacular { };
 
-  poetry-core = callPackage ../development/python-modules/poetry-core { };
+  cryptography = if isPy27 then
+    callPackage ../development/python-modules/cryptography/2.9.nix { }
+  else
+    callPackage ../development/python-modules/cryptography { };
 
-  polyline = callPackage ../development/python-modules/polyline { };
+  cryptography_vectors = if isPy27 then
+    callPackage ../development/python-modules/cryptography/vectors-2.9.nix { }
+  else
+    callPackage ../development/python-modules/cryptography/vectors.nix { };
 
-  postorius = disabledIf (!isPy3k) (callPackage ../servers/mail/mailman/postorius.nix { });
+  csscompressor = callPackage ../development/python-modules/csscompressor { };
 
-  pplpy = callPackage ../development/python-modules/pplpy { };
+  cssmin = callPackage ../development/python-modules/cssmin { };
 
-  pprintpp = callPackage ../development/python-modules/pprintpp { };
+  css-parser = callPackage ../development/python-modules/css-parser { };
 
-  progress = callPackage ../development/python-modules/progress { };
+  cssselect2 = callPackage ../development/python-modules/cssselect2 { };
 
-  proglog = callPackage ../development/python-modules/proglog { };
+  cssselect = callPackage ../development/python-modules/cssselect { };
 
-  pulsectl = callPackage ../development/python-modules/pulsectl { };
+  cssutils = callPackage ../development/python-modules/cssutils { };
 
-  pure-python-adb-homeassistant = callPackage ../development/python-modules/pure-python-adb-homeassistant { };
+  csvs-to-sqlite = callPackage ../development/python-modules/csvs-to-sqlite { };
 
-  pure-eval = callPackage ../development/python-modules/pure-eval {};
+  cucumber-tag-expressions = callPackage ../development/python-modules/cucumber-tag-expressions { };
 
-  purl = callPackage ../development/python-modules/purl { };
+  cufflinks = callPackage ../development/python-modules/cufflinks { };
 
-  pyclipper = callPackage ../development/python-modules/pyclipper { };
+  cupy = callPackage ../development/python-modules/cupy {
+    cudatoolkit = pkgs.cudatoolkit_10_0;
+    cudnn = pkgs.cudnn_cudatoolkit_10_0;
+    nccl = pkgs.nccl_cudatoolkit_10;
+  };
 
-  pymystem3 = callPackage ../development/python-modules/pymystem3 { };
+  curio = callPackage ../development/python-modules/curio { };
 
-  pymysql = callPackage ../development/python-modules/pymysql { };
+  curtsies = callPackage ../development/python-modules/curtsies { };
 
-  pymupdf = callPackage ../development/python-modules/pymupdf { };
+  curve25519-donna = callPackage ../development/python-modules/curve25519-donna { };
 
-  pynamecheap = callPackage ../development/python-modules/pynamecheap { };
+  cvxopt = callPackage ../development/python-modules/cvxopt { };
 
-  Pmw = callPackage ../development/python-modules/Pmw { };
+  cvxpy = callPackage ../development/python-modules/cvxpy { };
 
-  py_stringmatching = callPackage ../development/python-modules/py_stringmatching { };
+  cx_Freeze = callPackage ../development/python-modules/cx_freeze { };
 
-  pyaes = callPackage ../development/python-modules/pyaes { };
+  cx_oracle = callPackage ../development/python-modules/cx_oracle { };
 
-  pyairvisual = callPackage ../development/python-modules/pyairvisual { };
+  cycler = callPackage ../development/python-modules/cycler { };
 
-  pyamf = callPackage ../development/python-modules/pyamf { };
+  cymem = callPackage ../development/python-modules/cymem { };
 
-  pyarrow = callPackage ../development/python-modules/pyarrow {
-    inherit (pkgs) arrow-cpp cmake pkgconfig;
-  };
+  cypari2 = callPackage ../development/python-modules/cypari2 { };
 
-  pyannotate = callPackage ../development/python-modules/pyannotate { };
+  cysignals = callPackage ../development/python-modules/cysignals { };
 
-  pyatspi = callPackage ../development/python-modules/pyatspi {
-    inherit (pkgs) pkgconfig;
-  };
+  cython = callPackage ../development/python-modules/Cython { };
 
-  pyaxmlparser = callPackage ../development/python-modules/pyaxmlparser { };
+  cytoolz = callPackage ../development/python-modules/cytoolz { };
 
-  pybids = callPackage ../development/python-modules/pybids { };
+  d2to1 = callPackage ../development/python-modules/d2to1 { };
 
-  pybind11 = callPackage ../development/python-modules/pybind11 { };
+  daemonize = callPackage ../development/python-modules/daemonize { };
 
-  py3buddy = toPythonModule (callPackage ../development/python-modules/py3buddy { });
+  daphne = callPackage ../development/python-modules/daphne { };
 
-  pybullet = callPackage ../development/python-modules/pybullet { };
+  darcsver = callPackage ../development/python-modules/darcsver { };
 
-  pycairo = callPackage ../development/python-modules/pycairo {
-    inherit (pkgs) meson pkgconfig;
-  };
+  dash = callPackage ../development/python-modules/dash { };
 
-  pycategories = callPackage ../development/python-modules/pycategories { };
+  dash-core-components = callPackage ../development/python-modules/dash-core-components { };
 
-  pycangjie = disabledIf (!isPy3k) (callPackage ../development/python-modules/pycangjie {
-    inherit (pkgs) pkgconfig;
-  });
+  dash-html-components = callPackage ../development/python-modules/dash-html-components { };
 
-  pycrc = callPackage ../development/python-modules/pycrc { };
+  dash-renderer = callPackage ../development/python-modules/dash-renderer { };
 
-  pycrypto = callPackage ../development/python-modules/pycrypto { };
+  dash-table = callPackage ../development/python-modules/dash-table { };
 
-  pycryptodome = callPackage ../development/python-modules/pycryptodome { };
+  dask = callPackage ../development/python-modules/dask { };
 
-  pycryptodomex = callPackage ../development/python-modules/pycryptodomex { };
+  dask-gateway = callPackage ../development/python-modules/dask-gateway { };
 
-  PyChromecast = callPackage ../development/python-modules/pychromecast { };
+  dask-gateway-server = callPackage ../development/python-modules/dask-gateway-server { inherit (pkgs) go; };
 
-  pycm = callPackage ../development/python-modules/pycm { };
+  dask-glm = callPackage ../development/python-modules/dask-glm { };
 
-  py-cpuinfo = callPackage ../development/python-modules/py-cpuinfo { };
+  dask-image = callPackage ../development/python-modules/dask-image { };
 
-  py-lru-cache = callPackage ../development/python-modules/py-lru-cache { };
+  dask-jobqueue = callPackage ../development/python-modules/dask-jobqueue { };
 
-  py-multibase = callPackage ../development/python-modules/py-multibase { };
+  dask-ml = callPackage ../development/python-modules/dask-ml { };
 
-  py-multihash = callPackage ../development/python-modules/py-multihash { };
+  dask-mpi = callPackage ../development/python-modules/dask-mpi { };
 
-  py-radix = callPackage ../development/python-modules/py-radix { };
+  dask-xgboost = callPackage ../development/python-modules/dask-xgboost { };
 
-  pydbus = callPackage ../development/python-modules/pydbus { };
+  databases = callPackage ../development/python-modules/databases { };
 
-  pydicom = callPackage ../development/python-modules/pydicom { };
+  databricks-cli = callPackage ../development/python-modules/databricks-cli { };
 
-  pydocstyle =
-    if isPy27 then
-      callPackage ../development/python-modules/pydocstyle/2.nix { }
-    else
-      callPackage ../development/python-modules/pydocstyle { };
+  databricks-connect = callPackage ../development/python-modules/databricks-connect { inherit (pkgs) jdk; };
 
-  pydocumentdb = callPackage ../development/python-modules/pydocumentdb { };
+  dataclasses = callPackage ../development/python-modules/dataclasses { };
 
-  pydrive = callPackage ../development/python-modules/pydrive { };
+  dataclasses-json = callPackage ../development/python-modules/dataclasses-json { };
 
-  pydy = callPackage ../development/python-modules/pydy { };
+  datadiff = callPackage ../development/python-modules/datadiff { };
 
-  pyexiv2 = disabledIf isPy3k (toPythonModule (callPackage ../development/python-modules/pyexiv2 {}));
+  datadog = callPackage ../development/python-modules/datadog { };
 
-  py3exiv2 = callPackage ../development/python-modules/py3exiv2 { };
+  datamodeldict = callPackage ../development/python-modules/datamodeldict { };
 
-  pyfakefs = callPackage ../development/python-modules/pyfakefs {};
+  datasette = callPackage ../development/python-modules/datasette { };
 
-  pyfaidx = callPackage ../development/python-modules/pyfaidx { };
+  datashader = callPackage ../development/python-modules/datashader { };
 
-  pyfcm = callPackage ../development/python-modules/pyfcm { };
+  datashape = callPackage ../development/python-modules/datashape { };
 
-  pyfttt = callPackage ../development/python-modules/pyfttt { };
+  datatable =
+    callPackage ../development/python-modules/datatable { inherit (pkgs.llvmPackages) openmp libcxx libcxxabi; };
 
-  pyftdi = callPackage ../development/python-modules/pyftdi { };
+  dateparser = callPackage ../development/python-modules/dateparser { };
 
-  pygame = callPackage ../development/python-modules/pygame { };
+  datrie = callPackage ../development/python-modules/datrie { };
 
-  pygbm = callPackage ../development/python-modules/pygbm { };
+  dbf = callPackage ../development/python-modules/dbf { };
 
-  pygame_sdl2 = callPackage ../development/python-modules/pygame_sdl2 { };
+  dbfread = callPackage ../development/python-modules/dbfread { };
 
-  pygdbmi = callPackage ../development/python-modules/pygdbmi { };
+  dbus-python = callPackage ../development/python-modules/dbus { inherit (pkgs) dbus pkgconfig; };
 
-  pygmo = callPackage ../development/python-modules/pygmo { };
+  dcmstack = callPackage ../development/python-modules/dcmstack { };
 
-  pygobject2 = callPackage ../development/python-modules/pygobject {
-    inherit (pkgs) pkgconfig;
-  };
+  ddt = callPackage ../development/python-modules/ddt { };
 
-  pygobject3 = callPackage ../development/python-modules/pygobject/3.nix {
-    inherit (pkgs) meson pkgconfig;
-  };
+  deap = callPackage ../development/python-modules/deap { };
 
-  pygtail = callPackage ../development/python-modules/pygtail { };
+  debian = callPackage ../development/python-modules/debian { };
 
-  pygtk = callPackage ../development/python-modules/pygtk {
-    inherit (pkgs) pkgconfig;
-    libglade = null;
-  };
+  debts = callPackage ../development/python-modules/debts { };
 
-  pygtksourceview = callPackage ../development/python-modules/pygtksourceview {
-    inherit (pkgs) pkgconfig;
-  };
+  debugpy = callPackage ../development/python-modules/debugpy { };
 
-  pyGtkGlade = self.pygtk.override {
-    libglade = pkgs.gnome2.libglade;
-  };
+  decorator = callPackage ../development/python-modules/decorator { };
 
-  pyjwkest = callPackage ../development/python-modules/pyjwkest { };
+  deepdiff = callPackage ../development/python-modules/deepdiff { };
 
-  pykdtree = callPackage ../development/python-modules/pykdtree {
-    inherit (pkgs.llvmPackages) openmp;
-  };
+  deepmerge = callPackage ../development/python-modules/deepmerge { };
 
-  pykerberos = callPackage ../development/python-modules/pykerberos { };
+  deeptoolsintervals = callPackage ../development/python-modules/deeptoolsintervals { };
 
-  pykeepass = callPackage ../development/python-modules/pykeepass { };
+  defcon = callPackage ../development/python-modules/defcon { };
 
-  pylev = callPackage ../development/python-modules/pylev { };
+  deform = callPackage ../development/python-modules/deform { };
 
-  pylibftdi = callPackage ../development/python-modules/pylibftdi {
-    inherit (pkgs) libusb1;
-  };
+  defusedxml = callPackage ../development/python-modules/defusedxml { };
 
-  pymatgen = callPackage ../development/python-modules/pymatgen { };
+  delegator-py = callPackage ../development/python-modules/delegator-py { };
 
-  pymatgen-lammps = callPackage ../development/python-modules/pymatgen-lammps { };
+  deluge-client = callPackage ../development/python-modules/deluge-client { };
 
-  pymavlink = callPackage ../development/python-modules/pymavlink { };
+  demjson = callPackage ../development/python-modules/demjson { };
 
-  pymeeus = callPackage ../development/python-modules/pymeeus { };
+  dendropy = callPackage ../development/python-modules/dendropy { };
 
-  pymsgbox = callPackage ../development/python-modules/pymsgbox { };
+  denonavr = callPackage ../development/python-modules/denonavr { };
 
-  pynanoleaf = callPackage ../development/python-modules/pynanoleaf { };
+  dependency-injector = callPackage ../development/python-modules/dependency-injector { };
 
-  pynisher = callPackage ../development/python-modules/pynisher { };
+  deprecated = callPackage ../development/python-modules/deprecated { };
 
-  pynput = callPackage ../development/python-modules/pynput { };
+  deprecation = callPackage ../development/python-modules/deprecation { };
 
-  pyparser = callPackage ../development/python-modules/pyparser { };
+  derpconf = callPackage ../development/python-modules/derpconf { };
 
-  pyres = callPackage ../development/python-modules/pyres { };
+  descartes = callPackage ../development/python-modules/descartes { };
 
-  PyRMVtransport = callPackage ../development/python-modules/PyRMVtransport { };
+  deskcon = callPackage ../development/python-modules/deskcon { };
 
-  pyqt4 = callPackage ../development/python-modules/pyqt/4.x.nix {
-    inherit (pkgs) pkgconfig;
-  };
+  detox = throw "detox is no longer maintained, and was broken since may 2019"; # added 2020-07-04
 
-  pyqt5 = pkgs.libsForQt5.callPackage ../development/python-modules/pyqt/5.x.nix {
-    pythonPackages = self;
-  };
+  devpi-common = callPackage ../development/python-modules/devpi-common { };
 
-  /*
-    `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; };
+  dftfit = callPackage ../development/python-modules/dftfit { };
 
-  pyqt5_with_qtmultimedia = self.pyqt5.override { withMultimedia = true; };
+  diceware = callPackage ../development/python-modules/diceware { };
 
-  pyqtwebengine = pkgs.libsForQt5.callPackage ../development/python-modules/pyqtwebengine {
-    pythonPackages = self;
-  };
+  dicom2nifti = callPackage ../development/python-modules/dicom2nifti { };
 
-  pysc2 = callPackage ../development/python-modules/pysc2 { };
+  dict2xml = callPackage ../development/python-modules/dict2xml { };
 
-  pyscard = callPackage ../development/python-modules/pyscard { inherit (pkgs.darwin.apple_sdk.frameworks) PCSC; };
+  dictionaries = callPackage ../development/python-modules/dictionaries { };
 
-  pyschedule = callPackage ../development/python-modules/pyschedule { };
+  dicttoxml = callPackage ../development/python-modules/dicttoxml { };
 
-  pyscreenshot = callPackage ../development/python-modules/pyscreenshot { };
+  diff_cover = callPackage ../development/python-modules/diff_cover { };
 
-  pydsdl = callPackage ../development/python-modules/pydsdl { };
+  diff-match-patch = callPackage ../development/python-modules/diff-match-patch { };
 
-  pyside = callPackage ../development/python-modules/pyside {
-    inherit (pkgs) mesa;
-  };
+  digital-ocean = callPackage ../development/python-modules/digitalocean { };
 
-  pysideShiboken = callPackage ../development/python-modules/pyside/shiboken.nix {
-    inherit (pkgs) libxml2 libxslt; # Do not need the Python bindings.
-  };
+  digi-xbee = callPackage ../development/python-modules/digi-xbee { };
 
-  pysideTools = callPackage ../development/python-modules/pyside/tools.nix { };
+  dill = callPackage ../development/python-modules/dill { };
 
-  pyside2 = toPythonModule (callPackage ../development/python-modules/pyside2 {
-    inherit (pkgs) cmake qt5 ninja;
-  });
+  diofant = callPackage ../development/python-modules/diofant { };
 
-  shiboken2 = toPythonModule (callPackage ../development/python-modules/shiboken2 {
-    inherit (pkgs) cmake qt5 llvmPackages;
-  });
+  dipy = callPackage ../development/python-modules/dipy { };
 
-  simplefix = callPackage ../development/python-modules/simplefix { };
+  discid = callPackage ../development/python-modules/discid { };
 
-  pyscrypt = callPackage ../development/python-modules/pyscrypt { };
+  discogs_client = callPackage ../development/python-modules/discogs_client { };
 
-  pyside2-tools = toPythonModule (callPackage ../development/python-modules/pyside2-tools {
-    inherit (pkgs) cmake qt5;
-  });
+  discordpy = callPackage ../development/python-modules/discordpy { };
 
-  pyslurm = callPackage ../development/python-modules/pyslurm {
-    slurm = pkgs.slurm;
-  };
+  diskcache = callPackage ../development/python-modules/diskcache { };
 
-  pysmb = callPackage ../development/python-modules/pysmb { };
+  dissononce = callPackage ../development/python-modules/dissononce { };
 
-  pysmf = callPackage ../development/python-modules/pysmf { };
+  distlib = callPackage ../development/python-modules/distlib { };
 
-  pyspinel = callPackage ../development/python-modules/pyspinel {};
+  distorm3 = callPackage ../development/python-modules/distorm3 { };
 
-  pyssim = callPackage ../development/python-modules/pyssim { };
+  distributed = callPackage ../development/python-modules/distributed { };
 
-  pystache = callPackage ../development/python-modules/pystache { };
+  distro = callPackage ../development/python-modules/distro { };
 
-  pystray = callPackage ../development/python-modules/pystray { };
+  distutils_extra = callPackage ../development/python-modules/distutils_extra { };
 
-  pytelegrambotapi = callPackage ../development/python-modules/pyTelegramBotAPI { };
+  django_2_2 = callPackage ../development/python-modules/django/2_2.nix { };
 
-  pytesseract = callPackage ../development/python-modules/pytesseract { };
+  django-allauth = callPackage ../development/python-modules/django-allauth { };
 
-  pytest-bdd = callPackage ../development/python-modules/pytest-bdd { };
+  django-anymail = callPackage ../development/python-modules/django-anymail { };
 
-  pytest-black = callPackage ../development/python-modules/pytest-black { };
+  django_appconf = callPackage ../development/python-modules/django_appconf { };
 
-  pytest-click = callPackage ../development/python-modules/pytest-click { };
+  django-auth-ldap = callPackage ../development/python-modules/django-auth-ldap { };
 
-  pytest-check = callPackage ../development/python-modules/pytest-check { };
+  django-cache-url = callPackage ../development/python-modules/django-cache-url { };
 
-  pytest-env = callPackage ../development/python-modules/pytest-env { };
+  django_classytags = callPackage ../development/python-modules/django_classytags { };
 
-  pytest-factoryboy = callPackage ../development/python-modules/pytest-factoryboy { };
+  django-cleanup = callPackage ../development/python-modules/django-cleanup { };
 
-  pytest-flask = callPackage ../development/python-modules/pytest-flask { };
+  django_colorful = callPackage ../development/python-modules/django_colorful { };
 
-  pytest-mypy = callPackage ../development/python-modules/pytest-mypy { };
+  django_compat = callPackage ../development/python-modules/django-compat { };
 
-  pytest-ordering = callPackage ../development/python-modules/pytest-ordering { };
+  django_compressor = callPackage ../development/python-modules/django_compressor { };
 
-  pytest-pylint = callPackage ../development/python-modules/pytest-pylint { };
+  django-configurations = callPackage ../development/python-modules/django-configurations { };
 
-  pytest-qt = callPackage ../development/python-modules/pytest-qt { };
+  django_contrib_comments = callPackage ../development/python-modules/django_contrib_comments { };
 
-  pytest-testmon = callPackage ../development/python-modules/pytest-testmon { };
+  django-cors-headers = callPackage ../development/python-modules/django-cors-headers { };
 
-  pytest-tornado = callPackage ../development/python-modules/pytest-tornado { };
+  django-csp = callPackage ../development/python-modules/django-csp { };
 
-  pytest-tornasync = callPackage ../development/python-modules/pytest-tornasync { };
+  django-discover-runner = callPackage ../development/python-modules/django-discover-runner { };
 
-  pytest-trio = callPackage ../development/python-modules/pytest-trio { };
+  django-dynamic-preferences = callPackage ../development/python-modules/django-dynamic-preferences { };
 
-  pytest-twisted = callPackage ../development/python-modules/pytest-twisted { };
+  django_environ = callPackage ../development/python-modules/django_environ { };
 
-  pytest-xprocess = callPackage ../development/python-modules/pytest-xprocess { };
+  django_evolution = callPackage ../development/python-modules/django_evolution { };
 
-  pytest-xvfb = callPackage ../development/python-modules/pytest-xvfb { };
+  django_extensions = callPackage ../development/python-modules/django-extensions { };
 
-  pytmx = callPackage ../development/python-modules/pytmx { };
+  django-filter = callPackage ../development/python-modules/django-filter { };
 
-  pythonmagick = callPackage ../development/python-modules/pythonmagick { };
+  django-gravatar2 = callPackage ../development/python-modules/django-gravatar2 { };
 
-  python-binance = callPackage ../development/python-modules/python-binance { };
+  django_guardian = callPackage ../development/python-modules/django_guardian { };
 
-  python-dbusmock = callPackage ../development/python-modules/python-dbusmock { };
+  django-haystack = callPackage ../development/python-modules/django-haystack { };
 
-  python-dotenv = callPackage ../development/python-modules/python-dotenv { };
+  django_hijack_admin = callPackage ../development/python-modules/django-hijack-admin { };
 
-  python-engineio = callPackage ../development/python-modules/python-engineio { };
+  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-hosts = callPackage ../development/python-modules/python-hosts { };
+  django-ipware = callPackage ../development/python-modules/django-ipware { };
 
-  python-lz4 = callPackage ../development/python-modules/python-lz4 { };
-  lz4 = self.python-lz4; # alias 2018-12-05
+  django-jinja = callPackage ../development/python-modules/django-jinja2 { };
 
-  python-ldap-test = callPackage ../development/python-modules/python-ldap-test { };
+  django-logentry-admin = callPackage ../development/python-modules/django-logentry-admin { };
 
-  python-mnist = callPackage ../development/python-modules/python-mnist { };
+  django_lts = self.django_2_2;
 
-  pythonocc-core = toPythonModule (callPackage ../development/python-modules/pythonocc-core {
-    inherit (pkgs.xorg) libX11;
-  });
+  django-mailman3 = callPackage ../development/python-modules/django-mailman3 { };
 
-  python-igraph = callPackage ../development/python-modules/python-igraph {
-    pkgconfig = pkgs.pkgconfig;
-    igraph = pkgs.igraph;
-  };
+  django_modelcluster = callPackage ../development/python-modules/django_modelcluster { };
 
-  python-olm = callPackage ../development/python-modules/python-olm { };
+  django-multiselectfield = callPackage ../development/python-modules/django-multiselectfield { };
 
-  python3-openid = callPackage ../development/python-modules/python3-openid { };
+  django_nose = callPackage ../development/python-modules/django_nose { };
 
-  python-packer = callPackage ../development/python-modules/python-packer { };
+  django-oauth-toolkit = callPackage ../development/python-modules/django-oauth-toolkit { };
 
-  python-periphery = callPackage ../development/python-modules/python-periphery { };
+  django-paintstore = callPackage ../development/python-modules/django-paintstore { };
 
-  python-prctl = callPackage ../development/python-modules/python-prctl { };
+  django-pglocks = callPackage ../development/python-modules/django-pglocks { };
 
-  python-rapidjson = callPackage ../development/python-modules/python-rapidjson { };
+  django-picklefield = callPackage ../development/python-modules/django-picklefield { };
 
-  python-redis-lock = callPackage ../development/python-modules/python-redis-lock { };
+  django_pipeline = callPackage ../development/python-modules/django-pipeline { };
 
-  python-rtmidi = callPackage ../development/python-modules/python-rtmidi { };
+  django_polymorphic = callPackage ../development/python-modules/django-polymorphic { };
 
-  python-sql = callPackage ../development/python-modules/python-sql { };
+  django-postgresql-netfields = callPackage ../development/python-modules/django-postgresql-netfields { };
 
-  python-snappy = callPackage ../development/python-modules/python-snappy {
-    inherit (pkgs) snappy;
-  };
+  django-q = callPackage ../development/python-modules/django-q { };
 
-  python-stdnum = callPackage ../development/python-modules/python-stdnum { };
+  djangoql = callPackage ../development/python-modules/djangoql { };
 
-  python-socketio = callPackage ../development/python-modules/python-socketio { };
+  django-ranged-response = callPackage ../development/python-modules/django-ranged-response { };
 
-  python-utils = callPackage ../development/python-modules/python-utils { };
+  django-raster = callPackage ../development/python-modules/django-raster { };
 
-  python-vipaccess = callPackage ../development/python-modules/python-vipaccess { };
+  django_redis = callPackage ../development/python-modules/django_redis { };
 
-  pytimeparse =  callPackage ../development/python-modules/pytimeparse { };
+  django-rest-auth = callPackage ../development/python-modules/django-rest-auth { };
 
-  pytricia =  callPackage ../development/python-modules/pytricia { };
+  djangorestframework = callPackage ../development/python-modules/djangorestframework { };
 
-  pytrends = callPackage ../development/python-modules/pytrends { };
+  djangorestframework-jwt = callPackage ../development/python-modules/djangorestframework-jwt { };
 
-  py-vapid = callPackage ../development/python-modules/py-vapid { };
+  djangorestframework-simplejwt = callPackage ../development/python-modules/djangorestframework-simplejwt { };
 
-  PyWebDAV = callPackage ../development/python-modules/pywebdav { };
+  django_reversion = callPackage ../development/python-modules/django_reversion { };
 
-  pywebpush = callPackage ../development/python-modules/pywebpush { };
+  django-sampledatahelper = callPackage ../development/python-modules/django-sampledatahelper { };
 
-  pywebview = callPackage ../development/python-modules/pywebview { };
+  django = self.django_lts;
 
-  pywick = callPackage ../development/python-modules/pywick { };
+  django-sesame = callPackage ../development/python-modules/django-sesame { };
 
-  pyxml = disabledIf isPy3k (callPackage ../development/python-modules/pyxml{ });
+  django_silk = callPackage ../development/python-modules/django_silk { };
 
-  pyvcd = callPackage ../development/python-modules/pyvcd { };
+  django-simple-captcha = callPackage ../development/python-modules/django-simple-captcha { };
 
-  pyvcf = callPackage ../development/python-modules/pyvcf { };
+  django-sites = callPackage ../development/python-modules/django-sites { };
 
-  pyvoro = callPackage ../development/python-modules/pyvoro { };
+  django-sr = callPackage ../development/python-modules/django-sr { };
 
-  radish-bdd = callPackage ../development/python-modules/radish-bdd { };
+  django-storages = callPackage ../development/python-modules/django-storages { };
 
-  relatorio = callPackage ../development/python-modules/relatorio { };
+  django_tagging = callPackage ../development/python-modules/django_tagging { };
 
-  reproject = callPackage ../development/python-modules/reproject { };
+  django_taggit = callPackage ../development/python-modules/django_taggit { };
 
-  remotecv = callPackage ../development/python-modules/remotecv { };
+  django_treebeard = callPackage ../development/python-modules/django_treebeard { };
 
-  pyzufall = callPackage ../development/python-modules/pyzufall { };
+  django-versatileimagefield = callPackage ../development/python-modules/django-versatileimagefield { };
 
-  rig = callPackage ../development/python-modules/rig { };
+  django-webpack-loader = callPackage ../development/python-modules/django-webpack-loader { };
 
-  rhpl = disabledIf isPy3k (callPackage ../development/python-modules/rhpl {});
+  django-widget-tweaks = callPackage ../development/python-modules/django-widget-tweaks { };
 
-  rlp = callPackage ../development/python-modules/rlp { };
+  dj-database-url = callPackage ../development/python-modules/dj-database-url { };
 
-  rq = callPackage ../development/python-modules/rq { };
+  dj-email-url = callPackage ../development/python-modules/dj-email-url { };
 
-  rtmidi-python = callPackage ../development/python-modules/rtmidi-python { };
+  djmail = callPackage ../development/python-modules/djmail { };
 
-  rx = callPackage ../development/python-modules/rx { };
+  dj-search-url = callPackage ../development/python-modules/dj-search-url { };
 
-  sabyenc = callPackage ../development/python-modules/sabyenc { };
+  dkimpy = callPackage ../development/python-modules/dkimpy { };
 
-  sabyenc3 = callPackage ../development/python-modules/sabyenc3 { };
+  dlib = callPackage ../development/python-modules/dlib { inherit (pkgs) dlib; };
 
-  salmon-mail = callPackage ../development/python-modules/salmon-mail { };
+  dlx = callPackage ../development/python-modules/dlx { };
 
-  sanic-auth = callPackage ../development/python-modules/sanic-auth { };
+  dmenu-python = callPackage ../development/python-modules/dmenu { };
 
-  sapi-python-client = callPackage ../development/python-modules/sapi-python-client { };
+  dm-sonnet = callPackage ../development/python-modules/dm-sonnet { };
 
-  seekpath = callPackage ../development/python-modules/seekpath { };
+  dnslib = callPackage ../development/python-modules/dnslib { };
 
-  selectors2 = callPackage ../development/python-modules/selectors2 { };
+  dnspython = callPackage ../development/python-modules/dnspython { };
+  dns = self.dnspython; # Alias for compatibility, 2017-12-10
 
-  sacremoses = callPackage ../development/python-modules/sacremoses { };
+  doc8 = callPackage ../development/python-modules/doc8 { };
 
-  sentencepiece = callPackage ../development/python-modules/sentencepiece {
-    inherit (pkgs) sentencepiece pkgconfig;
-  };
+  docker = callPackage ../development/python-modules/docker { };
 
-  tokenizers = disabledIf (!isPy3k)
-    (toPythonModule (callPackage ../development/python-modules/tokenizers { }));
+  dockerfile-parse = callPackage ../development/python-modules/dockerfile-parse { };
 
-  towncrier = callPackage ../development/python-modules/towncrier {
-    inherit (pkgs) git;
-  };
+  dockerpty = callPackage ../development/python-modules/dockerpty { };
 
-  transformers = callPackage ../development/python-modules/transformers { };
+  docker_pycreds = callPackage ../development/python-modules/docker-pycreds { };
 
-  transforms3d = callPackage ../development/python-modules/transforms3d { };
+  docker-py = disabledIf isPy27 (callPackage ../development/python-modules/docker-py { });
 
-  trimesh = callPackage ../development/python-modules/trimesh {};
+  dockerspawner = callPackage ../development/python-modules/dockerspawner { };
 
-  sentinel = callPackage ../development/python-modules/sentinel { };
+  docloud = callPackage ../development/python-modules/docloud { };
 
-  sentry-sdk = callPackage ../development/python-modules/sentry-sdk {};
+  docopt = callPackage ../development/python-modules/docopt { };
 
-  sepaxml = callPackage ../development/python-modules/sepaxml { };
+  docplex = callPackage ../development/python-modules/docplex { };
 
-  serversyncstorage = callPackage ../development/python-modules/serversyncstorage {};
+  docrep = callPackage ../development/python-modules/docrep { };
 
-  shellingham = callPackage ../development/python-modules/shellingham {};
+  doctest-ignore-unicode = callPackage ../development/python-modules/doctest-ignore-unicode { };
 
-  simpleaudio = callPackage ../development/python-modules/simpleaudio { };
+  docutils = callPackage ../development/python-modules/docutils { };
 
-  simpleeval = callPackage ../development/python-modules/simpleeval { };
+  dodgy = callPackage ../development/python-modules/dodgy { };
 
-  simple-salesforce = callPackage ../development/python-modules/simple-salesforce { };
+  dogpile_cache = callPackage ../development/python-modules/dogpile.cache { };
 
-  singledispatch = callPackage ../development/python-modules/singledispatch { };
+  dogpile_core = callPackage ../development/python-modules/dogpile.core { };
 
-  sip = callPackage ../development/python-modules/sip { };
+  dogtail = callPackage ../development/python-modules/dogtail { };
 
-  sortedcontainers = callPackage ../development/python-modules/sortedcontainers { };
+  dominate = callPackage ../development/python-modules/dominate { };
 
-  sklearn-deap = callPackage ../development/python-modules/sklearn-deap { };
+  dopy = callPackage ../development/python-modules/dopy { };
 
-  skorch = callPackage ../development/python-modules/skorch { };
+  dot2tex = callPackage ../development/python-modules/dot2tex { inherit (pkgs) graphviz; };
 
-  slackclient = callPackage ../development/python-modules/slackclient { };
+  dotnetcore2 = callPackage ../development/python-modules/dotnetcore2 { inherit (pkgs) substituteAll dotnet-sdk; };
 
-  slicedimage = callPackage ../development/python-modules/slicedimage { };
+  dparse = callPackage ../development/python-modules/dparse { };
 
-  slicerator = callPackage ../development/python-modules/slicerator { };
+  dpath = callPackage ../development/python-modules/dpath { };
 
-  slither-analyzer = callPackage ../development/python-modules/slither-analyzer { };
+  dpkt = callPackage ../development/python-modules/dpkt { };
 
-  sly = callPackage ../development/python-modules/sly { };
+  drf-yasg = callPackage ../development/python-modules/drf-yasg { };
 
-  snapcast = callPackage ../development/python-modules/snapcast { };
+  drms = callPackage ../development/python-modules/drms { };
 
-  soapysdr = toPythonModule (pkgs.soapysdr.override {
-    python = self.python;
-    usePython = true;
-  });
+  dropbox = callPackage ../development/python-modules/dropbox { };
 
-  soapysdr-with-plugins = toPythonModule (pkgs.soapysdr-with-plugins.override {
-    python = self.python;
-    usePython = true;
-  });
+  ds4drv = callPackage ../development/python-modules/ds4drv { inherit (pkgs) fetchFromGitHub bluez; };
 
-  softlayer = callPackage ../development/python-modules/softlayer { };
+  dtopt = callPackage ../development/python-modules/dtopt { };
 
-  sparse = callPackage ../development/python-modules/sparse { };
+  duckdb = callPackage ../development/python-modules/duckdb { duckdb = pkgs.duckdb; };
 
-  spglib = callPackage ../development/python-modules/spglib { };
+  duecredit = callPackage ../development/python-modules/duecredit { };
 
-  spidev = callPackage ../development/python-modules/spidev { };
+  dugong = callPackage ../development/python-modules/dugong { };
 
-  srvlookup = callPackage ../development/python-modules/srvlookup { };
+  dulwich = if isPy3k then
+    callPackage ../development/python-modules/dulwich { }
+  else
+    callPackage ../development/python-modules/dulwich/0_19.nix { };
 
-  sshpubkeys = callPackage ../development/python-modules/sshpubkeys { };
+  dyn = callPackage ../development/python-modules/dyn { };
 
-  sshtunnel = callPackage ../development/python-modules/sshtunnel { };
+  dynd = callPackage ../development/python-modules/dynd { };
 
-  sslib = callPackage ../development/python-modules/sslib { };
+  easydict = callPackage ../development/python-modules/easydict { };
 
-  sslyze = callPackage ../development/python-modules/sslyze { };
+  easygui = callPackage ../development/python-modules/easygui { };
 
-  statistics = callPackage ../development/python-modules/statistics { };
+  EasyProcess = callPackage ../development/python-modules/easyprocess { };
 
-  stm32loader = callPackage ../development/python-modules/stm32loader { };
+  easysnmp = callPackage ../development/python-modules/easysnmp {
+    openssl = pkgs.openssl;
+    net-snmp = pkgs.net-snmp;
+  };
 
-  stumpy = callPackage ../development/python-modules/stumpy { };
+  easy-thumbnails = callPackage ../development/python-modules/easy-thumbnails { };
 
-  stups-cli-support = callPackage ../development/python-modules/stups-cli-support { };
+  easywatch = callPackage ../development/python-modules/easywatch { };
 
-  stups-fullstop = callPackage ../development/python-modules/stups-fullstop { };
+  eccodes = toPythonModule (pkgs.eccodes.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
 
-  stups-pierone = callPackage ../development/python-modules/stups-pierone { };
+  ecdsa = callPackage ../development/python-modules/ecdsa { };
 
-  stups-tokens = callPackage ../development/python-modules/stups-tokens { };
+  ecos = callPackage ../development/python-modules/ecos { };
 
-  stups-zign = callPackage ../development/python-modules/stups-zign { };
+  ecpy = callPackage ../development/python-modules/ecpy { };
 
-  sumo = callPackage ../development/python-modules/sumo { };
+  ed25519 = callPackage ../development/python-modules/ed25519 { };
 
-  supervise_api = callPackage ../development/python-modules/supervise_api { };
+  editorconfig = callPackage ../development/python-modules/editorconfig { };
 
-  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; };
-  };
+  edward = callPackage ../development/python-modules/edward { };
 
-  tag-expressions = callPackage ../development/python-modules/tag-expressions { };
+  effect = callPackage ../development/python-modules/effect { };
 
-  tableaudocumentapi = callPackage ../development/python-modules/tableaudocumentapi { };
+  eggdeps = callPackage ../development/python-modules/eggdeps { };
 
-  tesserocr = callPackage ../development/python-modules/tesserocr { };
+  elasticsearch = callPackage ../development/python-modules/elasticsearch { };
 
-  tls-parser = callPackage ../development/python-modules/tls-parser { };
+  elasticsearch-dsl = callPackage ../development/python-modules/elasticsearch-dsl { };
 
-  trueskill = callPackage ../development/python-modules/trueskill { };
+  elasticsearchdsl = self.elasticsearch-dsl; # alias
 
-  trustme = callPackage ../development/python-modules/trustme {};
+  elementpath = callPackage ../development/python-modules/elementpath { };
 
-  trio = callPackage ../development/python-modules/trio {};
+  eliot = callPackage ../development/python-modules/eliot { };
 
-  sniffio = callPackage ../development/python-modules/sniffio { };
+  emailthreads = callPackage ../development/python-modules/emailthreads { };
 
-  spyder-kernels = callPackage ../development/python-modules/spyder-kernels {};
-  spyder-kernels_0_5 = callPackage ../development/python-modules/spyder-kernels/0.x.nix {};
+  email_validator = callPackage ../development/python-modules/email-validator { };
 
-  spyder = callPackage ../development/python-modules/spyder {};
-  spyder_3 = callPackage ../development/python-modules/spyder/3.nix { };
+  emcee = callPackage ../development/python-modules/emcee { };
 
-  tenacity = callPackage ../development/python-modules/tenacity { };
+  emoji = callPackage ../development/python-modules/emoji { };
 
-  tokenserver = callPackage ../development/python-modules/tokenserver {};
+  enaml = callPackage ../development/python-modules/enaml { };
 
-  toml = callPackage ../development/python-modules/toml { };
+  enamlx = callPackage ../development/python-modules/enamlx { };
 
-  tomlkit = callPackage ../development/python-modules/tomlkit { };
+  entrance = callPackage ../development/python-modules/entrance { routerFeatures = false; };
 
-  toggl-cli = callPackage ../development/python-modules/toggl-cli { };
+  entrance-with-router-features = callPackage ../development/python-modules/entrance { routerFeatures = true; };
 
-  uamqp = callPackage ../development/python-modules/uamqp {
-    inherit (pkgs.darwin.apple_sdk.frameworks) CFNetwork Security;
-  };
+  entrypoints = callPackage ../development/python-modules/entrypoints { };
 
-  unifi = callPackage ../development/python-modules/unifi { };
+  enum34 = callPackage ../development/python-modules/enum34 { };
 
-  uvcclient = callPackage ../development/python-modules/uvcclient { };
+  enum = callPackage ../development/python-modules/enum { };
 
-  uvloop = callPackage ../development/python-modules/uvloop {
-    inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices CoreServices;
-  };
+  enum-compat = callPackage ../development/python-modules/enum-compat { };
 
-  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";
-      };
-    });
-  };
+  envisage = callPackage ../development/python-modules/envisage { };
 
-  pyunifi = callPackage ../development/python-modules/pyunifi { };
+  envs = callPackage ../development/python-modules/envs { };
 
-  vdf = callPackage ../development/python-modules/vdf { };
+  enzyme = callPackage ../development/python-modules/enzyme { };
 
-  vdirsyncer = callPackage ../development/python-modules/vdirsyncer {
-    inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices Security;
-    inherit (pkgs) pkg-config openssl rustPlatform;
-  };
+  epc = callPackage ../development/python-modules/epc { };
 
-  vdirsyncerStable = callPackage ../development/python-modules/vdirsyncer/stable.nix { };
+  ephem = callPackage ../development/python-modules/ephem { };
 
-  vidstab = callPackage ../development/python-modules/vidstab { };
+  eradicate = callPackage ../development/python-modules/eradicate { };
 
-  webapp2 = callPackage ../development/python-modules/webapp2 { };
+  escapism = callPackage ../development/python-modules/escapism { };
 
-  webdavclient3 = callPackage ../development/python-modules/webdavclient3 { };
+  etcd = callPackage ../development/python-modules/etcd { };
 
-  wordcloud = callPackage ../development/python-modules/wordcloud { };
+  etelemetry = callPackage ../development/python-modules/etelemetry { };
 
-  wrf-python = callPackage ../development/python-modules/wrf-python { };
+  etesync = callPackage ../development/python-modules/etesync { };
 
-  pyunbound = callPackage ../tools/networking/unbound/python.nix { };
+  eth-hash = callPackage ../development/python-modules/eth-hash { };
 
-  WazeRouteCalculator = callPackage ../development/python-modules/WazeRouteCalculator { };
+  eth-typing = callPackage ../development/python-modules/eth-typing { };
 
-  yarg = callPackage ../development/python-modules/yarg { };
+  eth-utils = callPackage ../development/python-modules/eth-utils { };
 
-  yt = callPackage ../development/python-modules/yt { };
+  et_xmlfile = callPackage ../development/python-modules/et_xmlfile { };
 
-  # packages defined here
+  evdev = callPackage ../development/python-modules/evdev { };
 
-  aafigure = callPackage ../development/python-modules/aafigure { };
+  eve = callPackage ../development/python-modules/eve { };
 
-  addic7ed-cli = callPackage ../development/python-modules/addic7ed-cli { };
+  eventlet = callPackage ../development/python-modules/eventlet { };
 
-  algebraic-data-types = callPackage ../development/python-modules/algebraic-data-types { };
+  eventlib = callPackage ../development/python-modules/eventlib { };
 
-  altair = callPackage ../development/python-modules/altair { };
+  events = callPackage ../development/python-modules/events { };
 
-  vega = callPackage ../development/python-modules/vega { };
+  evernote = callPackage ../development/python-modules/evernote { };
 
-  accupy = callPackage ../development/python-modules/accupy { };
+  ewmh = callPackage ../development/python-modules/ewmh { };
 
-  acme = callPackage ../development/python-modules/acme { };
+  exchangelib = callPackage ../development/python-modules/exchangelib { };
 
-  acme-tiny = callPackage ../development/python-modules/acme-tiny { };
+  execnet = callPackage ../development/python-modules/execnet { };
 
-  actdiag = callPackage ../development/python-modules/actdiag { };
+  executing = callPackage ../development/python-modules/executing { };
 
-  adal = callPackage ../development/python-modules/adal { };
+  executor = callPackage ../development/python-modules/executor { };
 
-  affine = callPackage ../development/python-modules/affine { };
+  exifread = callPackage ../development/python-modules/exifread { };
 
-  aioconsole = callPackage ../development/python-modules/aioconsole { };
+  extension-helpers = callPackage ../development/python-modules/extension-helpers { };
 
-  aiodns = callPackage ../development/python-modules/aiodns { };
+  extras = callPackage ../development/python-modules/extras { };
 
-  aiofiles = callPackage ../development/python-modules/aiofiles { };
+  eyeD3 = callPackage ../development/python-modules/eyed3 { };
 
-  aioh2 = callPackage ../development/python-modules/aioh2 { };
+  ezdxf = callPackage ../development/python-modules/ezdxf { };
 
-  aioftp = callPackage ../development/python-modules/aioftp { };
+  Fabric = callPackage ../development/python-modules/Fabric { };
 
-  aioharmony = callPackage ../development/python-modules/aioharmony { };
+  facebook-sdk = callPackage ../development/python-modules/facebook-sdk { };
 
-  aiohttp = callPackage ../development/python-modules/aiohttp { };
+  face = callPackage ../development/python-modules/face { };
 
-  aiohttp-cors = callPackage ../development/python-modules/aiohttp-cors { };
+  facedancer = callPackage ../development/python-modules/facedancer { };
 
-  aiohttp-jinja2 = callPackage ../development/python-modules/aiohttp-jinja2 { };
+  face_recognition = callPackage ../development/python-modules/face_recognition { };
 
-  aiohttp-remotes = callPackage ../development/python-modules/aiohttp-remotes { };
+  face_recognition_models = callPackage ../development/python-modules/face_recognition_models { };
 
-  aiohttp-socks = callPackage ../development/python-modules/aiohttp-socks { };
+  factory_boy = callPackage ../development/python-modules/factory_boy { };
 
-  aiohttp-swagger = callPackage ../development/python-modules/aiohttp-swagger { };
+  fake_factory = callPackage ../development/python-modules/fake_factory { };
 
-  aiomysql = callPackage ../development/python-modules/aiomysql { };
+  faker = callPackage ../development/python-modules/faker { };
 
-  aioprocessing = callPackage ../development/python-modules/aioprocessing { };
+  fake-useragent = callPackage ../development/python-modules/fake-useragent { };
 
-  aioresponses = callPackage ../development/python-modules/aioresponses { };
+  falcon = callPackage ../development/python-modules/falcon { };
 
-  aiosqlite = callPackage ../development/python-modules/aiosqlite { };
+  fastapi = callPackage ../development/python-modules/fastapi { };
 
-  aiorpcx = callPackage ../development/python-modules/aiorpcx { };
+  fastcache = callPackage ../development/python-modules/fastcache { };
 
-  aiosmtpd = callPackage ../development/python-modules/aiosmtpd { };
+  fastdtw = callPackage ../development/python-modules/fastdtw { };
 
-  aiounifi = callPackage ../development/python-modules/aiounifi { };
+  fasteners = callPackage ../development/python-modules/fasteners { };
 
-  aiounittest = callPackage ../development/python-modules/aiounittest { };
+  fastentrypoints = callPackage ../development/python-modules/fastentrypoints { };
 
-  aiozeroconf = callPackage ../development/python-modules/aiozeroconf { };
+  fastimport = callPackage ../development/python-modules/fastimport { };
 
-  ajpy = callPackage ../development/python-modules/ajpy { };
+  fastjsonschema = callPackage ../development/python-modules/fastjsonschema { };
 
-  alabaster = callPackage ../development/python-modules/alabaster {};
+  fastpair = callPackage ../development/python-modules/fastpair { };
 
-  alarmdecoder = callPackage ../development/python-modules/alarmdecoder {};
+  fastparquet = callPackage ../development/python-modules/fastparquet { };
 
-  alembic = callPackage ../development/python-modules/alembic {};
+  fastpbkdf2 = callPackage ../development/python-modules/fastpbkdf2 { };
 
-  allpairspy = callPackage ../development/python-modules/allpairspy { };
+  fastrlock = callPackage ../development/python-modules/fastrlock { };
 
-  annexremote = callPackage ../development/python-modules/annexremote { };
+  fasttext = callPackage ../development/python-modules/fasttext { };
 
-  ansible = callPackage ../development/python-modules/ansible { };
+  faulthandler = if !isPy3k then
+    callPackage ../development/python-modules/faulthandler { }
+  else
+    throw "faulthandler is built into ${python.executable}";
 
-  ansible-kernel = callPackage ../development/python-modules/ansible-kernel { };
+  favicon = callPackage ../development/python-modules/favicon { };
 
-  ansible-lint = callPackage ../development/python-modules/ansible-lint { };
+  fb-re2 = callPackage ../development/python-modules/fb-re2 { };
 
-  ansible-runner = callPackage ../development/python-modules/ansible-runner { };
+  fdint = callPackage ../development/python-modules/fdint { };
 
-  ansicolors = callPackage ../development/python-modules/ansicolors {};
+  feedgen = callPackage ../development/python-modules/feedgen { };
 
-  aniso8601 = callPackage ../development/python-modules/aniso8601 {};
+  feedgenerator = callPackage ../development/python-modules/feedgenerator { inherit (pkgs) glibcLocales; };
 
-  anonip = callPackage ../development/python-modules/anonip { };
+  feedparser = callPackage ../development/python-modules/feedparser { };
 
-  asgiref = callPackage ../development/python-modules/asgiref { };
+  fenics = callPackage ../development/libraries/science/math/fenics {
+    inherit (pkgs) pkg-config;
+    mpi = pkgs.openmpi;
+    pytest = self.pytest_4;
+  };
 
-  python-editor = callPackage ../development/python-modules/python-editor { };
+  ffmpeg-python = callPackage ../development/python-modules/ffmpeg-python { };
 
-  python-gnupg = callPackage ../development/python-modules/python-gnupg {};
+  fido2 = callPackage ../development/python-modules/fido2 { };
 
-  python-uinput = callPackage ../development/python-modules/python-uinput {};
+  filebrowser_safe = callPackage ../development/python-modules/filebrowser_safe { };
 
-  python-sybase = callPackage ../development/python-modules/sybase {};
+  filebytes = callPackage ../development/python-modules/filebytes { };
 
-  alot = callPackage ../development/python-modules/alot {};
+  filelock = callPackage ../development/python-modules/filelock { };
 
-  anyjson = callPackage ../development/python-modules/anyjson {};
+  filemagic = callPackage ../development/python-modules/filemagic { };
 
-  amqp = callPackage ../development/python-modules/amqp {};
+  filetype = callPackage ../development/python-modules/filetype { };
 
-  amqplib = callPackage ../development/python-modules/amqplib {};
+  filterpy = callPackage ../development/python-modules/filterpy { };
 
-  antlr4-python2-runtime = callPackage ../development/python-modules/antlr4-python2-runtime { antlr4 = pkgs.antlr4; };
+  finalfusion = callPackage ../development/python-modules/finalfusion { };
 
-  antlr4-python3-runtime = callPackage ../development/python-modules/antlr4-python3-runtime { antlr4 = pkgs.antlr4; };
+  fints = callPackage ../development/python-modules/fints { };
 
-  apache-airflow = callPackage ../development/python-modules/apache-airflow { };
+  fiona = callPackage ../development/python-modules/fiona { gdal_2 = pkgs.gdal_2; };
 
-  apipkg = callPackage ../development/python-modules/apipkg {};
+  fipy = callPackage ../development/python-modules/fipy { };
 
-  apispec = callPackage ../development/python-modules/apispec {};
+  fire = callPackage ../development/python-modules/fire { };
 
-  appdirs = callPackage ../development/python-modules/appdirs { };
+  firetv = callPackage ../development/python-modules/firetv { };
 
-  appleseed = disabledIf isPy3k
-    (toPythonModule (pkgs.appleseed.override {
-      inherit (self) python;
-    }));
+  first = callPackage ../development/python-modules/first { };
 
-  application = callPackage ../development/python-modules/application { };
+  fitbit = callPackage ../development/python-modules/fitbit { };
 
-  applicationinsights = callPackage ../development/python-modules/applicationinsights { };
+  fixtures = callPackage ../development/python-modules/fixtures { };
 
-  appnope = callPackage ../development/python-modules/appnope { };
+  flake8-blind-except = callPackage ../development/python-modules/flake8-blind-except { };
 
-  approvaltests = callPackage ../development/python-modules/approvaltests { };
+  flake8 = callPackage ../development/python-modules/flake8 { };
 
-  apptools = callPackage ../development/python-modules/apptools {};
+  flake8-debugger = callPackage ../development/python-modules/flake8-debugger { };
 
-  apsw = callPackage ../development/python-modules/apsw {};
+  flake8-future-import = callPackage ../development/python-modules/flake8-future-import { };
 
-  astor = callPackage ../development/python-modules/astor {};
+  flake8-import-order = callPackage ../development/python-modules/flake8-import-order { };
 
-  asyncpg = callPackage ../development/python-modules/asyncpg { };
+  flake8-polyfill = callPackage ../development/python-modules/flake8-polyfill { };
 
-  asyncssh = callPackage ../development/python-modules/asyncssh { };
+  flaky = callPackage ../development/python-modules/flaky { };
 
-  atpublic = callPackage ../development/python-modules/atpublic { };
+  flammkuchen = callPackage ../development/python-modules/flammkuchen { };
 
-  python-fontconfig = callPackage ../development/python-modules/python-fontconfig { };
+  flask-admin = callPackage ../development/python-modules/flask-admin { };
 
-  funcsigs = callPackage ../development/python-modules/funcsigs { };
+  flask-api = callPackage ../development/python-modules/flask-api { };
 
-  APScheduler = callPackage ../development/python-modules/APScheduler { };
+  flask-appbuilder = callPackage ../development/python-modules/flask-appbuilder { };
 
-  args = callPackage ../development/python-modules/args { };
+  flask_assets = callPackage ../development/python-modules/flask-assets { };
 
-  argcomplete = callPackage ../development/python-modules/argcomplete { };
+  flask-autoindex = callPackage ../development/python-modules/flask-autoindex { };
 
-  area = callPackage ../development/python-modules/area { };
+  flask-babel = callPackage ../development/python-modules/flask-babel { };
 
-  arxiv2bib = callPackage ../development/python-modules/arxiv2bib { };
+  flaskbabel = callPackage ../development/python-modules/flaskbabel { };
 
-  chai = callPackage ../development/python-modules/chai { };
+  flask-babelex = callPackage ../development/python-modules/flask-babelex { };
 
-  chainmap = callPackage ../development/python-modules/chainmap { };
+  flask-bcrypt = callPackage ../development/python-modules/flask-bcrypt { };
 
-  arelle = callPackage ../development/python-modules/arelle {
-    gui = true;
-  };
+  flask-bootstrap = callPackage ../development/python-modules/flask-bootstrap { };
 
-  arelle-headless = callPackage ../development/python-modules/arelle {
-    gui = false;
-  };
+  flask-caching = callPackage ../development/python-modules/flask-caching { };
 
-  delegator-py = callPackage ../development/python-modules/delegator-py { };
+  flask = callPackage ../development/python-modules/flask { };
 
-  deluge-client = callPackage ../development/python-modules/deluge-client { };
+  flask-common = callPackage ../development/python-modules/flask-common { };
 
-  arrow = callPackage ../development/python-modules/arrow { };
+  flask-compress = callPackage ../development/python-modules/flask-compress { };
 
-  asynctest = callPackage ../development/python-modules/asynctest { };
+  flask-cors = callPackage ../development/python-modules/flask-cors { };
 
-  async-timeout = callPackage ../development/python-modules/async_timeout { };
+  flask_elastic = callPackage ../development/python-modules/flask-elastic { };
 
-  async_generator = callPackage ../development/python-modules/async_generator { };
+  flask-httpauth = callPackage ../development/python-modules/flask-httpauth { };
 
-  async-upnp-client = callPackage ../development/python-modules/async-upnp-client { };
+  flask-jwt-extended = callPackage ../development/python-modules/flask-jwt-extended { };
 
-  asn1ate = callPackage ../development/python-modules/asn1ate { };
+  flask_ldap_login = callPackage ../development/python-modules/flask-ldap-login { };
 
-  atlassian-python-api = callPackage ../development/python-modules/atlassian-python-api { };
+  flask-limiter = callPackage ../development/python-modules/flask-limiter { };
 
-  atomiclong = callPackage ../development/python-modules/atomiclong { };
+  flask_login = callPackage ../development/python-modules/flask-login { };
 
-  atomicwrites = callPackage ../development/python-modules/atomicwrites { };
+  flask_mail = callPackage ../development/python-modules/flask-mail { };
 
-  astroid = if isPy3k then callPackage ../development/python-modules/astroid { }
-            else callPackage ../development/python-modules/astroid/1.6.nix { };
+  flask_marshmallow = callPackage ../development/python-modules/flask-marshmallow { };
 
-  attrdict = callPackage ../development/python-modules/attrdict { };
+  flask_migrate = callPackage ../development/python-modules/flask-migrate { };
 
-  attrs = callPackage ../development/python-modules/attrs { };
+  flask-mongoengine = callPackage ../development/python-modules/flask-mongoengine { };
 
-  atsim_potentials = callPackage ../development/python-modules/atsim_potentials { };
+  flask-openid = callPackage ../development/python-modules/flask-openid { };
 
-  audio-metadata = callPackage ../development/python-modules/audio-metadata { };
+  flask-paginate = callPackage ../development/python-modules/flask-paginate { };
 
-  audioread = callPackage ../development/python-modules/audioread { };
+  flask_principal = callPackage ../development/python-modules/flask-principal { };
 
-  audiotools = callPackage ../development/python-modules/audiotools { };
+  flask-pymongo = callPackage ../development/python-modules/Flask-PyMongo { };
 
-  autopep8 = callPackage ../development/python-modules/autopep8 { };
+  flask-restful = callPackage ../development/python-modules/flask-restful { };
 
-  av = callPackage ../development/python-modules/av {
-    inherit (pkgs) pkgconfig;
-  };
+  flask-restplus = callPackage ../development/python-modules/flask-restplus { };
 
-  avro = callPackage ../development/python-modules/avro {};
+  flask-restx = callPackage ../development/python-modules/flask-restx { };
 
-  avro3k = callPackage ../development/python-modules/avro3k {};
+  flask-reverse-proxy-fix = callPackage ../development/python-modules/flask-reverse-proxy-fix { };
 
-  avro-python3 = callPackage ../development/python-modules/avro-python3 {};
+  flask_script = callPackage ../development/python-modules/flask-script { };
 
-  aws-lambda-builders = callPackage ../development/python-modules/aws-lambda-builders { };
+  flask-silk = callPackage ../development/python-modules/flask-silk { };
 
-  python-slugify = callPackage ../development/python-modules/python-slugify { };
+  flask-socketio = callPackage ../development/python-modules/flask-socketio { };
 
-  awesome-slugify = callPackage ../development/python-modules/awesome-slugify {};
+  flask-sockets = callPackage ../development/python-modules/flask-sockets { };
 
-  noise = callPackage ../development/python-modules/noise {};
+  flask_sqlalchemy = callPackage ../development/python-modules/flask-sqlalchemy { };
 
-  backcall = callPackage ../development/python-modules/backcall { };
+  flask-swagger = callPackage ../development/python-modules/flask-swagger { };
 
-  backoff = callPackage ../development/python-modules/backoff { };
+  flask-swagger-ui = callPackage ../development/python-modules/flask-swagger-ui { };
 
-  backports_abc = callPackage ../development/python-modules/backports_abc { };
+  flask_testing = callPackage ../development/python-modules/flask-testing { };
 
-  backports_functools_lru_cache = callPackage ../development/python-modules/backports_functools_lru_cache { };
+  flask-versioned = callPackage ../development/python-modules/flask-versioned { };
 
-  backports_os = callPackage ../development/python-modules/backports_os { };
+  flask_wtf = callPackage ../development/python-modules/flask-wtf { };
 
-  backports_shutil_get_terminal_size = callPackage ../development/python-modules/backports_shutil_get_terminal_size { };
+  flexmock = callPackage ../development/python-modules/flexmock { };
 
-  backports_ssl_match_hostname = if !(pythonOlder "3.5") then null else
-    callPackage ../development/python-modules/backports_ssl_match_hostname { };
+  flickrapi = callPackage ../development/python-modules/flickrapi { };
 
-  backports_lzma = callPackage ../development/python-modules/backports_lzma { };
+  flit = callPackage ../development/python-modules/flit { };
 
-  backports_tempfile = callPackage ../development/python-modules/backports_tempfile { };
+  flit-core = callPackage ../development/python-modules/flit-core { };
 
-  backports_unittest-mock = callPackage ../development/python-modules/backports_unittest-mock {};
+  flower = callPackage ../development/python-modules/flower { };
 
-  babelfish = callPackage ../development/python-modules/babelfish {};
+  flowlogs_reader = callPackage ../development/python-modules/flowlogs_reader { };
 
-  bandit = callPackage ../development/python-modules/bandit {};
+  fluent-logger = callPackage ../development/python-modules/fluent-logger { };
 
-  basiciw = callPackage ../development/python-modules/basiciw {
-    inherit (pkgs) gcc wirelesstools;
-  };
+  flufl_bounce = callPackage ../development/python-modules/flufl/bounce.nix { };
 
-  base58 = callPackage ../development/python-modules/base58 {};
+  flufl_i18n = callPackage ../development/python-modules/flufl/i18n.nix { };
 
-  batchgenerators = callPackage ../development/python-modules/batchgenerators { };
+  flufl_lock = callPackage ../development/python-modules/flufl/lock.nix { };
 
-  batinfo = callPackage ../development/python-modules/batinfo {};
+  flup = callPackage ../development/python-modules/flup { };
 
-  bcdoc = callPackage ../development/python-modules/bcdoc {};
+  flux-led = callPackage ../development/python-modules/flux-led { };
 
-  beancount = callPackage ../development/python-modules/beancount { };
+  fn = callPackage ../development/python-modules/fn { };
 
-  beautifulsoup4 = callPackage ../development/python-modules/beautifulsoup4 { };
+  folium = callPackage ../development/python-modules/folium { };
 
-  beaker = callPackage ../development/python-modules/beaker { };
+  fontforge = disabledIf (!isPy3k) (toPythonModule (pkgs.fontforge.override {
+    withPython = true;
+    inherit python;
+  }));
 
-  bespon = callPackage ../development/python-modules/bespon { };
+  fontmath = callPackage ../development/python-modules/fontmath { };
 
-  betamax = callPackage ../development/python-modules/betamax {};
+  fontparts = callPackage ../development/python-modules/fontparts { };
 
-  betamax-matchers = callPackage ../development/python-modules/betamax-matchers { };
+  fontpens = callPackage ../development/python-modules/fontpens { };
 
-  betamax-serializers = callPackage ../development/python-modules/betamax-serializers { };
+  fonttools = callPackage ../development/python-modules/fonttools { };
 
-  bibtexparser = callPackage ../development/python-modules/bibtexparser { };
+  foolscap = callPackage ../development/python-modules/foolscap { };
 
-  bidict = callPackage ../development/python-modules/bidict { };
+  forbiddenfruit = callPackage ../development/python-modules/forbiddenfruit { };
 
-  bids-validator = callPackage ../development/python-modules/bids-validator { };
+  FormEncode = callPackage ../development/python-modules/FormEncode { };
 
-  binwalk = callPackage ../development/python-modules/binwalk {
-    pyqtgraph = null;
-    matplotlib = null;
-  };
+  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; };
 
-  binwalk-full = appendToName "full" (self.binwalk.override {
-    pyqtgraph = self.pyqtgraph;
-    matplotlib = self.matplotlib;
-  });
+  foxdot = callPackage ../development/python-modules/foxdot { };
 
-  bitmath = callPackage ../development/python-modules/bitmath { };
+  fpdf = callPackage ../development/python-modules/fpdf { };
 
-  bitstruct = callPackage ../development/python-modules/bitstruct { };
+  fpylll = callPackage ../development/python-modules/fpylll { };
 
-  caldav = callPackage ../development/python-modules/caldav { };
+  freetype-py = callPackage ../development/python-modules/freetype-py { };
 
-  biopython = callPackage ../development/python-modules/biopython { };
+  freezegun = callPackage ../development/python-modules/freezegun { };
 
-  bedup = callPackage ../development/python-modules/bedup { };
+  fritzconnection = callPackage ../development/python-modules/fritzconnection { };
 
-  blessed = callPackage ../development/python-modules/blessed {};
+  frozendict = callPackage ../development/python-modules/frozendict { };
 
-  block-io = callPackage ../development/python-modules/block-io {};
+  fs = callPackage ../development/python-modules/fs { };
 
-  # 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;
-  });
+  fs-s3fs = callPackage ../development/python-modules/fs-s3fs { };
 
-  boltztrap2 = callPackage ../development/python-modules/boltztrap2 { };
+  fsspec = callPackage ../development/python-modules/fsspec { };
 
-  boolean-py = callPackage ../development/python-modules/boolean-py { };
+  ftfy = callPackage ../development/python-modules/ftfy { };
 
-  bumps = callPackage ../development/python-modules/bumps {};
+  ftputil = callPackage ../development/python-modules/ftputil { };
 
-  bx-python = callPackage ../development/python-modules/bx-python {
-    inherit (pkgs) zlib;
-  };
+  fudge = callPackage ../development/python-modules/fudge { };
 
-  cached-property = callPackage ../development/python-modules/cached-property { };
+  funcparserlib = callPackage ../development/python-modules/funcparserlib { };
 
-  caffe = toPythonModule (pkgs.caffe.override {
-    pythonSupport = true;
-    inherit (self) python numpy boost;
-  });
+  funcsigs = callPackage ../development/python-modules/funcsigs { };
 
-  capstone = callPackage ../development/python-modules/capstone { inherit (pkgs) capstone; };
+  functools32 = callPackage ../development/python-modules/functools32 { };
 
-  capturer = callPackage ../development/python-modules/capturer { };
+  funcy = callPackage ../development/python-modules/funcy { };
 
-  cement = callPackage ../development/python-modules/cement {};
+  furl = callPackage ../development/python-modules/furl { };
 
-  cgen = callPackage ../development/python-modules/cgen { };
+  fuse = callPackage ../development/python-modules/fuse-python { inherit (pkgs) fuse pkgconfig; };
 
-  cgroup-utils = callPackage ../development/python-modules/cgroup-utils {};
+  fusepy = callPackage ../development/python-modules/fusepy { };
 
-  chainer = callPackage ../development/python-modules/chainer {
-    cudaSupport = pkgs.config.cudaSupport or false;
-  };
+  future = callPackage ../development/python-modules/future { };
 
-  channels = callPackage ../development/python-modules/channels {};
+  future-fstrings = callPackage ../development/python-modules/future-fstrings { };
 
-  cheroot = callPackage ../development/python-modules/cheroot {};
+  futures = callPackage ../development/python-modules/futures { };
 
-  chevron = callPackage ../development/python-modules/chevron {};
+  fuzzywuzzy = callPackage ../development/python-modules/fuzzywuzzy { };
 
-  ci-info = callPackage ../development/python-modules/ci-info { };
+  fx2 = callPackage ../development/python-modules/fx2 { };
 
-  ci-py = callPackage ../development/python-modules/ci-py { };
+  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
 
-  cli-helpers = callPackage ../development/python-modules/cli-helpers {};
+  galario = toPythonModule (pkgs.galario.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
 
-  cmarkgfm = callPackage ../development/python-modules/cmarkgfm { };
+  gast = callPackage ../development/python-modules/gast { };
 
-  cirq = callPackage ../development/python-modules/cirq { };
+  gateone = callPackage ../development/python-modules/gateone { };
 
-  citeproc-py = callPackage ../development/python-modules/citeproc-py { };
+  gcovr = callPackage ../development/python-modules/gcovr { };
 
-  colorcet = callPackage ../development/python-modules/colorcet { };
+  gdal = toPythonModule (pkgs.gdal.override { pythonPackages = self; });
 
-  coloredlogs = callPackage ../development/python-modules/coloredlogs { };
+  gdata = callPackage ../development/python-modules/gdata { };
 
-  colorclass = callPackage ../development/python-modules/colorclass {};
+  gdcm = disabledIf isPy27 (toPythonModule (pkgs.gdcm.override {
+    inherit (self) python;
+    enablePython = true;
+  }));
 
-  colorful = callPackage ../development/python-modules/colorful {};
+  gdown = callPackage ../development/python-modules/gdown { };
 
-  colorlog = callPackage ../development/python-modules/colorlog { };
+  gdrivefs = callPackage ../development/python-modules/gdrivefs { };
 
-  colorspacious = callPackage ../development/python-modules/colorspacious { };
+  geant4 = disabledIf (!isPy3k) (toPythonModule (pkgs.geant4.override {
+    enablePython = true;
+    python3 = python;
+  }));
 
-  colour = callPackage ../development/python-modules/colour {};
+  geeknote = callPackage ../development/python-modules/geeknote { };
 
-  colormath = callPackage ../development/python-modules/colormath {};
+  genanki = callPackage ../development/python-modules/genanki { };
 
-  configshell = callPackage ../development/python-modules/configshell { };
+  genpy = callPackage ../development/python-modules/genpy { };
 
-  consonance = callPackage ../development/python-modules/consonance { };
+  genshi = callPackage ../development/python-modules/genshi { };
 
-  constantly = callPackage ../development/python-modules/constantly { };
+  gensim = callPackage ../development/python-modules/gensim { };
 
-  cornice = callPackage ../development/python-modules/cornice { };
+  gentools = callPackage ../development/python-modules/gentools { };
 
-  crashtest = callPackage ../development/python-modules/crashtest { };
+  genzshcomp = callPackage ../development/python-modules/genzshcomp { };
 
-  cram = callPackage ../development/python-modules/cram { };
+  geoalchemy2 = callPackage ../development/python-modules/geoalchemy2 { };
 
-  crc16 = callPackage ../development/python-modules/crc16 { };
+  geographiclib = callPackage ../development/python-modules/geographiclib { };
 
-  crccheck = callPackage ../development/python-modules/crccheck { };
+  geoip2 = callPackage ../development/python-modules/geoip2 { };
 
-  croniter = callPackage ../development/python-modules/croniter { };
+  GeoIP = callPackage ../development/python-modules/GeoIP { };
 
-  csscompressor = callPackage ../development/python-modules/csscompressor {};
+  geojson = callPackage ../development/python-modules/geojson { };
 
-  csvs-to-sqlite = callPackage ../development/python-modules/csvs-to-sqlite { };
+  geopandas = callPackage ../development/python-modules/geopandas { };
 
-  cufflinks = callPackage ../development/python-modules/cufflinks { };
+  geopy = if isPy3k then
+    callPackage ../development/python-modules/geopy { }
+  else
+    callPackage ../development/python-modules/geopy/2.nix { };
 
-  cupy = callPackage ../development/python-modules/cupy {
-    cudatoolkit = pkgs.cudatoolkit_10_0;
-    cudnn = pkgs.cudnn_cudatoolkit_10_0;
-    nccl = pkgs.nccl_cudatoolkit_10;
-  };
+  getmac = callPackage ../development/python-modules/getmac { };
 
-  cx_Freeze = callPackage ../development/python-modules/cx_freeze {};
+  gevent = callPackage ../development/python-modules/gevent { };
 
-  cx_oracle = callPackage ../development/python-modules/cx_oracle {};
+  geventhttpclient = callPackage ../development/python-modules/geventhttpclient { };
 
-  cvxopt = callPackage ../development/python-modules/cvxopt { };
+  gevent-socketio = callPackage ../development/python-modules/gevent-socketio { };
 
-  cvxpy = callPackage ../development/python-modules/cvxpy { };
+  gevent-websocket = callPackage ../development/python-modules/gevent-websocket { };
 
-  cycler = callPackage ../development/python-modules/cycler { };
+  gflags = callPackage ../development/python-modules/gflags { };
 
-  cysignals = callPackage ../development/python-modules/cysignals { };
+  ghdiff = callPackage ../development/python-modules/ghdiff { };
 
-  cypari2 = callPackage ../development/python-modules/cypari2 { };
+  gidgethub = callPackage ../development/python-modules/gidgethub { };
 
-  dlib = callPackage ../development/python-modules/dlib {
-    inherit (pkgs) dlib;
-  };
+  gin-config = callPackage ../development/python-modules/gin-config { };
 
-  datadog = callPackage ../development/python-modules/datadog {};
+  gipc = callPackage ../development/python-modules/gipc { };
 
-  dataclasses = callPackage ../development/python-modules/dataclasses { };
+  git-annex-adapter =
+    callPackage ../development/python-modules/git-annex-adapter { inherit (pkgs.gitAndTools) git-annex; };
 
-  dataclasses-json = callPackage ../development/python-modules/dataclasses-json { };
+  gitdb2 = throw "gitdb2 has been deprecated, use gitdb instead."; # added 2020-03-14
 
-  debian = callPackage ../development/python-modules/debian {};
+  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 { };
-
-  conda = callPackage ../development/python-modules/conda { };
-
-  configobj = callPackage ../development/python-modules/configobj { };
-
-  confluent-kafka = callPackage ../development/python-modules/confluent-kafka {};
+    callPackage ../development/python-modules/gsd { };
 
-  kafka-python = callPackage ../development/python-modules/kafka-python {};
-
-  construct = callPackage ../development/python-modules/construct {};
+  gspread = callPackage ../development/python-modules/gspread { };
 
-  consul = callPackage ../development/python-modules/consul { };
+  gssapi = callPackage ../development/python-modules/gssapi { inherit (pkgs) darwin krb5Full; };
 
-  contexter = callPackage ../development/python-modules/contexter { };
+  gst-python = callPackage ../development/python-modules/gst-python {
+    inherit (pkgs) meson pkgconfig;
+    gst-plugins-base = pkgs.gst_all_1.gst-plugins-base;
+  };
 
-  contextvars = callPackage ../development/python-modules/contextvars {};
+  gtimelog = callPackage ../development/python-modules/gtimelog { };
 
-  contextlib2 = callPackage ../development/python-modules/contextlib2 { };
+  gtts = callPackage ../development/python-modules/gtts { };
 
-  cookiecutter = callPackage ../development/python-modules/cookiecutter { };
+  gtts-token = callPackage ../development/python-modules/gtts-token { };
 
-  cookies = callPackage ../development/python-modules/cookies { };
+  guessit = callPackage ../development/python-modules/guessit { };
 
-  coreapi = callPackage ../development/python-modules/coreapi { };
+  guestfs = callPackage ../development/python-modules/guestfs { };
 
-  coreschema = callPackage ../development/python-modules/coreschema { };
+  gumath = callPackage ../development/python-modules/gumath { };
 
-  coveralls = callPackage ../development/python-modules/coveralls { };
+  gunicorn = if isPy27 then
+    callPackage ../development/python-modules/gunicorn/19.nix { }
+  else
+    callPackage ../development/python-modules/gunicorn { };
 
-  coverage = callPackage ../development/python-modules/coverage { };
+  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}";
 
-  covCore = callPackage ../development/python-modules/cov-core { };
+  guzzle_sphinx_theme = callPackage ../development/python-modules/guzzle_sphinx_theme { };
 
-  crcmod = callPackage ../development/python-modules/crcmod { };
+  gwyddion = disabledIf isPy3k (toPythonModule (pkgs.gwyddion.override {
+    pythonSupport = true;
+    pythonPackages = self;
+  }));
 
-  credstash = callPackage ../development/python-modules/credstash { };
+  gym = callPackage ../development/python-modules/gym { };
 
-  cython = callPackage ../development/python-modules/Cython { };
+  gyp = callPackage ../development/python-modules/gyp { };
 
-  cytoolz = callPackage ../development/python-modules/cytoolz { };
+  h11 = callPackage ../development/python-modules/h11 { };
 
-  cppy = callPackage ../development/python-modules/cppy { };
+  h2 = callPackage ../development/python-modules/h2 { };
 
-  cryptacular = callPackage ../development/python-modules/cryptacular { };
+  h3 = callPackage ../development/python-modules/h3 { inherit (pkgs) h3; };
 
-  cryptography = if isPy27 then
-      callPackage ../development/python-modules/cryptography/2.9.nix { }
-    else
-      callPackage ../development/python-modules/cryptography { };
+  h5netcdf = callPackage ../development/python-modules/h5netcdf { };
 
-  cryptography_vectors = if isPy27 then
-      callPackage ../development/python-modules/cryptography/vectors-2.9.nix { }
-    else
-      callPackage ../development/python-modules/cryptography/vectors.nix { };
+  h5py = callPackage ../development/python-modules/h5py { hdf5 = pkgs.hdf5; };
 
-  curtsies = callPackage ../development/python-modules/curtsies { };
+  h5py-mpi = self.h5py.override { hdf5 = pkgs.hdf5-mpi; };
 
-  envs = callPackage ../development/python-modules/envs { };
+  habanero = callPackage ../development/python-modules/habanero { };
 
-  enaml = callPackage ../development/python-modules/enaml { };
+  ha-ffmpeg = callPackage ../development/python-modules/ha-ffmpeg { };
 
-  enamlx = callPackage ../development/python-modules/enamlx { };
+  handout = callPackage ../development/python-modules/handout { };
 
-  etelemetry = callPackage ../development/python-modules/etelemetry { };
+  HAP-python = callPackage ../development/python-modules/HAP-python { };
 
-  eth-hash = callPackage ../development/python-modules/eth-hash { };
+  hass-nabucasa = callPackage ../development/python-modules/hass-nabucasa { };
 
-  eth-typing = callPackage ../development/python-modules/eth-typing { };
+  hawkauthlib = callPackage ../development/python-modules/hawkauthlib { };
 
-  eth-utils = callPackage ../development/python-modules/eth-utils { };
+  hbmqtt = callPackage ../development/python-modules/hbmqtt { };
 
-  gwyddion = disabledIf isPy3k (toPythonModule (pkgs.gwyddion.override {
-    pythonSupport = true;
-    pythonPackages = self;
-  }));
+  hcloud = callPackage ../development/python-modules/hcloud { };
 
-  impacket = callPackage ../development/python-modules/impacket { };
+  hcs_utils = callPackage ../development/python-modules/hcs_utils { };
 
-  img2pdf = callPackage ../development/python-modules/img2pdf { };
+  hdbscan = callPackage ../development/python-modules/hdbscan { };
 
-  jsonlines = callPackage ../development/python-modules/jsonlines { };
+  hdlparse = callPackage ../development/python-modules/hdlparse { };
 
-  json-merge-patch = callPackage ../development/python-modules/json-merge-patch { };
+  hdmedians = callPackage ../development/python-modules/hdmedians { };
 
-  jsonrpc-async = callPackage ../development/python-modules/jsonrpc-async { };
+  heapdict = callPackage ../development/python-modules/heapdict { };
 
-  jsonrpc-base = callPackage ../development/python-modules/jsonrpc-base { };
+  helpdev = callPackage ../development/python-modules/helpdev { };
 
-  jsonrpc-websocket = callPackage ../development/python-modules/jsonrpc-websocket { };
+  helper = callPackage ../development/python-modules/helper { };
 
-  hepmc3 = toPythonModule (pkgs.hepmc3.override {
-    inherit python;
-  });
+  hepmc3 = toPythonModule (pkgs.hepmc3.override { inherit python; });
 
-  onkyo-eiscp = callPackage ../development/python-modules/onkyo-eiscp { };
+  hetzner = callPackage ../development/python-modules/hetzner { };
 
-  tablib = callPackage ../development/python-modules/tablib { };
+  heudiconv = callPackage ../development/python-modules/heudiconv { };
 
-  wakeonlan = callPackage ../development/python-modules/wakeonlan { };
+  hg-evolve = callPackage ../development/python-modules/hg-evolve { };
 
-  openant = callPackage ../development/python-modules/openant { };
+  hg-git = callPackage ../development/python-modules/hg-git { };
 
-  opencv = disabledIf isPy3k (toPythonModule (pkgs.opencv.override {
-    enablePython = true;
-    pythonPackages = self;
-  }));
+  hglib = callPackage ../development/python-modules/hglib { };
 
-  opencv3 = toPythonModule (pkgs.opencv3.override {
-    enablePython = true;
-    pythonPackages = self;
-  });
+  hgsvn = callPackage ../development/python-modules/hgsvn { };
 
-  opencv4 = toPythonModule (pkgs.opencv4.override {
-    enablePython = true;
-    pythonPackages = self;
-  });
+  hickle = callPackage ../development/python-modules/hickle { };
 
-  opentracing = callPackage ../development/python-modules/opentracing { };
+  hidapi = callPackage ../development/python-modules/hidapi { inherit (pkgs) udev libusb1; };
 
-  openidc-client = callPackage ../development/python-modules/openidc-client {};
+  hieroglyph = callPackage ../development/python-modules/hieroglyph { };
 
-  openwebifpy = callPackage ../development/python-modules/openwebifpy {};
+  hiredis = callPackage ../development/python-modules/hiredis { };
 
-  optuna = callPackage ../development/python-modules/optuna { };
+  hiro = callPackage ../development/python-modules/hiro { };
 
-  idna = callPackage ../development/python-modules/idna { };
+  hiyapyco = callPackage ../development/python-modules/hiyapyco { };
 
-  mahotas = callPackage ../development/python-modules/mahotas { };
+  hkdf = callPackage ../development/python-modules/hkdf { };
 
-  MDP = callPackage ../development/python-modules/mdp {};
+  hmmlearn = callPackage ../development/python-modules/hmmlearn { };
 
-  minidb = callPackage ../development/python-modules/minidb { };
+  hocr-tools = callPackage ../development/python-modules/hocr-tools { };
 
-  miniupnpc = callPackage ../development/python-modules/miniupnpc {};
+  holidays = callPackage ../development/python-modules/holidays { };
 
-  mixpanel = callPackage ../development/python-modules/mixpanel { };
+  holoviews = callPackage ../development/python-modules/holoviews { };
 
-  mpyq = callPackage ../development/python-modules/mpyq { };
+  homeassistant-pyozw = callPackage ../development/python-modules/homeassistant-pyozw { };
 
-  mxnet = callPackage ../development/python-modules/mxnet { };
+  hoomd-blue = toPythonModule (callPackage ../development/python-modules/hoomd-blue { inherit python; });
 
-  nplusone = callPackage ../development/python-modules/nplusone { };
+  hopcroftkarp = callPackage ../development/python-modules/hopcroftkarp { };
 
-  parsy = callPackage ../development/python-modules/parsy { };
+  howdoi = callPackage ../development/python-modules/howdoi { };
 
-  portalocker = callPackage ../development/python-modules/portalocker { };
+  hpack = callPackage ../development/python-modules/hpack { };
 
-  portpicker = callPackage ../development/python-modules/portpicker { };
+  hsaudiotag3k = callPackage ../development/python-modules/hsaudiotag3k { };
 
-  pkginfo = callPackage ../development/python-modules/pkginfo { };
+  hsaudiotag = callPackage ../development/python-modules/hsaudiotag { };
 
-  pre-commit = callPackage ../development/python-modules/pre-commit { };
+  hstspreload = callPackage ../development/python-modules/hstspreload { };
 
-  pretend = callPackage ../development/python-modules/pretend { };
+  html2text = if isPy3k then
+    callPackage ../development/python-modules/html2text { }
+  else
+    callPackage ../development/python-modules/html2text/2018.nix { };
 
-  detox = throw "detox is no longer maintained, and was broken since may 2019"; # added 2020-07-04
+  html5lib = callPackage ../development/python-modules/html5lib { };
 
-  pbkdf2 = callPackage ../development/python-modules/pbkdf2 { };
+  html5-parser = callPackage ../development/python-modules/html5-parser { inherit (pkgs) pkgconfig; };
 
-  bcrypt = callPackage ../development/python-modules/bcrypt { };
+  htmllaundry = callPackage ../development/python-modules/htmllaundry { };
 
-  cffi = callPackage ../development/python-modules/cffi { };
+  htmlmin = callPackage ../development/python-modules/htmlmin { };
 
-  pyavm = callPackage ../development/python-modules/pyavm { };
+  html-sanitizer = callPackage ../development/python-modules/html-sanitizer { };
 
-  pycollada = callPackage ../development/python-modules/pycollada { };
+  htmltreediff = callPackage ../development/python-modules/htmltreediff { };
 
-  pycontracts = callPackage ../development/python-modules/pycontracts { };
+  HTSeq = callPackage ../development/python-modules/HTSeq { };
 
-  pycparser = callPackage ../development/python-modules/pycparser { };
+  httmock = callPackage ../development/python-modules/httmock { };
 
-  pydub = callPackage ../development/python-modules/pydub {};
+  httpauth = callPackage ../development/python-modules/httpauth { };
 
-  pyjade = callPackage ../development/python-modules/pyjade {};
+  httpbin = callPackage ../development/python-modules/httpbin { };
 
-  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 { };
+  img2pdf = callPackage ../development/python-modules/img2pdf { };
 
-  pytest-timeout = callPackage ../development/python-modules/pytest-timeout { };
+  imgaug = callPackage ../development/python-modules/imgaug { };
 
-  pytest-warnings = callPackage ../development/python-modules/pytest-warnings { };
+  immutables = callPackage ../development/python-modules/immutables { };
 
-  pytest-watch = callPackage ../development/python-modules/pytest-watch { };
+  impacket = callPackage ../development/python-modules/impacket { };
 
-  pytestpep8 = callPackage ../development/python-modules/pytest-pep8 { };
+  importlib-metadata = callPackage ../development/python-modules/importlib-metadata { };
 
-  pytest-pep257 = callPackage ../development/python-modules/pytest-pep257 { };
+  importlib-resources = callPackage ../development/python-modules/importlib-resources { };
 
-  pytest-pythonpath = callPackage ../development/python-modules/pytest-pythonpath { };
+  importmagic = callPackage ../development/python-modules/importmagic { };
 
-  pytest-raisesregexp = callPackage ../development/python-modules/pytest-raisesregexp { };
+  imread =
+    callPackage ../development/python-modules/imread { inherit (pkgs) pkgconfig libjpeg libpng libtiff libwebp; };
 
-  pytest-random-order = callPackage ../development/python-modules/pytest-random-order { };
-
-  pytest-repeat = callPackage ../development/python-modules/pytest-repeat { };
+  imutils = callPackage ../development/python-modules/imutils { };
 
-  pytestrunner = callPackage ../development/python-modules/pytestrunner { };
+  incremental = callPackage ../development/python-modules/incremental { };
 
-  pytestquickcheck = callPackage ../development/python-modules/pytest-quickcheck { };
+  inflect = callPackage ../development/python-modules/inflect { };
 
-  pytest-server-fixtures = callPackage ../development/python-modules/pytest-server-fixtures { };
+  inflection = callPackage ../development/python-modules/inflection { };
 
-  pytest-services = callPackage ../development/python-modules/pytest-services { };
+  influxdb = callPackage ../development/python-modules/influxdb { };
 
-  pytest-shutil = callPackage ../development/python-modules/pytest-shutil { };
+  influxdb-client = callPackage ../development/python-modules/influxdb-client { };
 
-  pytest-socket = callPackage ../development/python-modules/pytest-socket { };
+  influxgraph = callPackage ../development/python-modules/influxgraph { };
 
-  pytestcov = callPackage ../development/python-modules/pytest-cov { };
+  infoqscraper = callPackage ../development/python-modules/infoqscraper { };
 
-  pytest-expect = callPackage ../development/python-modules/pytest-expect { };
+  iniconfig = callPackage ../development/python-modules/iniconfig { };
 
-  pytest-virtualenv = callPackage ../development/python-modules/pytest-virtualenv { };
+  inifile = callPackage ../development/python-modules/inifile { };
 
-  pytest_xdist = self.pytest_xdist_1;
+  iniparse = callPackage ../development/python-modules/iniparse { };
 
-  pytest_xdist_1 = callPackage ../development/python-modules/pytest-xdist { };
+  inotify-simple = callPackage ../development/python-modules/inotify-simple { };
 
-  pytest_xdist_2 = callPackage ../development/python-modules/pytest-xdist/2.nix { };
+  inquirer = callPackage ../development/python-modules/inquirer { };
 
-  pytest-localserver = callPackage ../development/python-modules/pytest-localserver { };
+  intake = callPackage ../development/python-modules/intake { };
 
-  pytest-subtesthack = callPackage ../development/python-modules/pytest-subtesthack { };
+  intelhex = callPackage ../development/python-modules/intelhex { };
 
-  pytest-sugar = callPackage ../development/python-modules/pytest-sugar { };
+  internetarchive = callPackage ../development/python-modules/internetarchive { };
 
-  tinycss = callPackage ../development/python-modules/tinycss { };
+  interruptingcow = callPackage ../development/python-modules/interruptingcow { };
 
-  tinycss2 = callPackage ../development/python-modules/tinycss2 { };
+  intervaltree = callPackage ../development/python-modules/intervaltree { };
 
-  cssselect = callPackage ../development/python-modules/cssselect { };
+  intreehooks = callPackage ../development/python-modules/intreehooks { };
 
-  cssselect2 = callPackage ../development/python-modules/cssselect2 { };
+  invoke = callPackage ../development/python-modules/invoke { };
 
-  cssutils = callPackage ../development/python-modules/cssutils { };
+  iocapture = callPackage ../development/python-modules/iocapture { };
 
-  css-parser = callPackage ../development/python-modules/css-parser { };
+  iowait = callPackage ../development/python-modules/iowait { };
 
-  darcsver = callPackage ../development/python-modules/darcsver { };
+  ipaddr = callPackage ../development/python-modules/ipaddr { };
 
-  dask = callPackage ../development/python-modules/dask { };
+  ipaddress = callPackage ../development/python-modules/ipaddress { };
 
-  dask-gateway = callPackage ../development/python-modules/dask-gateway { };
+  ipdb = callPackage ../development/python-modules/ipdb { };
 
-  dask-gateway-server = callPackage ../development/python-modules/dask-gateway-server {
-    inherit (pkgs) go;
-  };
+  ipdbplugin = callPackage ../development/python-modules/ipdbplugin { };
 
-  dask-glm = callPackage ../development/python-modules/dask-glm { };
+  ipfsapi = callPackage ../development/python-modules/ipfsapi { };
 
-  dask-image = callPackage ../development/python-modules/dask-image { };
+  iptools = callPackage ../development/python-modules/iptools { };
 
-  dask-jobqueue = callPackage ../development/python-modules/dask-jobqueue { };
+  ipy = callPackage ../development/python-modules/IPy { };
 
-  dask-ml = callPackage ../development/python-modules/dask-ml { };
+  ipydatawidgets = callPackage ../development/python-modules/ipydatawidgets { };
 
-  dask-mpi = callPackage ../development/python-modules/dask-mpi { };
+  ipykernel = if pythonOlder "3.4" then
+    callPackage ../development/python-modules/ipykernel/4.nix { }
+  else
+    callPackage ../development/python-modules/ipykernel { };
 
-  dask-xgboost = callPackage ../development/python-modules/dask-xgboost { };
+  ipympl = callPackage ../development/python-modules/ipympl { };
 
-  datrie = callPackage ../development/python-modules/datrie { };
+  ipyparallel = callPackage ../development/python-modules/ipyparallel { };
 
-  heapdict = callPackage ../development/python-modules/heapdict { };
+  ipython_genutils = callPackage ../development/python-modules/ipython_genutils { };
 
-  zict = callPackage ../development/python-modules/zict { };
+  ipython = if isPy27 then
+    callPackage ../development/python-modules/ipython/5.nix { }
+  else
+    callPackage ../development/python-modules/ipython { };
 
-  zigpy = callPackage ../development/python-modules/zigpy { };
+  ipyvue = callPackage ../development/python-modules/ipyvue { };
 
-  zigpy-cc = callPackage ../development/python-modules/zigpy-cc { };
+  ipyvuetify = callPackage ../development/python-modules/ipyvuetify { };
 
-  zigpy-deconz = callPackage ../development/python-modules/zigpy-deconz { };
+  ipywidgets = callPackage ../development/python-modules/ipywidgets { };
 
-  zigpy-xbee = callPackage ../development/python-modules/zigpy-xbee { };
+  irc = callPackage ../development/python-modules/irc { };
 
-  zigpy-zigate = callPackage ../development/python-modules/zigpy-zigate { };
+  isbnlib = callPackage ../development/python-modules/isbnlib { };
 
-  digital-ocean = callPackage ../development/python-modules/digitalocean { };
+  islpy = callPackage ../development/python-modules/islpy { };
 
-  digi-xbee = callPackage ../development/python-modules/digi-xbee { };
+  iso3166 = callPackage ../development/python-modules/iso3166 { };
 
-  leather = callPackage ../development/python-modules/leather { };
+  iso-639 = callPackage ../development/python-modules/iso-639 { };
 
-  libais = callPackage ../development/python-modules/libais { };
+  iso8601 = callPackage ../development/python-modules/iso8601 { };
 
-  libevdev = callPackage ../development/python-modules/libevdev { };
+  isodate = callPackage ../development/python-modules/isodate { };
 
-  libfdt = toPythonModule (pkgs.dtc.override {
-    inherit python;
-    pythonSupport = true;
-  });
+  isort = callPackage ../development/python-modules/isort { };
 
-  libtmux = callPackage ../development/python-modules/libtmux { };
+  isoweek = callPackage ../development/python-modules/isoweek { };
 
-  libusb1 = callPackage ../development/python-modules/libusb1 { inherit (pkgs) libusb1; };
+  itanium_demangler = callPackage ../development/python-modules/itanium_demangler { };
 
-  linuxfd = callPackage ../development/python-modules/linuxfd { };
+  itemadapter = callPackage ../development/python-modules/itemadapter { };
 
-  locket = callPackage ../development/python-modules/locket { };
+  itemloaders = callPackage ../development/python-modules/itemloaders { };
 
-  loo-py = callPackage ../development/python-modules/loo-py { };
+  iterm2 = callPackage ../development/python-modules/iterm2 { };
 
-  tblib = callPackage ../development/python-modules/tblib { };
+  itsdangerous = callPackage ../development/python-modules/itsdangerous { };
 
-  s3fs = callPackage ../development/python-modules/s3fs { };
+  itypes = callPackage ../development/python-modules/itypes { };
 
-  datashape = callPackage ../development/python-modules/datashape { };
+  j2cli = callPackage ../development/python-modules/j2cli { };
 
-  requests-cache = callPackage ../development/python-modules/requests-cache { };
+  jabberbot = callPackage ../development/python-modules/jabberbot { };
 
-  requests-file = callPackage ../development/python-modules/requests-file { };
+  janus = callPackage ../development/python-modules/janus { };
 
-  requests-kerberos = callPackage ../development/python-modules/requests-kerberos { };
+  jaraco_classes = callPackage ../development/python-modules/jaraco_classes { };
 
-  requests-unixsocket = callPackage ../development/python-modules/requests-unixsocket {};
+  jaraco_collections = callPackage ../development/python-modules/jaraco_collections { };
 
-  requests-aws4auth = callPackage ../development/python-modules/requests-aws4auth { };
+  jaraco_functools = if pythonOlder "3.6" then
+    callPackage ../development/python-modules/jaraco_functools/2.nix { }
+  else
+    callPackage ../development/python-modules/jaraco_functools { };
 
-  howdoi = callPackage ../development/python-modules/howdoi {};
+  jaraco_itertools = callPackage ../development/python-modules/jaraco_itertools { };
 
-  jdatetime = callPackage ../development/python-modules/jdatetime {};
+  jaraco_logging = callPackage ../development/python-modules/jaraco_logging { };
 
-  daphne = callPackage ../development/python-modules/daphne { };
+  jaraco_stream = if pythonOlder "3.6" then
+    callPackage ../development/python-modules/jaraco_stream/2.nix { }
+  else
+    callPackage ../development/python-modules/jaraco_stream { };
 
-  dash = callPackage ../development/python-modules/dash { };
+  jaraco_text = callPackage ../development/python-modules/jaraco_text { };
 
-  dash-core-components = callPackage ../development/python-modules/dash-core-components { };
+  javaobj-py3 = callPackage ../development/python-modules/javaobj-py3 { };
 
-  dash-html-components = callPackage ../development/python-modules/dash-html-components { };
+  javaproperties = callPackage ../development/python-modules/javaproperties { };
 
-  dash-renderer = callPackage ../development/python-modules/dash-renderer { };
+  JayDeBeApi = callPackage ../development/python-modules/JayDeBeApi { };
 
-  dash-table = callPackage ../development/python-modules/dash-table { };
+  jc = callPackage ../development/python-modules/jc { };
 
-  dateparser = callPackage ../development/python-modules/dateparser { };
+  jdatetime = callPackage ../development/python-modules/jdatetime { };
 
-  # Actual name of package
-  python-dateutil = callPackage ../development/python-modules/dateutil { };
-  # Alias that we should deprecate
-  dateutil = self.python-dateutil;
+  jdcal = callPackage ../development/python-modules/jdcal { };
 
-  debugpy = callPackage ../development/python-modules/debugpy { };
+  jedi = callPackage ../development/python-modules/jedi { };
 
-  decorator = callPackage ../development/python-modules/decorator { };
+  jeepney = callPackage ../development/python-modules/jeepney { };
 
-  deform = callPackage ../development/python-modules/deform { };
+  jellyfin-apiclient-python = callPackage ../development/python-modules/jellyfin-apiclient-python { };
 
-  demjson = callPackage ../development/python-modules/demjson { };
+  jellyfish = callPackage ../development/python-modules/jellyfish { };
 
-  deprecated = callPackage ../development/python-modules/deprecated { };
+  jenkinsapi = callPackage ../development/python-modules/jenkinsapi { };
 
-  deprecation = callPackage ../development/python-modules/deprecation { };
+  jenkins-job-builder = callPackage ../development/python-modules/jenkins-job-builder { };
 
-  derpconf = callPackage ../development/python-modules/derpconf { };
+  jieba = callPackage ../development/python-modules/jieba { };
 
-  deskcon = callPackage ../development/python-modules/deskcon { };
+  jinja2 = callPackage ../development/python-modules/jinja2 { };
 
-  dill = callPackage ../development/python-modules/dill { };
+  jinja2_pluralize = callPackage ../development/python-modules/jinja2_pluralize { };
 
-  discogs_client = callPackage ../development/python-modules/discogs_client { };
+  jinja2_time = callPackage ../development/python-modules/jinja2_time { };
 
-  dlx = callPackage ../development/python-modules/dlx { };
+  jira = callPackage ../development/python-modules/jira { };
 
-  dmenu-python = callPackage ../development/python-modules/dmenu { };
+  jmespath = callPackage ../development/python-modules/jmespath { };
 
-  dnslib = callPackage ../development/python-modules/dnslib { };
+  joblib = callPackage ../development/python-modules/joblib { };
 
-  dnspython = callPackage ../development/python-modules/dnspython { };
-  dns = self.dnspython; # Alias for compatibility, 2017-12-10
+  josepy = callPackage ../development/python-modules/josepy { };
 
-  docker = callPackage ../development/python-modules/docker {};
+  journalwatch = callPackage ../tools/system/journalwatch { inherit (self) systemd pytest; };
 
-  dockerfile-parse = callPackage ../development/python-modules/dockerfile-parse {};
+  jpylyzer = callPackage ../development/python-modules/jpylyzer { };
 
-  docker-py = disabledIf isPy27 (callPackage ../development/python-modules/docker-py {});
+  JPype1 = callPackage ../development/python-modules/JPype1 { };
 
-  dockerpty = callPackage ../development/python-modules/dockerpty {};
+  jq = callPackage ../development/python-modules/jq { inherit (pkgs) jq; };
 
-  dockerspawner = callPackage ../development/python-modules/dockerspawner {};
+  jsbeautifier = callPackage ../development/python-modules/jsbeautifier { };
 
-  docker_pycreds = callPackage ../development/python-modules/docker-pycreds {};
+  jsmin = callPackage ../development/python-modules/jsmin { };
 
-  docloud = callPackage ../development/python-modules/docloud { };
+  jsondate = callPackage ../development/python-modules/jsondate { };
 
-  docplex = callPackage ../development/python-modules/docplex { };
+  jsondiff = callPackage ../development/python-modules/jsondiff { };
 
-  docopt = callPackage ../development/python-modules/docopt { };
+  jsonlines = callPackage ../development/python-modules/jsonlines { };
 
-  doctest-ignore-unicode = callPackage ../development/python-modules/doctest-ignore-unicode { };
+  jsonmerge = callPackage ../development/python-modules/jsonmerge { };
 
-  dogpile_cache = callPackage ../development/python-modules/dogpile.cache { };
+  json-merge-patch = callPackage ../development/python-modules/json-merge-patch { };
 
-  dogpile_core = callPackage ../development/python-modules/dogpile.core { };
+  jsonnet = buildPythonPackage { inherit (pkgs.jsonnet) name src; };
 
-  dopy = callPackage ../development/python-modules/dopy { };
+  jsonpatch = callPackage ../development/python-modules/jsonpatch { };
 
-  dpath = callPackage ../development/python-modules/dpath { };
+  jsonpath = callPackage ../development/python-modules/jsonpath { };
 
-  dparse = callPackage ../development/python-modules/dparse { };
+  jsonpath_rw = callPackage ../development/python-modules/jsonpath_rw { };
 
-  dpkt = callPackage ../development/python-modules/dpkt {};
+  jsonpickle = callPackage ../development/python-modules/jsonpickle { };
 
-  urllib3 = callPackage ../development/python-modules/urllib3 {};
+  jsonpointer = callPackage ../development/python-modules/jsonpointer { };
 
-  varint =  callPackage ../development/python-modules/varint {};
+  jsonref = callPackage ../development/python-modules/jsonref { };
 
-  drf-yasg = callPackage ../development/python-modules/drf-yasg { };
+  jsonrpc-async = callPackage ../development/python-modules/jsonrpc-async { };
 
-  dropbox = callPackage ../development/python-modules/dropbox {};
+  jsonrpc-base = callPackage ../development/python-modules/jsonrpc-base { };
 
-  drms = callPackage ../development/python-modules/drms { };
+  jsonrpclib = callPackage ../development/python-modules/jsonrpclib { };
 
-  ds4drv = callPackage ../development/python-modules/ds4drv {
-    inherit (pkgs) fetchFromGitHub bluez;
-  };
+  jsonrpclib-pelix = callPackage ../development/python-modules/jsonrpclib-pelix { };
 
-  dyn = callPackage ../development/python-modules/dyn { };
+  jsonrpc-websocket = callPackage ../development/python-modules/jsonrpc-websocket { };
 
-  easydict = callPackage ../development/python-modules/easydict { };
+  jsonschema = callPackage ../development/python-modules/jsonschema { };
 
-  easygui = callPackage ../development/python-modules/easygui { };
+  jsonwatch = callPackage ../development/python-modules/jsonwatch { };
 
-  EasyProcess = callPackage ../development/python-modules/easyprocess { };
+  jug = callPackage ../development/python-modules/jug { };
 
-  easy-thumbnails = callPackage ../development/python-modules/easy-thumbnails { };
+  junitparser = callPackage ../development/python-modules/junitparser { };
 
-  eccodes = toPythonModule (pkgs.eccodes.override {
-    enablePython = true;
-    pythonPackages = self;
-  });
+  junit-xml = callPackage ../development/python-modules/junit-xml { };
 
-  edward = callPackage ../development/python-modules/edward { };
+  junos-eznc = callPackage ../development/python-modules/junos-eznc { };
 
-  elasticsearch = callPackage ../development/python-modules/elasticsearch { };
+  jupyter = callPackage ../development/python-modules/jupyter { };
 
-  elasticsearch-dsl = callPackage ../development/python-modules/elasticsearch-dsl { };
-  # alias
-  elasticsearchdsl = self.elasticsearch-dsl;
+  jupyter-c-kernel = callPackage ../development/python-modules/jupyter-c-kernel { };
 
-  elementpath = callPackage ../development/python-modules/elementpath { };
+  jupyter_client = if isPy3k then
+    callPackage ../development/python-modules/jupyter_client { }
+  else
+    callPackage ../development/python-modules/jupyter_client/5.nix { };
 
-  entrypoints = callPackage ../development/python-modules/entrypoints { };
+  jupyter_console = if pythonOlder "3.5" then
+    callPackage ../development/python-modules/jupyter_console/5.nix { }
+  else
+    callPackage ../development/python-modules/jupyter_console { };
 
-  envisage = callPackage ../development/python-modules/envisage { };
+  jupyter_core = callPackage ../development/python-modules/jupyter_core { };
 
-  enzyme = callPackage ../development/python-modules/enzyme {};
+  jupyterhub = callPackage ../development/python-modules/jupyterhub { };
 
-  escapism = callPackage ../development/python-modules/escapism { };
+  jupyterhub-ldapauthenticator = callPackage ../development/python-modules/jupyterhub-ldapauthenticator { };
 
-  etcd = callPackage ../development/python-modules/etcd { };
+  jupyterhub-systemdspawner =
+    callPackage ../development/python-modules/jupyterhub-systemdspawner { inherit (pkgs) bash; };
 
-  evdev = callPackage ../development/python-modules/evdev {};
+  jupyterhub-tmpauthenticator = callPackage ../development/python-modules/jupyterhub-tmpauthenticator { };
 
-  eve = callPackage ../development/python-modules/eve {};
+  jupyterlab = callPackage ../development/python-modules/jupyterlab { };
 
-  eventlib = callPackage ../development/python-modules/eventlib { };
+  jupyterlab-git = callPackage ../development/python-modules/jupyterlab-git { };
 
-  events = callPackage ../development/python-modules/events { };
+  jupyterlab_launcher = callPackage ../development/python-modules/jupyterlab_launcher { };
 
-  eyeD3 = callPackage ../development/python-modules/eyed3 { };
+  jupyterlab_server = callPackage ../development/python-modules/jupyterlab_server { };
 
-  execnet = callPackage ../development/python-modules/execnet { };
+  jupyter-repo2docker = callPackage ../development/python-modules/jupyter-repo2docker { pkgs-docker = pkgs.docker; };
 
-  executor = callPackage ../development/python-modules/executor { };
+  jupyter-sphinx = callPackage ../development/python-modules/jupyter-sphinx { };
 
-  ezdxf = callPackage ../development/python-modules/ezdxf {};
+  jupyter-telemetry = callPackage ../development/python-modules/jupyter-telemetry { };
 
-  facebook-sdk = callPackage ../development/python-modules/facebook-sdk { };
+  jupytext = callPackage ../development/python-modules/jupytext { };
 
-  face_recognition = callPackage ../development/python-modules/face_recognition { };
+  jwcrypto = callPackage ../development/python-modules/jwcrypto { };
 
-  face_recognition_models = callPackage ../development/python-modules/face_recognition_models { };
+  k5test = callPackage ../development/python-modules/k5test { inherit (pkgs) krb5Full findutils which; };
 
-  faker = callPackage ../development/python-modules/faker { };
+  kaa-base = callPackage ../development/python-modules/kaa-base { };
 
-  fake_factory = callPackage ../development/python-modules/fake_factory { };
+  kaa-metadata = callPackage ../development/python-modules/kaa-metadata { };
 
-  fake-useragent = callPackage ../development/python-modules/fake-useragent { };
+  kafka-python = callPackage ../development/python-modules/kafka-python { };
 
-  factory_boy = callPackage ../development/python-modules/factory_boy { };
+  kaggle = callPackage ../development/python-modules/kaggle { };
 
-  Fabric = callPackage ../development/python-modules/Fabric { };
+  kaitaistruct = callPackage ../development/python-modules/kaitaistruct { };
 
-  fastdtw = callPackage ../development/python-modules/fastdtw { };
+  Kajiki = callPackage ../development/python-modules/kajiki { };
 
-  fastjsonschema = callPackage ../development/python-modules/fastjsonschema { };
+  kaptan = callPackage ../development/python-modules/kaptan { };
 
-  faulthandler = if ! isPy3k
-    then callPackage ../development/python-modules/faulthandler {}
-    else throw "faulthandler is built into ${python.executable}";
+  kazoo = callPackage ../development/python-modules/kazoo { };
 
-  fb-re2 = callPackage ../development/python-modules/fb-re2 { };
+  kconfiglib = callPackage ../development/python-modules/kconfiglib { };
 
-  ffmpeg-python = callPackage ../development/python-modules/ffmpeg-python { };
+  keep = callPackage ../development/python-modules/keep { };
 
-  fenics = callPackage ../development/libraries/science/math/fenics {
-    inherit (pkgs) pkg-config;
-    mpi = pkgs.openmpi;
-    pytest = self.pytest_4;
-  };
+  keepalive = callPackage ../development/python-modules/keepalive { };
 
-  filetype = callPackage ../development/python-modules/filetype { };
+  keepkey_agent = callPackage ../development/python-modules/keepkey_agent { };
 
-  flammkuchen = callPackage ../development/python-modules/flammkuchen { };
+  keepkey = callPackage ../development/python-modules/keepkey { };
 
-  flexmock = callPackage ../development/python-modules/flexmock { };
+  keras-applications = callPackage ../development/python-modules/keras-applications { };
 
-  flit = callPackage ../development/python-modules/flit { };
+  Keras = callPackage ../development/python-modules/keras { };
 
-  flit-core = callPackage ../development/python-modules/flit-core { };
+  keras-preprocessing = callPackage ../development/python-modules/keras-preprocessing { };
 
-  flowlogs_reader = callPackage ../development/python-modules/flowlogs_reader { };
+  kerberos = callPackage ../development/python-modules/kerberos { inherit (pkgs) kerberos; };
 
-  fluent-logger = callPackage ../development/python-modules/fluent-logger {};
+  keyring = if isPy3k then
+    callPackage ../development/python-modules/keyring { }
+  else
+    callPackage ../development/python-modules/keyring/2.nix { };
 
-  flux-led = callPackage ../development/python-modules/flux-led { };
+  keyrings-alt = callPackage ../development/python-modules/keyrings-alt { };
 
-  python-forecastio = callPackage ../development/python-modules/python-forecastio { };
+  keyutils = callPackage ../development/python-modules/keyutils { inherit (pkgs) keyutils; };
 
-  fpdf = callPackage ../development/python-modules/fpdf { };
+  kicad = disabledIf isPy27 (toPythonModule (pkgs.kicad.override { python3 = python; }).src);
 
-  fpylll = callPackage ../development/python-modules/fpylll { };
+  kinparse = callPackage ../development/python-modules/kinparse { };
 
-  fritzconnection = callPackage ../development/python-modules/fritzconnection { };
+  kitchen = callPackage ../development/python-modules/kitchen { };
 
-  frozendict = callPackage ../development/python-modules/frozendict { };
+  kiwisolver = if isPy3k then
+    callPackage ../development/python-modules/kiwisolver { }
+  else
+    callPackage ../development/python-modules/kiwisolver/1_1.nix { };
 
-  ftputil = callPackage ../development/python-modules/ftputil { };
+  klaus = callPackage ../development/python-modules/klaus { };
 
-  fudge = callPackage ../development/python-modules/fudge { };
+  klein = callPackage ../development/python-modules/klein { };
 
-  funcparserlib = callPackage ../development/python-modules/funcparserlib { };
+  kmapper = callPackage ../development/python-modules/kmapper { };
 
-  fastcache = callPackage ../development/python-modules/fastcache { };
+  kmsxx = toPythonModule ((callPackage ../development/libraries/kmsxx {
+    inherit (pkgs.kmsxx) stdenv;
+    inherit (pkgs) pkgconfig;
+    withPython = true;
+  }).overrideAttrs (oldAttrs: { name = "${python.libPrefix}-${pkgs.kmsxx.name}"; }));
 
-  fastentrypoints = callPackage ../development/python-modules/fastentrypoints { };
+  knack = callPackage ../development/python-modules/knack { };
 
-  functools32 = callPackage ../development/python-modules/functools32 { };
+  koji = callPackage ../development/python-modules/koji { };
 
-  future-fstrings = callPackage ../development/python-modules/future-fstrings { };
+  kombu = callPackage ../development/python-modules/kombu { };
 
-  fx2 = callPackage ../development/python-modules/fx2 { };
+  konfig = callPackage ../development/python-modules/konfig { };
 
-  # 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;
-  }));
+  kubernetes = callPackage ../development/python-modules/kubernetes { };
 
-  gateone = callPackage ../development/python-modules/gateone { };
+  labelbox = callPackage ../development/python-modules/labelbox { };
 
-  GeoIP = callPackage ../development/python-modules/GeoIP { };
+  lammps-cython = callPackage ../development/python-modules/lammps-cython { mpi = pkgs.openmpi; };
 
-  glasgow = callPackage ../development/python-modules/glasgow { };
+  langcodes = callPackage ../development/python-modules/langcodes { };
 
-  gmpy = callPackage ../development/python-modules/gmpy { };
+  langdetect = callPackage ../development/python-modules/langdetect { };
 
-  gmpy2 = callPackage ../development/python-modules/gmpy2 { };
+  larch = callPackage ../development/python-modules/larch { };
 
-  gmusicapi = callPackage ../development/python-modules/gmusicapi { };
+  lark-parser = callPackage ../development/python-modules/lark-parser { };
 
-  gnureadline = callPackage ../development/python-modules/gnureadline { };
+  Lasagne = callPackage ../development/python-modules/lasagne { };
 
-  gnutls = callPackage ../development/python-modules/gnutls { };
+  latexcodec = callPackage ../development/python-modules/latexcodec { };
 
-  gpy = callPackage ../development/python-modules/gpy { };
+  launchpadlib = callPackage ../development/python-modules/launchpadlib { };
 
-  gpyopt = callPackage ../development/python-modules/gpyopt { };
+  lazr_config = callPackage ../development/python-modules/lazr/config.nix { };
 
-  gitdb = callPackage ../development/python-modules/gitdb { };
+  lazr_delegates = callPackage ../development/python-modules/lazr/delegates.nix { };
 
-  gitdb2 = throw "gitdb2 has been deprecated, use gitdb instead."; # added 2020-03-14
+  lazr-restfulclient = callPackage ../development/python-modules/lazr-restfulclient { };
 
-  GitPython = callPackage ../development/python-modules/GitPython { };
+  lazr-uri = callPackage ../development/python-modules/lazr-uri { };
 
-  git-annex-adapter = callPackage ../development/python-modules/git-annex-adapter {
-    inherit (pkgs.gitAndTools) git-annex;
-  };
+  lazy = callPackage ../development/python-modules/lazy { };
 
-  python-gitlab = callPackage ../development/python-modules/python-gitlab { };
+  lazy_import = callPackage ../development/python-modules/lazy_import { };
 
-  google-compute-engine = callPackage ../tools/virtualization/google-compute-engine { };
+  lazy-object-proxy = callPackage ../development/python-modules/lazy-object-proxy { };
 
-  google-music = callPackage ../development/python-modules/google-music { };
+  ldap3 = callPackage ../development/python-modules/ldap3 { };
 
-  google-music-proto = callPackage ../development/python-modules/google-music-proto { };
+  ldap = callPackage ../development/python-modules/ldap { inherit (pkgs) openldap cyrus_sasl; };
 
-  google-music-utils = callPackage ../development/python-modules/google-music-utils { };
+  ldappool = callPackage ../development/python-modules/ldappool { };
 
-  google-pasta = callPackage ../development/python-modules/google-pasta { };
+  ldaptor = callPackage ../development/python-modules/ldaptor { };
 
-  googletrans = callPackage ../development/python-modules/googletrans { };
+  leather = callPackage ../development/python-modules/leather { };
 
-  gdown = callPackage ../development/python-modules/gdown { };
+  le = callPackage ../development/python-modules/le { };
 
-  gpapi = callPackage ../development/python-modules/gpapi { };
-  gplaycli = callPackage ../development/python-modules/gplaycli { };
+  ledger_agent = callPackage ../development/python-modules/ledger_agent { };
 
-  gpsoauth = callPackage ../development/python-modules/gpsoauth { };
+  ledgerblue = callPackage ../development/python-modules/ledgerblue { };
 
-  gpxpy = callPackage ../development/python-modules/gpxpy { };
+  lektor = callPackage ../development/python-modules/lektor { };
 
-  grip = callPackage ../development/python-modules/grip { };
+  leveldb = callPackage ../development/python-modules/leveldb { };
 
-  gst-python = callPackage ../development/python-modules/gst-python {
-    inherit (pkgs) meson pkgconfig;
-    gst-plugins-base = pkgs.gst_all_1.gst-plugins-base;
-  };
+  libagent = callPackage ../development/python-modules/libagent { };
 
-  gtimelog = callPackage ../development/python-modules/gtimelog { };
+  libais = callPackage ../development/python-modules/libais { };
 
-  gtts = callPackage ../development/python-modules/gtts { };
+  libarchive-c = callPackage ../development/python-modules/libarchive-c { inherit (pkgs) libarchive; };
 
-  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 = self.python-libarchive; # The latter is the name upstream uses
 
-  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 { };
+  maildir-deduplicate = callPackage ../development/python-modules/maildir-deduplicate { };
 
-  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 { };
+  matrix-client = callPackage ../development/python-modules/matrix-client { };
 
-  paperspace = callPackage ../development/python-modules/paperspace { };
+  matrix-nio = callPackage ../development/python-modules/matrix-nio { };
 
-  paperwork-backend = callPackage ../applications/office/paperwork/backend.nix { };
+  mautrix = callPackage ../development/python-modules/mautrix { };
 
-  papis = callPackage ../development/python-modules/papis { };
+  mautrix-appservice = self.mautrix; # alias 2019-12-28
 
-  papis-python-rofi = callPackage ../development/python-modules/papis-python-rofi { };
+  maxminddb = callPackage ../development/python-modules/maxminddb { };
 
-  pathspec = callPackage ../development/python-modules/pathspec { };
+  maya = callPackage ../development/python-modules/maya { };
 
-  pathtools = callPackage ../development/python-modules/pathtools { };
+  mayavi = pkgs.libsForQt5.callPackage ../development/python-modules/mayavi {
+    inherit buildPythonPackage isPy27 fetchPypi;
+    inherit (self) pyface pygments numpy vtk traitsui envisage apptools pyqt5;
+  };
 
-  paver = callPackage ../development/python-modules/paver { };
+  mccabe = callPackage ../development/python-modules/mccabe { };
 
-  passlib = callPackage ../development/python-modules/passlib { };
+  MDP = callPackage ../development/python-modules/mdp { };
 
-  path-and-address = callPackage ../development/python-modules/path-and-address { };
+  measurement = callPackage ../development/python-modules/measurement { };
 
-  peppercorn = callPackage ../development/python-modules/peppercorn { };
+  mecab-python3 = callPackage ../development/python-modules/mecab-python3 { };
 
-  pex = callPackage ../development/python-modules/pex { };
+  MechanicalSoup = callPackage ../development/python-modules/MechanicalSoup { };
 
-  phe = callPackage ../development/python-modules/phe { };
+  mechanize = callPackage ../development/python-modules/mechanize { };
 
-  phpserialize = callPackage ../development/python-modules/phpserialize { };
+  meinheld = callPackage ../development/python-modules/meinheld { };
 
-  plaid-python = callPackage ../development/python-modules/plaid-python { };
+  meld3 = callPackage ../development/python-modules/meld3 { };
 
-  plaster = callPackage ../development/python-modules/plaster {};
+  meliae = callPackage ../development/python-modules/meliae { };
 
-  plaster-pastedeploy = callPackage ../development/python-modules/plaster-pastedeploy {};
+  memcached = callPackage ../development/python-modules/memcached { };
 
-  playsound = callPackage ../development/python-modules/playsound { };
+  memory_profiler = callPackage ../development/python-modules/memory_profiler { };
 
-  plexapi = callPackage ../development/python-modules/plexapi { };
+  mercurial = disabledIf (!isPy3k) (toPythonModule (pkgs.mercurial.override { python3Packages = self; }));
 
-  plexauth = callPackage ../development/python-modules/plexauth { };
+  merkletools = callPackage ../development/python-modules/merkletools { };
 
-  plexwebsocket = callPackage ../development/python-modules/plexwebsocket { };
+  mesa = callPackage ../development/python-modules/mesa { };
 
-  plotly = callPackage ../development/python-modules/plotly { };
+  meshlabxml = callPackage ../development/python-modules/meshlabxml { };
 
-  plyfile = callPackage ../development/python-modules/plyfile { };
+  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;
+    })));
 
-  podcastparser = callPackage ../development/python-modules/podcastparser { };
+  mesonpep517 = callPackage ../development/python-modules/mesonpep517 { };
 
-  podcats = callPackage ../development/python-modules/podcats { };
+  metaphone = callPackage ../development/python-modules/metaphone { };
 
-  pomegranate = callPackage ../development/python-modules/pomegranate { };
+  mezzanine = callPackage ../development/python-modules/mezzanine { };
 
-  poppler-qt5 = callPackage ../development/python-modules/poppler-qt5 {
-    inherit (pkgs.qt5) qtbase;
-    inherit (pkgs.libsForQt5) poppler;
-    inherit (pkgs) pkgconfig;
-  };
+  micawber = callPackage ../development/python-modules/micawber { };
 
-  poyo = callPackage ../development/python-modules/poyo { };
+  midiutil = callPackage ../development/python-modules/midiutil { };
 
-  priority = callPackage ../development/python-modules/priority { };
+  mido = callPackage ../development/python-modules/mido { };
 
-  privacyidea = callPackage ../development/python-modules/privacyidea { };
-  privacyidea-ldap-proxy = callPackage ../development/python-modules/privacyidea/ldap-proxy.nix { };
+  milksnake = callPackage ../development/python-modules/milksnake { };
 
-  prov = callPackage ../development/python-modules/prov { };
+  minidb = callPackage ../development/python-modules/minidb { };
 
-  pudb = callPackage ../development/python-modules/pudb { };
+  minimock = callPackage ../development/python-modules/minimock { };
 
-  pybtex = callPackage ../development/python-modules/pybtex {};
+  mininet-python = (toPythonModule (pkgs.mininet.override { inherit python; })).py;
 
-  pybtex-docutils = callPackage ../development/python-modules/pybtex-docutils {};
+  minio = callPackage ../development/python-modules/minio { };
 
-  pycallgraph = callPackage ../development/python-modules/pycallgraph { };
+  miniupnpc = callPackage ../development/python-modules/miniupnpc { };
 
-  pycassa = callPackage ../development/python-modules/pycassa { };
+  misaka = callPackage ../development/python-modules/misaka { };
 
-  lirc = disabledIf isPy27 (toPythonModule (pkgs.lirc.override {
-    python3 = python;
-  }));
+  mistune = callPackage ../development/python-modules/mistune { };
 
-  pyblake2 = callPackage ../development/python-modules/pyblake2 { };
+  mixpanel = callPackage ../development/python-modules/mixpanel { };
 
-  pybluez = callPackage ../development/python-modules/pybluez { };
+  mkl-service = callPackage ../development/python-modules/mkl-service { };
 
-  pycares = callPackage ../development/python-modules/pycares { };
+  mlflow = callPackage ../development/python-modules/mlflow { };
 
-  pycuda = callPackage ../development/python-modules/pycuda {
-    cudatoolkit = pkgs.cudatoolkit;
-    inherit (pkgs.stdenv) mkDerivation;
-  };
+  mlrose = callPackage ../development/python-modules/mlrose { };
 
-  pydotplus = callPackage ../development/python-modules/pydotplus { };
+  mmh3 = callPackage ../development/python-modules/mmh3 { };
 
-  pyfxa = callPackage ../development/python-modules/pyfxa { };
+  mmpython = callPackage ../development/python-modules/mmpython { };
 
-  pygls = callPackage ../development/python-modules/pygls {};
+  mnemonic = callPackage ../development/python-modules/mnemonic { };
 
-  pyhomematic = callPackage ../development/python-modules/pyhomematic { };
+  mnist = callPackage ../development/python-modules/mnist { };
 
-  pylama = callPackage ../development/python-modules/pylama { };
+  mocket = callPackage ../development/python-modules/mocket { };
 
-  pylatexenc = callPackage ../development/python-modules/pylatexenc { };
+  mock = if pythonOlder "3.6" then
+    callPackage ../development/python-modules/mock/2.nix { }
+  else
+    callPackage ../development/python-modules/mock { };
 
-  pymbolic = callPackage ../development/python-modules/pymbolic { };
+  mockito = callPackage ../development/python-modules/mockito { };
 
-  pymediainfo = callPackage ../development/python-modules/pymediainfo { };
+  mock-open = callPackage ../development/python-modules/mock-open { };
 
-  pyphen = callPackage ../development/python-modules/pyphen {};
+  modeled = callPackage ../development/python-modules/modeled { };
 
-  pypoppler = callPackage ../development/python-modules/pypoppler { };
+  moderngl = callPackage ../development/python-modules/moderngl { };
 
-  pypillowfight = callPackage ../development/python-modules/pypillowfight { };
+  moderngl-window = callPackage ../development/python-modules/moderngl_window { };
 
-  pyprind = callPackage ../development/python-modules/pyprind { };
+  modestmaps = callPackage ../development/python-modules/modestmaps { };
 
-  python-axolotl = callPackage ../development/python-modules/python-axolotl { };
+  moinmoin = callPackage ../development/python-modules/moinmoin
+    { }; # Needed here because moinmoin is loaded as a Python library.
 
-  python-axolotl-curve25519 = callPackage ../development/python-modules/python-axolotl-curve25519 { };
+  mongodict = callPackage ../development/python-modules/mongodict { };
 
-  python-pam = callPackage ../development/python-modules/python-pam { };
+  mongoengine = callPackage ../development/python-modules/mongoengine { };
 
-  pythonix = callPackage ../development/python-modules/pythonix {
-    inherit (pkgs) meson pkgconfig;
-  };
+  monkeyhex = callPackage ../development/python-modules/monkeyhex { };
 
-  python-lzf = callPackage ../development/python-modules/python-lzf { };
+  monosat = disabledIf (!isPy3k) (pkgs.monosat.python {
+    inherit buildPythonPackage;
+    inherit (self) cython;
+  });
 
-  pyramid = callPackage ../development/python-modules/pyramid { };
+  monotonic = callPackage ../development/python-modules/monotonic { };
 
-  pyramid_beaker = callPackage ../development/python-modules/pyramid_beaker { };
+  monty = callPackage ../development/python-modules/monty { };
 
-  pyramid_chameleon = callPackage ../development/python-modules/pyramid_chameleon { };
+  more-itertools = if isPy27 then
+    callPackage ../development/python-modules/more-itertools/2.7.nix { }
+  else
+    callPackage ../development/python-modules/more-itertools { };
 
-  pyramid_jinja2 = callPackage ../development/python-modules/pyramid_jinja2 { };
+  moretools = callPackage ../development/python-modules/moretools { };
 
-  pyramid_mako = callPackage ../development/python-modules/pyramid_mako { };
+  morphys = callPackage ../development/python-modules/morphys { };
 
-  peewee =  callPackage ../development/python-modules/peewee { };
+  mortgage = callPackage ../development/python-modules/mortgage { };
 
-  pyroma = callPackage ../development/python-modules/pyroma { };
+  moto = callPackage ../development/python-modules/moto { };
 
-  pyroute2 = callPackage ../development/python-modules/pyroute2 { };
+  moviepy = callPackage ../development/python-modules/moviepy { };
 
-  pyspf = callPackage ../development/python-modules/pyspf { };
+  mox3 = callPackage ../development/python-modules/mox3 { };
 
-  pysptk = callPackage ../development/python-modules/pysptk { };
+  mox = callPackage ../development/python-modules/mox { };
 
-  pysrim = callPackage ../development/python-modules/pysrim { };
+  mozcrash = callPackage ../development/python-modules/marionette-harness/mozcrash.nix { };
 
-  pysrt = callPackage ../development/python-modules/pysrt { };
+  mozdevice = callPackage ../development/python-modules/marionette-harness/mozdevice.nix { };
 
-  pytools = callPackage ../development/python-modules/pytools { };
+  mozfile = callPackage ../development/python-modules/marionette-harness/mozfile.nix { };
 
-  python-constraint = callPackage ../development/python-modules/python-constraint { };
+  mozhttpd = callPackage ../development/python-modules/marionette-harness/mozhttpd.nix { };
 
-  python-ctags3 = callPackage ../development/python-modules/python-ctags3 { };
+  mozinfo = callPackage ../development/python-modules/marionette-harness/mozinfo.nix { };
 
-  python-lzo = callPackage ../development/python-modules/python-lzo {
-    inherit (pkgs) lzo;
-  };
+  mozlog = callPackage ../development/python-modules/marionette-harness/mozlog.nix { };
 
-  pxml = callPackage ../development/python-modules/pxml { };
+  moznetwork = callPackage ../development/python-modules/marionette-harness/moznetwork.nix { };
 
-  junos-eznc = callPackage ../development/python-modules/junos-eznc {};
+  mozprocess = callPackage ../development/python-modules/marionette-harness/mozprocess.nix { };
 
-  raven = callPackage ../development/python-modules/raven { };
+  mozprofile = callPackage ../development/python-modules/marionette-harness/mozprofile.nix { };
 
-  rawkit = callPackage ../development/python-modules/rawkit { };
+  mozrunner = callPackage ../development/python-modules/marionette-harness/mozrunner.nix { };
 
-  joblib = callPackage ../development/python-modules/joblib { };
+  mozsvc = callPackage ../development/python-modules/mozsvc { };
 
-  sarge = callPackage ../development/python-modules/sarge { };
+  mozterm = callPackage ../development/python-modules/mozterm { };
 
-  subliminal = callPackage ../development/python-modules/subliminal {};
+  moztest = callPackage ../development/python-modules/marionette-harness/moztest.nix { };
 
-  sunpy = callPackage ../development/python-modules/sunpy { };
+  mozversion = callPackage ../development/python-modules/marionette-harness/mozversion.nix { };
 
-  hyperkitty = callPackage ../servers/mail/mailman/hyperkitty.nix { };
+  mpd2 = callPackage ../development/python-modules/mpd2 { };
 
-  robot-detection = callPackage ../development/python-modules/robot-detection {};
+  mpd = callPackage ../development/python-modules/mpd { };
 
-  cssmin = callPackage ../development/python-modules/cssmin {};
+  mpi4py = callPackage ../development/python-modules/mpi4py { mpi = pkgs.openmpi; };
 
-  django-paintstore = callPackage ../development/python-modules/django-paintstore {};
+  mplleaflet = callPackage ../development/python-modules/mplleaflet { };
 
-  django-q = callPackage ../development/python-modules/django-q {};
+  mpmath = callPackage ../development/python-modules/mpmath { };
 
-  hyperlink = callPackage ../development/python-modules/hyperlink {};
+  mpv = callPackage ../development/python-modules/mpv { mpv = pkgs.mpv; };
 
-  zope_copy = callPackage ../development/python-modules/zope_copy {};
+  mpyq = callPackage ../development/python-modules/mpyq { };
 
-  s2clientprotocol = callPackage ../development/python-modules/s2clientprotocol { };
+  mrbob = callPackage ../development/python-modules/mrbob { };
 
-  py3status = callPackage ../development/python-modules/py3status {};
+  msal = callPackage ../development/python-modules/msal { };
 
-  pyrtlsdr = callPackage ../development/python-modules/pyrtlsdr { };
+  msal-extensions = callPackage ../development/python-modules/msal-extensions { };
 
-  scandir = callPackage ../development/python-modules/scandir { };
+  msgpack = callPackage ../development/python-modules/msgpack { };
 
-  schema = callPackage ../development/python-modules/schema {};
+  msgpack-numpy = callPackage ../development/python-modules/msgpack-numpy { };
 
-  simple-websocket-server = callPackage ../development/python-modules/simple-websocket-server {};
+  msrestazure = callPackage ../development/python-modules/msrestazure { };
 
-  stem = callPackage ../development/python-modules/stem { };
+  msrest = callPackage ../development/python-modules/msrest { };
 
-  svg-path = callPackage ../development/python-modules/svg-path { };
+  msrplib = callPackage ../development/python-modules/msrplib { };
 
-  r2pipe = callPackage ../development/python-modules/r2pipe { };
+  mt-940 = callPackage ../development/python-modules/mt-940 { };
 
-  regex = callPackage ../development/python-modules/regex { };
+  multidict = callPackage ../development/python-modules/multidict { };
 
-  pygrok = callPackage ../development/python-modules/pygrok { };
+  multi_key_dict = callPackage ../development/python-modules/multi_key_dict { };
 
-  regional = callPackage ../development/python-modules/regional { };
+  multipledispatch = callPackage ../development/python-modules/multipledispatch { };
 
-  ratelimiter = callPackage ../development/python-modules/ratelimiter { };
+  multiprocess = callPackage ../development/python-modules/multiprocess { };
 
-  pywatchman = callPackage ../development/python-modules/pywatchman { };
+  multiset = callPackage ../development/python-modules/multiset { };
 
-  pywavelets = callPackage ../development/python-modules/pywavelets { };
+  multitasking = callPackage ../development/python-modules/multitasking { };
 
-  vcrpy = callPackage ../development/python-modules/vcrpy { };
+  munch = callPackage ../development/python-modules/munch { };
 
-  descartes = callPackage ../development/python-modules/descartes { };
+  munkres = callPackage ../development/python-modules/munkres { };
 
-  chardet = callPackage ../development/python-modules/chardet { };
+  murmurhash = callPackage ../development/python-modules/murmurhash { };
 
-  pyramid_exclog = callPackage ../development/python-modules/pyramid_exclog { };
+  musicbrainzngs = callPackage ../development/python-modules/musicbrainzngs { };
 
-  pyramid_multiauth = callPackage ../development/python-modules/pyramid_multiauth { };
+  mutag = callPackage ../development/python-modules/mutag { };
 
-  pyramid_hawkauth = callPackage ../development/python-modules/pyramid_hawkauth { };
+  mutagen = if isPy27 then
+    callPackage ../development/python-modules/mutagen/1.43.nix { }
+  else
+    callPackage ../development/python-modules/mutagen { };
 
-  pytun = callPackage ../development/python-modules/pytun { };
+  mutatormath = callPackage ../development/python-modules/mutatormath { };
 
-  rethinkdb = callPackage ../development/python-modules/rethinkdb { };
+  muttils = callPackage ../development/python-modules/muttils { };
 
-  roku = callPackage ../development/python-modules/roku { };
+  mwclient = callPackage ../development/python-modules/mwclient { };
 
-  roman = callPackage ../development/python-modules/roman { };
+  mwlib = callPackage ../development/python-modules/mwlib { };
 
-  rotate-backups = callPackage ../tools/backup/rotate-backups { };
+  mwlib-ext = callPackage ../development/python-modules/mwlib-ext { };
 
-  liblarch = callPackage ../development/python-modules/liblarch { };
+  mwlib-rl = callPackage ../development/python-modules/mwlib-rl { };
 
-  librosa = callPackage ../development/python-modules/librosa { };
+  mwoauth = callPackage ../development/python-modules/mwoauth { };
 
-  samplerate = callPackage ../development/python-modules/samplerate { };
+  mwparserfromhell = callPackage ../development/python-modules/mwparserfromhell { };
 
-  samsungctl = callPackage ../development/python-modules/samsungctl { };
+  mxnet = callPackage ../development/python-modules/mxnet { };
 
-  samsungtvws = callPackage ../development/python-modules/samsungtvws { };
+  myfitnesspal = callPackage ../development/python-modules/myfitnesspal { };
 
-  screeninfo = callPackage ../development/python-modules/screeninfo { };
+  mygpoclient = callPackage ../development/python-modules/mygpoclient { };
 
-  ssdeep = callPackage ../development/python-modules/ssdeep { };
+  mypy = callPackage ../development/python-modules/mypy { };
 
-  ssdp = callPackage ../development/python-modules/ssdp { };
+  mypy-extensions = callPackage ../development/python-modules/mypy/extensions.nix { };
 
-  statsd = callPackage ../development/python-modules/statsd { };
+  mypy-protobuf = callPackage ../development/python-modules/mypy-protobuf { };
 
-  starfish = callPackage ../development/python-modules/starfish { };
+  mysqlclient = callPackage ../development/python-modules/mysqlclient { };
 
-  swagger-ui-bundle = callPackage ../development/python-modules/swagger-ui-bundle { };
+  mysql-connector = callPackage ../development/python-modules/mysql-connector { };
 
-  multi_key_dict = callPackage ../development/python-modules/multi_key_dict { };
+  nagiosplugin = callPackage ../development/python-modules/nagiosplugin { };
 
-  random2 = callPackage ../development/python-modules/random2 { };
+  namebench = callPackage ../development/python-modules/namebench { };
 
-  schedule = callPackage ../development/python-modules/schedule { };
+  namedlist = callPackage ../development/python-modules/namedlist { };
 
-  repoze_lru = callPackage ../development/python-modules/repoze_lru { };
+  nameparser = callPackage ../development/python-modules/nameparser { };
 
-  repoze_sphinx_autointerface =  callPackage ../development/python-modules/repoze_sphinx_autointerface { };
+  names = callPackage ../development/python-modules/names { };
 
-  setuptools-git = callPackage ../development/python-modules/setuptools-git { };
+  nanoleaf = callPackage ../development/python-modules/nanoleaf { };
 
-  setuptools-lint = callPackage ../development/python-modules/setuptools-lint { };
+  nanomsg-python = callPackage ../development/python-modules/nanomsg-python { inherit (pkgs) nanomsg; };
 
-  sievelib = callPackage ../development/python-modules/sievelib { };
+  nanotime = callPackage ../development/python-modules/nanotime { };
 
-  watchdog = callPackage ../development/python-modules/watchdog { };
+  nassl = callPackage ../development/python-modules/nassl { };
 
-  zope_deprecation = callPackage ../development/python-modules/zope_deprecation { };
+  natsort = callPackage ../development/python-modules/natsort { };
 
-  validators = callPackage ../development/python-modules/validators { };
+  naturalsort = callPackage ../development/python-modules/naturalsort { };
 
-  validictory = callPackage ../development/python-modules/validictory { };
+  nbclient = callPackage ../development/python-modules/nbclient { };
 
-  validate-email = callPackage ../development/python-modules/validate-email { };
+  nbconflux = callPackage ../development/python-modules/nbconflux { };
 
-  venusian = callPackage ../development/python-modules/venusian { };
+  nbconvert = callPackage ../development/python-modules/nbconvert { };
 
-  chameleon = callPackage ../development/python-modules/chameleon { };
+  nbdime = callPackage ../development/python-modules/nbdime { };
 
-  ddt = callPackage ../development/python-modules/ddt { };
+  nbformat = if isPy3k then
+    callPackage ../development/python-modules/nbformat { }
+  else
+    callPackage ../development/python-modules/nbformat/2.nix { };
 
-  distutils_extra = callPackage ../development/python-modules/distutils_extra { };
+  nbmerge = callPackage ../development/python-modules/nbmerge { };
 
-  pyxdg = callPackage ../development/python-modules/pyxdg { };
+  nbsmoke = callPackage ../development/python-modules/nbsmoke { };
 
-  crayons = callPackage ../development/python-modules/crayons{ };
+  nbsphinx = callPackage ../development/python-modules/nbsphinx { };
 
-  django = self.django_lts;
+  nbval = callPackage ../development/python-modules/nbval { };
 
-  django_lts = self.django_2_2;
+  nbxmpp = callPackage ../development/python-modules/nbxmpp { };
 
-  django_2_2 = callPackage ../development/python-modules/django/2_2.nix { };
+  ncclient = callPackage ../development/python-modules/ncclient { };
 
-  django-allauth = callPackage ../development/python-modules/django-allauth { };
+  ndg-httpsclient = callPackage ../development/python-modules/ndg-httpsclient { };
 
-  django-anymail = callPackage ../development/python-modules/django-anymail {};
+  ndtypes = callPackage ../development/python-modules/ndtypes { };
 
-  django_appconf = callPackage ../development/python-modules/django_appconf { };
+  neo = callPackage ../development/python-modules/neo { };
 
-  django-auth-ldap = callPackage ../development/python-modules/django-auth-ldap { };
+  nest-asyncio = callPackage ../development/python-modules/nest-asyncio { };
 
-  django_colorful = callPackage ../development/python-modules/django_colorful { };
+  netaddr = callPackage ../development/python-modules/netaddr { };
 
-  django-cache-url = callPackage ../development/python-modules/django-cache-url { };
+  netcdf4 = callPackage ../development/python-modules/netcdf4 { };
 
-  django-cleanup = callPackage ../development/python-modules/django-cleanup { };
+  netdisco = callPackage ../development/python-modules/netdisco { };
 
-  django-configurations = callPackage ../development/python-modules/django-configurations { };
+  netifaces = callPackage ../development/python-modules/netifaces { };
 
-  django_compressor = callPackage ../development/python-modules/django_compressor { };
+  networkx = if isPy3k then
+    callPackage ../development/python-modules/networkx { }
+  else
+    callPackage ../development/python-modules/networkx/2.2.nix { };
 
-  django_compat = callPackage ../development/python-modules/django-compat { };
+  neuron-mpi = pkgs.neuron-mpi.override { inherit python; };
 
-  django_contrib_comments = callPackage ../development/python-modules/django_contrib_comments { };
+  neuron = pkgs.neuron.override { inherit python; };
 
-  django-cors-headers = callPackage ../development/python-modules/django-cors-headers { };
+  neuronpy = callPackage ../development/python-modules/neuronpy { };
 
-  django-csp = callPackage ../development/python-modules/django-csp { };
+  nevow = callPackage ../development/python-modules/nevow { };
 
-  django-discover-runner = callPackage ../development/python-modules/django-discover-runner { };
+  nghttp2 = (toPythonModule (pkgs.nghttp2.override {
+    inherit (self) python cython setuptools;
+    inherit (pkgs) ncurses;
+    enablePython = true;
+  })).python;
 
-  django-dynamic-preferences = callPackage ../development/python-modules/django-dynamic-preferences { };
+  nibabel = callPackage ../development/python-modules/nibabel { };
 
-  django_environ = callPackage ../development/python-modules/django_environ { };
+  nidaqmx = callPackage ../development/python-modules/nidaqmx { };
 
-  django_evolution = callPackage ../development/python-modules/django_evolution { };
+  Nikola = callPackage ../development/python-modules/Nikola { };
 
-  django_extensions = callPackage ../development/python-modules/django-extensions { };
+  nilearn = callPackage ../development/python-modules/nilearn { };
 
-  django-filter = callPackage ../development/python-modules/django-filter { };
+  nimfa = callPackage ../development/python-modules/nimfa { };
 
-  django-gravatar2 = callPackage ../development/python-modules/django-gravatar2 { };
+  nine = callPackage ../development/python-modules/nine { };
 
-  django_guardian = callPackage ../development/python-modules/django_guardian { };
+  nipy = callPackage ../development/python-modules/nipy { };
 
-  django-ipware = callPackage ../development/python-modules/django-ipware { };
+  nipype = callPackage ../development/python-modules/nipype { inherit (pkgs) which; };
 
-  django-jinja = callPackage ../development/python-modules/django-jinja2 { };
+  nitime = callPackage ../development/python-modules/nitime { };
 
-  django-logentry-admin = callPackage ../development/python-modules/django-logentry-admin { };
+  nitpick = callPackage ../applications/version-management/nitpick { };
 
-  django-mailman3 = callPackage ../development/python-modules/django-mailman3 { };
+  nix-kernel = callPackage ../development/python-modules/nix-kernel { inherit (pkgs) nix; };
 
-  django-oauth-toolkit = callPackage ../development/python-modules/django-oauth-toolkit { };
+  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-pglocks = callPackage ../development/python-modules/django-pglocks { };
+  nixpart = callPackage ../tools/filesystems/nixpart { };
 
-  django-picklefield = callPackage ../development/python-modules/django-picklefield { };
+  nixpkgs = callPackage ../development/python-modules/nixpkgs { };
 
-  django_polymorphic = callPackage ../development/python-modules/django-polymorphic { };
+  nixpkgs-pytools = callPackage ../development/python-modules/nixpkgs-pytools { };
 
-  django-postgresql-netfields = callPackage ../development/python-modules/django-postgresql-netfields { };
+  nix-prefetch-github = callPackage ../development/python-modules/nix-prefetch-github { };
 
-  django-ranged-response = callPackage ../development/python-modules/django-ranged-response { };
+  nltk = callPackage ../development/python-modules/nltk { };
 
-  django-rest-auth = callPackage ../development/python-modules/django-rest-auth { };
+  nmigen-boards = callPackage ../development/python-modules/nmigen-boards { };
 
-  django-sampledatahelper = callPackage ../development/python-modules/django-sampledatahelper { };
+  nmigen = callPackage ../development/python-modules/nmigen { };
 
-  django-simple-captcha = callPackage ../development/python-modules/django-simple-captcha { };
+  nmigen-soc = callPackage ../development/python-modules/nmigen-soc { };
 
-  django-sites = callPackage ../development/python-modules/django-sites { };
+  nodeenv = callPackage ../development/python-modules/nodeenv { };
 
-  django-sr = callPackage ../development/python-modules/django-sr { };
+  node-semver = callPackage ../development/python-modules/node-semver { };
 
-  django-storages = callPackage ../development/python-modules/django-storages { };
+  noise = callPackage ../development/python-modules/noise { };
 
-  django-versatileimagefield = callPackage ../development/python-modules/django-versatileimagefield  { };
+  nose2 = callPackage ../development/python-modules/nose2 { };
 
-  django-webpack-loader = callPackage ../development/python-modules/django-webpack-loader { };
+  nose = callPackage ../development/python-modules/nose { };
 
-  django-widget-tweaks = callPackage ../development/python-modules/django-widget-tweaks { };
+  nose-cov = callPackage ../development/python-modules/nose-cov { };
 
-  django_tagging = callPackage ../development/python-modules/django_tagging { };
+  nose-cover3 = callPackage ../development/python-modules/nose-cover3 { };
 
-  django_classytags = callPackage ../development/python-modules/django_classytags { };
+  nose-cprof = callPackage ../development/python-modules/nose-cprof { };
 
-  # 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 { };
+  nose-exclude = callPackage ../development/python-modules/nose-exclude { };
 
-  django_hijack_admin = callPackage ../development/python-modules/django-hijack-admin { };
+  nose-focus = callPackage ../development/python-modules/nose-focus { };
 
-  django_nose = callPackage ../development/python-modules/django_nose { };
+  nosejs = callPackage ../development/python-modules/nosejs { };
 
-  django_modelcluster = callPackage ../development/python-modules/django_modelcluster { };
+  nose-of-yeti = callPackage ../development/python-modules/nose-of-yeti { };
 
-  djangorestframework = callPackage ../development/python-modules/djangorestframework { };
+  nose-pattern-exclude = callPackage ../development/python-modules/nose-pattern-exclude { };
 
-  djangorestframework-jwt = callPackage ../development/python-modules/djangorestframework-jwt { };
+  nose_progressive = callPackage ../development/python-modules/nose_progressive { };
 
-  djangorestframework-simplejwt = callPackage ../development/python-modules/djangorestframework-simplejwt { };
+  nose-randomly = callPackage ../development/python-modules/nose-randomly { };
 
-  django-raster = callPackage ../development/python-modules/django-raster { };
+  nose_warnings_filters = callPackage ../development/python-modules/nose_warnings_filters { };
 
-  django_redis = callPackage ../development/python-modules/django_redis { };
+  nosexcover = callPackage ../development/python-modules/nosexcover { };
 
-  django_reversion = callPackage ../development/python-modules/django_reversion { };
+  notebook = if isPy3k then
+    callPackage ../development/python-modules/notebook { }
+  else
+    callPackage ../development/python-modules/notebook/2.nix { };
 
-  django_silk = callPackage ../development/python-modules/django_silk { };
+  notedown = callPackage ../development/python-modules/notedown { };
 
-  django_taggit = callPackage ../development/python-modules/django_taggit { };
+  notify2 = callPackage ../development/python-modules/notify2 { };
 
-  django_treebeard = callPackage ../development/python-modules/django_treebeard { };
+  notify = callPackage ../development/python-modules/notify { };
 
-  django_pipeline = callPackage ../development/python-modules/django-pipeline { };
+  notmuch = callPackage ../development/python-modules/notmuch { inherit (pkgs) notmuch; };
 
-  djangoql = callPackage ../development/python-modules/djangoql { };
+  nototools = callPackage ../data/fonts/noto-fonts/tools.nix { };
 
-  dj-database-url = callPackage ../development/python-modules/dj-database-url { };
+  nplusone = callPackage ../development/python-modules/nplusone { };
 
-  dj-email-url = callPackage ../development/python-modules/dj-email-url { };
+  ntlm-auth = callPackage ../development/python-modules/ntlm-auth { };
 
-  dj-search-url = callPackage ../development/python-modules/dj-search-url { };
+  ntplib = callPackage ../development/python-modules/ntplib { };
 
-  djmail = callPackage ../development/python-modules/djmail { };
+  Nuitka = callPackage ../development/python-modules/nuitka { };
 
-  pillowfight = callPackage ../development/python-modules/pillowfight { };
+  num2words = callPackage ../development/python-modules/num2words { };
 
-  kaptan = callPackage ../development/python-modules/kaptan { };
+  numba = callPackage ../development/python-modules/numba { };
 
-  keepalive = callPackage ../development/python-modules/keepalive { };
+  numcodecs = callPackage ../development/python-modules/numcodecs { inherit (pkgs) gcc8; };
 
-  keyrings-alt = callPackage ../development/python-modules/keyrings-alt {};
+  numericalunits = callPackage ../development/python-modules/numericalunits { };
 
-  SPARQLWrapper = callPackage ../development/python-modules/sparqlwrapper { };
+  numexpr = callPackage ../development/python-modules/numexpr { };
 
-  duckdb = callPackage ../development/python-modules/duckdb {
-    duckdb = pkgs.duckdb;
-  };
+  numpydoc = callPackage ../development/python-modules/numpydoc { };
 
-  dulwich = if isPy3k then
-    callPackage ../development/python-modules/dulwich { }
+  numpy = if pythonOlder "3.5" then
+    callPackage ../development/python-modules/numpy/1.16.nix { }
   else
-    callPackage ../development/python-modules/dulwich/0_19.nix { };
-
-  hg-git = callPackage ../development/python-modules/hg-git { };
+    callPackage ../development/python-modules/numpy { };
 
-  hg-evolve = callPackage ../development/python-modules/hg-evolve { };
-
-  dtopt = callPackage ../development/python-modules/dtopt { };
+  numpy-stl = callPackage ../development/python-modules/numpy-stl { };
 
-  easywatch = callPackage ../development/python-modules/easywatch { };
+  numtraits = callPackage ../development/python-modules/numtraits { };
 
-  ecdsa = callPackage ../development/python-modules/ecdsa { };
+  nunavut = callPackage ../development/python-modules/nunavut { };
 
-  ecos = callPackage ../development/python-modules/ecos { };
+  nvchecker = callPackage ../development/python-modules/nvchecker { };
 
-  effect = callPackage ../development/python-modules/effect {};
+  nwdiag = callPackage ../development/python-modules/nwdiag { };
 
-  enum = callPackage ../development/python-modules/enum { };
+  nxt-python = callPackage ../development/python-modules/nxt-python { };
 
-  enum-compat = callPackage ../development/python-modules/enum-compat { };
+  oath = callPackage ../development/python-modules/oath { };
 
-  enum34 = callPackage ../development/python-modules/enum34 { };
+  oauth2 = callPackage ../development/python-modules/oauth2 { };
 
-  epc = callPackage ../development/python-modules/epc { };
+  oauth2client = callPackage ../development/python-modules/oauth2client { };
 
-  et_xmlfile = callPackage ../development/python-modules/et_xmlfile { };
+  oauth = callPackage ../development/python-modules/oauth { };
 
-  etesync = callPackage ../development/python-modules/etesync { };
+  oauthenticator = callPackage ../development/python-modules/oauthenticator { };
 
-  eventlet = callPackage ../development/python-modules/eventlet { };
+  oauthlib = if isPy27 then
+    callPackage ../development/python-modules/oauthlib/3.1.nix { }
+  else
+    callPackage ../development/python-modules/oauthlib { };
 
-  executing = callPackage ../development/python-modules/executing { };
+  obfsproxy = callPackage ../development/python-modules/obfsproxy { };
 
-  exifread = callPackage ../development/python-modules/exifread { };
+  objgraph = callPackage ../development/python-modules/objgraph { graphvizPkg = pkgs.graphviz; };
 
-  fastimport = callPackage ../development/python-modules/fastimport { };
+  od = callPackage ../development/python-modules/od { };
 
-  fastpair = callPackage ../development/python-modules/fastpair { };
+  odfpy = callPackage ../development/python-modules/odfpy { };
 
-  fastrlock = callPackage ../development/python-modules/fastrlock {};
+  offtrac = callPackage ../development/python-modules/offtrac { };
 
-  feedgen = callPackage ../development/python-modules/feedgen { };
+  ofxclient = callPackage ../development/python-modules/ofxclient { };
 
-  feedgenerator = callPackage ../development/python-modules/feedgenerator {
-    inherit (pkgs) glibcLocales;
-  };
+  ofxhome = callPackage ../development/python-modules/ofxhome { };
 
-  feedparser = callPackage ../development/python-modules/feedparser { };
+  ofxparse = callPackage ../development/python-modules/ofxparse { };
 
-  pyfribidi = callPackage ../development/python-modules/pyfribidi { };
+  ofxtools = callPackage ../development/python-modules/ofxtools { };
 
-  pyfritzhome = callPackage ../development/python-modules/pyfritzhome { };
+  olefile = callPackage ../development/python-modules/olefile { };
 
-  pyftpdlib = callPackage ../development/python-modules/pyftpdlib { };
+  omegaconf = callPackage ../development/python-modules/omegaconf { };
 
-  filebrowser_safe = callPackage ../development/python-modules/filebrowser_safe { };
+  onkyo-eiscp = callPackage ../development/python-modules/onkyo-eiscp { };
 
-  pycodestyle = callPackage ../development/python-modules/pycodestyle { };
+  onnx = callPackage ../development/python-modules/onnx { };
 
-  filebytes = callPackage ../development/python-modules/filebytes { };
+  openant = callPackage ../development/python-modules/openant { };
 
-  filelock = callPackage ../development/python-modules/filelock {};
+  openapi-spec-validator = callPackage ../development/python-modules/openapi-spec-validator { };
 
-  fiona = callPackage ../development/python-modules/fiona { gdal_2 = pkgs.gdal_2; };
+  opencv3 = toPythonModule (pkgs.opencv3.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
 
-  fitbit = callPackage ../development/python-modules/fitbit { };
+  opencv4 = toPythonModule (pkgs.opencv4.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
 
-  flake8 = callPackage ../development/python-modules/flake8 { };
+  opencv = disabledIf isPy3k (toPythonModule (pkgs.opencv.override {
+    enablePython = true;
+    pythonPackages = self;
+  }));
 
-  flake8-blind-except = callPackage ../development/python-modules/flake8-blind-except { };
+  openidc-client = callPackage ../development/python-modules/openidc-client { };
 
-  flake8-debugger = callPackage ../development/python-modules/flake8-debugger { };
+  openpyxl = if pythonAtLeast "3.6" then
+    callPackage ../development/python-modules/openpyxl { }
+  else
+    callPackage ../development/python-modules/openpyxl/2.nix { };
 
-  flake8-future-import = callPackage ../development/python-modules/flake8-future-import { };
+  openrazer = callPackage ../development/python-modules/openrazer/pylib.nix { };
 
-  flake8-import-order = callPackage ../development/python-modules/flake8-import-order { };
+  openrazer-daemon = callPackage ../development/python-modules/openrazer/daemon.nix { };
 
-  flake8-polyfill = callPackage ../development/python-modules/flake8-polyfill { };
+  opentimestamps = callPackage ../development/python-modules/opentimestamps { };
 
-  flaky = callPackage ../development/python-modules/flaky { };
+  opentracing = callPackage ../development/python-modules/opentracing { };
 
-  flask = callPackage ../development/python-modules/flask { };
+  openwebifpy = callPackage ../development/python-modules/openwebifpy { };
 
-  flask-admin = callPackage ../development/python-modules/flask-admin { };
+  openwrt-luci-rpc = disabledIf (!isPy3k) (callPackage ../development/python-modules/openwrt-luci-rpc { });
 
-  flask-appbuilder = callPackage ../development/python-modules/flask-appbuilder { };
+  opt-einsum = if isPy27 then
+    callPackage ../development/python-modules/opt-einsum/2.nix { }
+  else
+    callPackage ../development/python-modules/opt-einsum { };
 
-  flask-api = callPackage ../development/python-modules/flask-api { };
+  optuna = callPackage ../development/python-modules/optuna { };
 
-  flask_assets = callPackage ../development/python-modules/flask-assets { };
+  opuslib = callPackage ../development/python-modules/opuslib { };
 
-  flask-autoindex = callPackage ../development/python-modules/flask-autoindex { };
+  ordereddict = callPackage ../development/python-modules/ordereddict { };
 
-  flask-babel = callPackage ../development/python-modules/flask-babel { };
+  orderedmultidict = callPackage ../development/python-modules/orderedmultidict { };
 
-  flask-babelex = callPackage ../development/python-modules/flask-babelex { };
+  ordered-set = callPackage ../development/python-modules/ordered-set { };
 
-  flask-bcrypt = callPackage ../development/python-modules/flask-bcrypt { };
+  orderedset = callPackage ../development/python-modules/orderedset { };
 
-  flask-bootstrap = callPackage ../development/python-modules/flask-bootstrap { };
+  orm = callPackage ../development/python-modules/orm { };
 
-  flask-caching = callPackage ../development/python-modules/flask-caching { };
+  ortools = (toPythonModule (pkgs.or-tools.override { inherit (self) python; })).python;
 
-  flask-common = callPackage ../development/python-modules/flask-common { };
+  osc = callPackage ../development/python-modules/osc { };
 
-  flask-compress = callPackage ../development/python-modules/flask-compress { };
+  oscrypto = callPackage ../development/python-modules/oscrypto { };
 
-  flask-cors = callPackage ../development/python-modules/flask-cors { };
+  oset = callPackage ../development/python-modules/oset { };
 
-  flask_elastic = callPackage ../development/python-modules/flask-elastic { };
+  osmnx = callPackage ../development/python-modules/osmnx { };
 
-  flask-httpauth = callPackage ../development/python-modules/flask-httpauth { };
+  osmpythontools = callPackage ../development/python-modules/osmpythontools { };
 
-  flask-jwt-extended = callPackage ../development/python-modules/flask-jwt-extended { };
+  osqp = callPackage ../development/python-modules/osqp { };
 
-  flask-limiter = callPackage ../development/python-modules/flask-limiter { };
+  outcome = callPackage ../development/python-modules/outcome { };
 
-  flask_login = callPackage ../development/python-modules/flask-login { };
+  ovh = callPackage ../development/python-modules/ovh { };
 
-  flask_ldap_login = callPackage ../development/python-modules/flask-ldap-login { };
+  ovito = toPythonModule (pkgs.libsForQt5.callPackage ../development/python-modules/ovito { pythonPackages = self; });
 
-  flask_mail = callPackage ../development/python-modules/flask-mail { };
+  owslib = callPackage ../development/python-modules/owslib { };
 
-  flask_marshmallow = callPackage ../development/python-modules/flask-marshmallow { };
+  oyaml = callPackage ../development/python-modules/oyaml { };
 
-  flask_migrate = callPackage ../development/python-modules/flask-migrate { };
+  packaging = callPackage ../development/python-modules/packaging { };
 
-  flask-mongoengine = callPackage ../development/python-modules/flask-mongoengine { };
+  packet-python = callPackage ../development/python-modules/packet-python { };
 
-  flask-openid = callPackage ../development/python-modules/flask-openid { };
+  pafy = callPackage ../development/python-modules/pafy { };
 
-  flask-paginate = callPackage ../development/python-modules/flask-paginate { };
+  pagelabels = callPackage ../development/python-modules/pagelabels { };
 
-  flask_principal = callPackage ../development/python-modules/flask-principal { };
+  pagerduty = callPackage ../development/python-modules/pagerduty { };
 
-  flask-pymongo = callPackage ../development/python-modules/Flask-PyMongo { };
+  paho-mqtt = callPackage ../development/python-modules/paho-mqtt { };
 
-  flask-restful = callPackage ../development/python-modules/flask-restful { };
+  palettable = callPackage ../development/python-modules/palettable { };
 
-  flask-restplus = callPackage ../development/python-modules/flask-restplus { };
+  pam = callPackage ../development/python-modules/pam { inherit (pkgs) pam; };
 
-  flask-restx = callPackage ../development/python-modules/flask-restx { };
+  pamela = callPackage ../development/python-modules/pamela { };
 
-  flask-reverse-proxy-fix = callPackage ../development/python-modules/flask-reverse-proxy-fix { };
+  pamqp = callPackage ../development/python-modules/pamqp { };
 
-  flask_script = callPackage ../development/python-modules/flask-script { };
+  pandas = if isPy3k then
+    callPackage ../development/python-modules/pandas { }
+  else
+    callPackage ../development/python-modules/pandas/2.nix { };
 
-  flask-silk = callPackage ../development/python-modules/flask-silk { };
+  pandoc-attributes = callPackage ../development/python-modules/pandoc-attributes { };
 
-  flask-socketio = callPackage ../development/python-modules/flask-socketio { };
+  pandocfilters = callPackage ../development/python-modules/pandocfilters { };
 
-  flask-sockets = callPackage ../development/python-modules/flask-sockets { };
+  panel = callPackage ../development/python-modules/panel { };
 
-  flask_sqlalchemy = callPackage ../development/python-modules/flask-sqlalchemy { };
+  papermill = callPackage ../development/python-modules/papermill { };
 
-  flask-swagger = callPackage ../development/python-modules/flask-swagger { };
+  paperspace = callPackage ../development/python-modules/paperspace { };
 
-  flask-swagger-ui = callPackage ../development/python-modules/flask-swagger-ui { };
+  paperwork-backend = callPackage ../applications/office/paperwork/backend.nix { };
 
-  flask_testing = callPackage ../development/python-modules/flask-testing { };
+  papis = callPackage ../development/python-modules/papis { };
 
-  flask-versioned = callPackage ../development/python-modules/flask-versioned { };
+  papis-python-rofi = callPackage ../development/python-modules/papis-python-rofi { };
 
-  flask_wtf = callPackage ../development/python-modules/flask-wtf { };
+  param = callPackage ../development/python-modules/param { };
 
-  wtforms = callPackage ../development/python-modules/wtforms { };
+  parameterized = callPackage ../development/python-modules/parameterized { };
 
-  wtf-peewee = callPackage ../development/python-modules/wtf-peewee { };
+  paramiko = callPackage ../development/python-modules/paramiko { };
 
-  graph-tool = callPackage ../development/python-modules/graph-tool/2.x.x.nix {
-    inherit (pkgs) pkg-config;
-  };
+  paramz = callPackage ../development/python-modules/paramz { };
 
-  grappelli_safe = callPackage ../development/python-modules/grappelli_safe { };
+  parfive = callPackage ../development/python-modules/parfive { };
 
-  greatfet = callPackage ../development/python-modules/greatfet { };
+  parse = callPackage ../development/python-modules/parse { };
 
-  pygreat = callPackage ../development/python-modules/pygreat { };
+  parsedatetime = callPackage ../development/python-modules/parsedatetime { };
 
-  pytorch = callPackage ../development/python-modules/pytorch {
-    cudaSupport = pkgs.config.cudaSupport or false;
-  };
+  parsel = callPackage ../development/python-modules/parsel { };
 
-  pyro-ppl = callPackage ../development/python-modules/pyro-ppl {};
+  parse-type = callPackage ../development/python-modules/parse-type { };
 
-  opt-einsum = if isPy27 then
-      callPackage ../development/python-modules/opt-einsum/2.nix {}
-    else
-      callPackage ../development/python-modules/opt-einsum {};
+  parsimonious = callPackage ../development/python-modules/parsimonious { };
 
-  pytorchWithCuda = self.pytorch.override {
-    cudaSupport = true;
-  };
+  parsley = callPackage ../development/python-modules/parsley { };
 
-  pytorchWithoutCuda = self.pytorch.override {
-    cudaSupport = false;
-  };
+  parso = callPackage ../development/python-modules/parso { };
 
-  pytorch-lightning = callPackage ../development/python-modules/pytorch-lightning { };
+  parsy = callPackage ../development/python-modules/parsy { };
 
-  pytorch-metric-learning = callPackage ../development/python-modules/pytorch-metric-learning { };
+  partd = callPackage ../development/python-modules/partd { };
 
-  pythondialog = callPackage ../development/python-modules/pythondialog { };
+  parver = callPackage ../development/python-modules/parver { };
+  arpeggio = callPackage ../development/python-modules/arpeggio { };
 
-  python2-pythondialog = callPackage ../development/python-modules/python2-pythondialog { };
+  passlib = callPackage ../development/python-modules/passlib { };
 
-  pyRFC3339 = callPackage ../development/python-modules/pyrfc3339 { };
+  paste = callPackage ../development/python-modules/paste { };
 
-  rfc3987 = callPackage ../development/python-modules/rfc3987 { };
+  PasteDeploy = callPackage ../development/python-modules/pastedeploy { };
 
-  ConfigArgParse = callPackage ../development/python-modules/configargparse { };
+  pastel = callPackage ../development/python-modules/pastel { };
 
-  jsonschema = callPackage ../development/python-modules/jsonschema { };
+  pasteScript = callPackage ../development/python-modules/pastescript { };
 
-  vcver = callPackage ../development/python-modules/vcver { };
+  patator = callPackage ../development/python-modules/patator { };
 
-  vcversioner = callPackage ../development/python-modules/vcversioner { };
+  patch = callPackage ../development/python-modules/patch { };
 
-  falcon = callPackage ../development/python-modules/falcon { };
+  patch-ng = callPackage ../development/python-modules/patch-ng { };
 
-  hug = callPackage ../development/python-modules/hug { };
+  path-and-address = callPackage ../development/python-modules/path-and-address { };
 
-  flup = callPackage ../development/python-modules/flup { };
+  pathlib2 = callPackage ../development/python-modules/pathlib2 { };
 
-  fn = callPackage ../development/python-modules/fn { };
+  pathlib = callPackage ../development/python-modules/pathlib { };
 
-  folium = callPackage ../development/python-modules/folium { };
+  pathos = callPackage ../development/python-modules/pathos { };
 
-  fontforge = disabledIf (!isPy3k) (toPythonModule (pkgs.fontforge.override {
-    withPython = true;
-    inherit python;
-  }));
+  pathpy = if isPy3k then
+    callPackage ../development/python-modules/path.py { }
+  else
+    callPackage ../development/python-modules/path.py/2.nix { };
 
-  fonttools = callPackage ../development/python-modules/fonttools { };
+  pathspec = callPackage ../development/python-modules/pathspec { };
 
-  foolscap = callPackage ../development/python-modules/foolscap { };
+  pathtools = callPackage ../development/python-modules/pathtools { };
 
-  forbiddenfruit = callPackage ../development/python-modules/forbiddenfruit { };
+  patsy = callPackage ../development/python-modules/patsy { };
 
-  fusepy = callPackage ../development/python-modules/fusepy { };
+  paver = callPackage ../development/python-modules/paver { };
 
-  future = callPackage ../development/python-modules/future { };
+  paypalrestsdk = callPackage ../development/python-modules/paypalrestsdk { };
 
-  futures = callPackage ../development/python-modules/futures { };
+  pbkdf2 = callPackage ../development/python-modules/pbkdf2 { };
 
-  galario = toPythonModule (pkgs.galario.override {
-    enablePython = true;
-    pythonPackages = self;
-  });
+  pbr = callPackage ../development/python-modules/pbr { };
 
-  gcovr = callPackage ../development/python-modules/gcovr { };
+  pc-ble-driver-py = toPythonModule (callPackage ../development/python-modules/pc-ble-driver-py { });
 
-  gdal = toPythonModule (pkgs.gdal.override {
-    pythonPackages = self;
-  });
+  pcpp = callPackage ../development/python-modules/pcpp { };
 
-  gdrivefs = callPackage ../development/python-modules/gdrivefs { };
+  pdf2image = callPackage ../development/python-modules/pdf2image { };
 
-  geant4 = disabledIf (!isPy3k) (toPythonModule (pkgs.geant4.override {
-    enablePython = true;
-    python3 = python;
-  }));
+  pdfkit = callPackage ../development/python-modules/pdfkit { };
 
-  genshi = callPackage ../development/python-modules/genshi { };
+  pdfminer = callPackage ../development/python-modules/pdfminer_six { };
 
-  gentools = callPackage ../development/python-modules/gentools { };
+  pdfposter = callPackage ../development/python-modules/pdfposter { };
 
-  gevent = callPackage ../development/python-modules/gevent { };
+  pdfrw = callPackage ../development/python-modules/pdfrw { };
 
-  geventhttpclient = callPackage ../development/python-modules/geventhttpclient { };
+  pdftotext = callPackage ../development/python-modules/pdftotext { };
 
-  gevent-socketio = callPackage ../development/python-modules/gevent-socketio { };
+  pdfx = callPackage ../development/python-modules/pdfx { };
 
-  geopandas = callPackage ../development/python-modules/geopandas { };
+  pecan = callPackage ../development/python-modules/pecan { };
 
-  geojson = callPackage ../development/python-modules/geojson { };
+  peewee = callPackage ../development/python-modules/peewee { };
 
-  gevent-websocket = callPackage ../development/python-modules/gevent-websocket { };
+  pefile = callPackage ../development/python-modules/pefile { };
 
-  genzshcomp = callPackage ../development/python-modules/genzshcomp { };
+  pelican = callPackage ../development/python-modules/pelican { inherit (pkgs) glibcLocales git; };
 
-  gflags = callPackage ../development/python-modules/gflags { };
+  pendulum = callPackage ../development/python-modules/pendulum { };
 
-  ghdiff = callPackage ../development/python-modules/ghdiff { };
+  pep257 = callPackage ../development/python-modules/pep257 { };
 
-  gipc = callPackage ../development/python-modules/gipc { };
+  pep517 = callPackage ../development/python-modules/pep517 { };
 
-  git-revise = callPackage ../development/python-modules/git-revise { };
+  pep8 = callPackage ../development/python-modules/pep8 { };
 
-  git-sweep = callPackage ../development/python-modules/git-sweep { };
+  pep8-naming = callPackage ../development/python-modules/pep8-naming { };
 
-  glances = throw "glances has moved to pkgs.glances"; # added 2020-20-28
+  peppercorn = callPackage ../development/python-modules/peppercorn { };
 
-  github3_py = callPackage ../development/python-modules/github3_py { };
+  percol = callPackage ../development/python-modules/percol { };
 
-  github-webhook = callPackage ../development/python-modules/github-webhook { };
+  perfplot = callPackage ../development/python-modules/perfplot { };
 
-  goobook = callPackage ../development/python-modules/goobook { };
+  periodictable = callPackage ../development/python-modules/periodictable { };
 
-  googleapis_common_protos = callPackage ../development/python-modules/googleapis_common_protos { };
+  persim = callPackage ../development/python-modules/persim { };
 
-  google-auth-httplib2 = callPackage ../development/python-modules/google-auth-httplib2 { };
+  persistent = callPackage ../development/python-modules/persistent { };
 
-  google-auth-oauthlib = callPackage ../development/python-modules/google-auth-oauthlib { };
+  persisting-theory = callPackage ../development/python-modules/persisting-theory { };
 
-  google_api_core = callPackage ../development/python-modules/google_api_core { };
+  pex = callPackage ../development/python-modules/pex { };
 
-  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";
-      };
-    });
+  pexif = callPackage ../development/python-modules/pexif { };
 
-  google_apputils = callPackage ../development/python-modules/google_apputils { };
+  pexpect = callPackage ../development/python-modules/pexpect { };
 
-  google_auth = callPackage ../development/python-modules/google_auth { };
+  pg8000 = callPackage ../development/python-modules/pg8000 { };
+  pg8000_1_12 = callPackage ../development/python-modules/pg8000/1_12.nix { };
 
-  google_cloud_asset = callPackage ../development/python-modules/google_cloud_asset { };
+  pgcli = callPackage ../development/tools/database/pgcli { };
 
-  google_cloud_automl = callPackage ../development/python-modules/google_cloud_automl { };
+  pglast = callPackage ../development/python-modules/pglast { };
 
-  google_cloud_core = callPackage ../development/python-modules/google_cloud_core { };
+  pgpdump = callPackage ../development/python-modules/pgpdump { };
 
-  google_cloud_bigquery = callPackage ../development/python-modules/google_cloud_bigquery { };
+  pgpy = callPackage ../development/python-modules/pgpy { };
 
-  google_cloud_bigquery_datatransfer = callPackage ../development/python-modules/google_cloud_bigquery_datatransfer { };
+  pgsanity = callPackage ../development/python-modules/pgsanity { };
 
-  google_cloud_bigtable = callPackage ../development/python-modules/google_cloud_bigtable { };
+  pgspecial = callPackage ../development/python-modules/pgspecial { };
 
-  google_cloud_container = callPackage ../development/python-modules/google_cloud_container { };
+  phe = callPackage ../development/python-modules/phe { };
 
-  google_cloud_dataproc = callPackage ../development/python-modules/google_cloud_dataproc { };
+  phik = callPackage ../development/python-modules/phik { };
 
-  google_cloud_datastore = callPackage ../development/python-modules/google_cloud_datastore { };
+  phonenumbers = callPackage ../development/python-modules/phonenumbers { };
 
-  google_cloud_dlp = callPackage ../development/python-modules/google_cloud_dlp { };
+  phonopy = callPackage ../development/python-modules/phonopy { };
 
-  google_cloud_dns = callPackage ../development/python-modules/google_cloud_dns { };
+  phpserialize = callPackage ../development/python-modules/phpserialize { };
 
-  google_cloud_error_reporting = callPackage ../development/python-modules/google_cloud_error_reporting { };
+  piccata = callPackage ../development/python-modules/piccata { };
 
-  google_cloud_firestore = callPackage ../development/python-modules/google_cloud_firestore { };
+  pickleshare = callPackage ../development/python-modules/pickleshare { };
 
-  google_cloud_iot = callPackage ../development/python-modules/google_cloud_iot { };
+  picos = callPackage ../development/python-modules/picos { };
 
-  google_cloud_kms = callPackage ../development/python-modules/google_cloud_kms { };
+  pid = callPackage ../development/python-modules/pid { };
 
-  google_cloud_language = callPackage ../development/python-modules/google_cloud_language { };
+  piep = callPackage ../development/python-modules/piep { };
 
-  google_cloud_logging = callPackage ../development/python-modules/google_cloud_logging { };
+  piexif = callPackage ../development/python-modules/piexif { };
 
-  google_cloud_monitoring = callPackage ../development/python-modules/google_cloud_monitoring { };
+  pika = callPackage ../development/python-modules/pika { };
 
-  google_cloud_pubsub = callPackage ../development/python-modules/google_cloud_pubsub { };
+  pika-pool = callPackage ../development/python-modules/pika-pool { };
 
-  google_cloud_redis = callPackage ../development/python-modules/google_cloud_redis { };
+  pikepdf = callPackage ../development/python-modules/pikepdf { };
 
-  google_cloud_resource_manager = callPackage ../development/python-modules/google_cloud_resource_manager { };
+  pilkit = callPackage ../development/python-modules/pilkit { };
 
-  google_cloud_runtimeconfig = callPackage ../development/python-modules/google_cloud_runtimeconfig { };
+  pillowfight = callPackage ../development/python-modules/pillowfight { };
 
-  google_cloud_secret_manager = callPackage ../development/python-modules/google_cloud_secret_manager { };
+  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_securitycenter = callPackage ../development/python-modules/google_cloud_securitycenter { };
+  pims = callPackage ../development/python-modules/pims { };
 
-  google_cloud_spanner = callPackage ../development/python-modules/google_cloud_spanner { };
+  pint = callPackage ../development/python-modules/pint { };
 
-  google_cloud_storage = callPackage ../development/python-modules/google_cloud_storage { };
+  pip2nix = callPackage ../development/python-modules/pip2nix { };
 
-  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 { };
+    callPackage ../development/python-modules/praw/6.3.nix { };
 
-  iapws = callPackage ../development/python-modules/iapws { };
-
-  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 { };
 
-  muttils = callPackage ../development/python-modules/muttils { };
+  pyjson5 = callPackage ../development/python-modules/pyjson5 { };
 
-  mygpoclient = callPackage ../development/python-modules/mygpoclient { };
+  pyjwkest = callPackage ../development/python-modules/pyjwkest { };
 
-  mysqlclient = callPackage ../development/python-modules/mysqlclient { };
+  pyjwt = callPackage ../development/python-modules/pyjwt { };
 
-  mypy = callPackage ../development/python-modules/mypy { };
+  pykdtree = callPackage ../development/python-modules/pykdtree { inherit (pkgs.llvmPackages) openmp; };
 
-  mypy-extensions = callPackage ../development/python-modules/mypy/extensions.nix { };
+  pykeepass = callPackage ../development/python-modules/pykeepass { };
 
-  mypy-protobuf = callPackage ../development/python-modules/mypy-protobuf { };
+  pykerberos = callPackage ../development/python-modules/pykerberos { };
 
-  neuronpy = callPackage ../development/python-modules/neuronpy { };
+  pykickstart = callPackage ../development/python-modules/pykickstart { };
 
-  persisting-theory = callPackage ../development/python-modules/persisting-theory { };
+  pykka = callPackage ../development/python-modules/pykka { };
 
-  pint = callPackage ../development/python-modules/pint { };
+  pykwalify = callPackage ../development/python-modules/pykwalify { };
 
-  pkutils = callPackage ../development/python-modules/pkutils { };
+  pylama = callPackage ../development/python-modules/pylama { };
 
-  pygal = callPackage ../development/python-modules/pygal { };
+  pylast = callPackage ../development/python-modules/pylast { };
 
-  pygogo = callPackage ../development/python-modules/pygogo { };
+  pylatexenc = callPackage ../development/python-modules/pylatexenc { };
 
-  pytaglib = callPackage ../development/python-modules/pytaglib { };
+  PyLD = callPackage ../development/python-modules/PyLD { };
 
-  pyte = callPackage ../development/python-modules/pyte { };
+  pylev = callPackage ../development/python-modules/pylev { };
 
-  graphviz = callPackage ../development/python-modules/graphviz {
-    inherit (pkgs) graphviz;
-  };
+  pylibacl = callPackage ../development/python-modules/pylibacl { };
 
-  pygraphviz = callPackage ../development/python-modules/pygraphviz {
-    inherit (pkgs) graphviz pkgconfig; # not the python package
-  };
+  pylibconfig2 = callPackage ../development/python-modules/pylibconfig2 { };
 
-  pymc3 = callPackage ../development/python-modules/pymc3 { };
+  pylibftdi = callPackage ../development/python-modules/pylibftdi { inherit (pkgs) libusb1; };
 
-  pympler = callPackage ../development/python-modules/pympler { };
+  pylibgen = throw "pylibgen is unmaintained upstreamed, and removed from nixpkgs"; # added 2020-06-20
 
-  pymysqlsa = callPackage ../development/python-modules/pymysqlsa { };
+  pyliblo = callPackage ../development/python-modules/pyliblo { };
 
-  merkletools = callPackage ../development/python-modules/merkletools { };
+  pylibmc = callPackage ../development/python-modules/pylibmc { };
 
-  monosat = disabledIf (!isPy3k) (pkgs.monosat.python { inherit buildPythonPackage; inherit (self) cython; });
+  pylint-celery = callPackage ../development/python-modules/pylint-celery { };
 
-  monotonic = callPackage ../development/python-modules/monotonic { };
+  pylint-django = callPackage ../development/python-modules/pylint-django { };
 
-  mysql-connector = callPackage ../development/python-modules/mysql-connector { };
+  pylint-flask = callPackage ../development/python-modules/pylint-flask { };
 
-  namebench = callPackage ../development/python-modules/namebench { };
+  pylint = if isPy3k then
+    callPackage ../development/python-modules/pylint { }
+  else
+    callPackage ../development/python-modules/pylint/1.9.nix { };
 
-  namedlist = callPackage ../development/python-modules/namedlist { };
+  pylint-plugin-utils = callPackage ../development/python-modules/pylint-plugin-utils { };
 
-  nameparser = callPackage ../development/python-modules/nameparser { };
+  py-lru-cache = callPackage ../development/python-modules/py-lru-cache { };
 
-  names = callPackage ../development/python-modules/names { };
+  pylru = callPackage ../development/python-modules/pylru { };
 
-  nbclient = callPackage ../development/python-modules/nbclient { };
+  pyls-black = callPackage ../development/python-modules/pyls-black { };
 
-  nbconflux = callPackage ../development/python-modules/nbconflux { };
+  pyls-isort = callPackage ../development/python-modules/pyls-isort { };
 
-  nbconvert = callPackage ../development/python-modules/nbconvert { };
+  pyls-mypy = callPackage ../development/python-modules/pyls-mypy { };
 
-  nbformat = if isPy3k then
-    callPackage ../development/python-modules/nbformat { }
-  else callPackage ../development/python-modules/nbformat/2.nix { };
+  PyLTI = callPackage ../development/python-modules/pylti { };
 
-  nbmerge = callPackage ../development/python-modules/nbmerge { };
+  pymacaroons = callPackage ../development/python-modules/pymacaroons { };
 
-  nbdime = callPackage ../development/python-modules/nbdime { };
+  pymaging = callPackage ../development/python-modules/pymaging { };
 
-  nbxmpp = callPackage ../development/python-modules/nbxmpp { };
+  pymaging_png = callPackage ../development/python-modules/pymaging_png { };
 
-  sleekxmpp = callPackage ../development/python-modules/sleekxmpp { };
+  pymatgen = callPackage ../development/python-modules/pymatgen { };
 
-  slixmpp = callPackage ../development/python-modules/slixmpp {
-    inherit (pkgs) gnupg;
-  };
+  pymatgen-lammps = callPackage ../development/python-modules/pymatgen-lammps { };
 
-  netaddr = callPackage ../development/python-modules/netaddr { };
+  pymavlink = callPackage ../development/python-modules/pymavlink { };
 
-  netifaces = callPackage ../development/python-modules/netifaces { };
+  pymbolic = callPackage ../development/python-modules/pymbolic { };
 
-  hpack = callPackage ../development/python-modules/hpack { };
+  pymc3 = callPackage ../development/python-modules/pymc3 { };
 
-  nevow = callPackage ../development/python-modules/nevow { };
+  pymediainfo = callPackage ../development/python-modules/pymediainfo { };
 
-  nghttp2 = (toPythonModule (pkgs.nghttp2.override {
-    inherit (self) python cython setuptools;
-    inherit (pkgs) ncurses;
-    enablePython = true;
-  })).python;
+  pymeeus = callPackage ../development/python-modules/pymeeus { };
 
-  nibabel = callPackage ../development/python-modules/nibabel {};
+  pymemoize = callPackage ../development/python-modules/pymemoize { };
 
-  nidaqmx = callPackage ../development/python-modules/nidaqmx { };
+  pyment = callPackage ../development/python-modules/pyment { };
 
-  nilearn = callPackage ../development/python-modules/nilearn {};
+  pymetar = callPackage ../development/python-modules/pymetar { };
 
-  nimfa = callPackage ../development/python-modules/nimfa {};
+  pymetno = callPackage ../development/python-modules/pymetno { };
 
-  nipy = callPackage ../development/python-modules/nipy { };
+  pymongo = callPackage ../development/python-modules/pymongo { };
 
-  nipype = callPackage ../development/python-modules/nipype {
-    inherit (pkgs) which;
-  };
+  pympler = callPackage ../development/python-modules/pympler { };
 
-  nitime = callPackage ../development/python-modules/nitime { };
+  pymsgbox = callPackage ../development/python-modules/pymsgbox { };
 
-  nix-kernel = callPackage ../development/python-modules/nix-kernel {
-    inherit (pkgs) nix;
-  };
+  pymssql = throw "pymssql has been abandoned upstream."; # added 2020-05-04
 
-  nixpkgs = callPackage ../development/python-modules/nixpkgs { };
+  py-multibase = callPackage ../development/python-modules/py-multibase { };
 
-  nixpkgs-pytools = callPackage ../development/python-modules/nixpkgs-pytools { };
+  py-multihash = callPackage ../development/python-modules/py-multihash { };
 
-  nodeenv = callPackage ../development/python-modules/nodeenv { };
+  pymumble = callPackage ../development/python-modules/pymumble { };
 
-  nose = callPackage ../development/python-modules/nose { };
+  pymupdf = callPackage ../development/python-modules/pymupdf { };
 
-  nose-cov = callPackage ../development/python-modules/nose-cov { };
+  PyMVGLive = callPackage ../development/python-modules/pymvglive { };
 
-  nose-exclude = callPackage ../development/python-modules/nose-exclude { };
+  pymysql = callPackage ../development/python-modules/pymysql { };
 
-  nose-focus = callPackage ../development/python-modules/nose-focus { };
+  pymysqlsa = callPackage ../development/python-modules/pymysqlsa { };
 
-  nose-randomly = callPackage ../development/python-modules/nose-randomly { };
+  pymystem3 = callPackage ../development/python-modules/pymystem3 { };
 
-  nose2 = callPackage ../development/python-modules/nose2 { };
+  pynac = callPackage ../development/python-modules/pynac { };
 
-  nose-cover3 = callPackage ../development/python-modules/nose-cover3 { };
+  pynacl = callPackage ../development/python-modules/pynacl { };
 
-  nosexcover = callPackage ../development/python-modules/nosexcover { };
+  pynamecheap = callPackage ../development/python-modules/pynamecheap { };
 
-  nosejs = callPackage ../development/python-modules/nosejs { };
+  pynamodb = callPackage ../development/python-modules/pynamodb { };
 
-  nose-cprof = callPackage ../development/python-modules/nose-cprof { };
+  pynanoleaf = callPackage ../development/python-modules/pynanoleaf { };
 
-  nose-of-yeti = callPackage ../development/python-modules/nose-of-yeti { };
+  pync = callPackage ../development/python-modules/pync { };
 
-  nose-pattern-exclude = callPackage ../development/python-modules/nose-pattern-exclude { };
+  pynisher = callPackage ../development/python-modules/pynisher { };
 
-  nose_warnings_filters = callPackage ../development/python-modules/nose_warnings_filters { };
+  pynmea2 = callPackage ../development/python-modules/pynmea2 { };
 
-  notebook = if isPy3k then callPackage ../development/python-modules/notebook { }
-  else callPackage ../development/python-modules/notebook/2.nix { };
+  pynput = callPackage ../development/python-modules/pynput { };
 
-  notedown = callPackage ../development/python-modules/notedown { };
+  pynrrd = callPackage ../development/python-modules/pynrrd { };
 
-  notify = callPackage ../development/python-modules/notify { };
+  pynvim = callPackage ../development/python-modules/pynvim { };
 
-  notify2 = callPackage ../development/python-modules/notify2 {};
+  pynvml = callPackage ../development/python-modules/pynvml { };
 
-  notmuch = callPackage ../development/python-modules/notmuch {
-    inherit (pkgs) notmuch;
-  };
+  pynzb = callPackage ../development/python-modules/pynzb { };
 
-  emoji = callPackage ../development/python-modules/emoji { };
+  pyobjc = if stdenv.isDarwin then
+    callPackage ../development/python-modules/pyobjc { }
+  else
+    throw "pyobjc can only be built on Mac OS";
 
-  ntplib = callPackage ../development/python-modules/ntplib { };
+  pyocr = callPackage ../development/python-modules/pyocr { };
 
-  num2words = callPackage ../development/python-modules/num2words { };
+  pyodbc = callPackage ../development/python-modules/pyodbc { };
 
-  numba = callPackage ../development/python-modules/numba { };
+  pyogg = callPackage ../development/python-modules/pyogg { };
 
-  numcodecs = callPackage ../development/python-modules/numcodecs {
-    inherit (pkgs) gcc8;
-  };
+  pyomo = callPackage ../development/python-modules/pyomo { };
 
-  numexpr = callPackage ../development/python-modules/numexpr { };
+  pyopencl = callPackage ../development/python-modules/pyopencl { };
 
-  Nuitka = callPackage ../development/python-modules/nuitka { };
+  pyopengl = callPackage ../development/python-modules/pyopengl { };
 
-  numpy =
-    if pythonOlder "3.5" then
-      callPackage ../development/python-modules/numpy/1.16.nix { }
-    else
-      callPackage ../development/python-modules/numpy { };
+  pyopenssl = callPackage ../development/python-modules/pyopenssl { };
 
-  numpydoc = callPackage ../development/python-modules/numpydoc { };
+  pyosmium = callPackage ../development/python-modules/pyosmium { };
 
-  numpy-stl = callPackage ../development/python-modules/numpy-stl { };
+  pyotp = callPackage ../development/python-modules/pyotp { };
 
-  numtraits = callPackage ../development/python-modules/numtraits { };
+  pyowm = callPackage ../development/python-modules/pyowm { };
 
-  nwdiag = callPackage ../development/python-modules/nwdiag { };
+  pypamtest = pkgs.libpam-wrapper.override {
+    enablePython = true;
+    inherit python;
+  };
 
-  dynd = callPackage ../development/python-modules/dynd { };
+  pypandoc = callPackage ../development/python-modules/pypandoc { };
 
-  langcodes = callPackage ../development/python-modules/langcodes { };
+  pyparser = callPackage ../development/python-modules/pyparser { };
 
-  livestreamer = callPackage ../development/python-modules/livestreamer { };
+  pyparsing = callPackage ../development/python-modules/pyparsing { };
 
-  livestreamer-curses = callPackage ../development/python-modules/livestreamer-curses { };
+  pyparted = callPackage ../development/python-modules/pyparted { };
 
-  oauth = callPackage ../development/python-modules/oauth { };
+  pypcap = callPackage ../development/python-modules/pypcap { };
 
-  oauth2 = callPackage ../development/python-modules/oauth2 { };
+  pypdf2 = callPackage ../development/python-modules/pypdf2 { };
 
-  oauth2client = callPackage ../development/python-modules/oauth2client { };
+  pyPdf = callPackage ../development/python-modules/pypdf { };
 
-  oauthlib = if isPy27 then
-      callPackage ../development/python-modules/oauthlib/3.1.nix { }
-    else
-      callPackage ../development/python-modules/oauthlib { };
+  pypeg2 = callPackage ../development/python-modules/pypeg2 { };
 
-  obfsproxy = callPackage ../development/python-modules/obfsproxy { };
+  pyperclip = callPackage ../development/python-modules/pyperclip { };
 
-  objgraph = callPackage ../development/python-modules/objgraph {
-    graphvizPkg = pkgs.graphviz;
-  };
+  pyperf = callPackage ../development/python-modules/pyperf { };
 
-  offtrac = callPackage ../development/python-modules/offtrac { };
+  pyphen = callPackage ../development/python-modules/pyphen { };
 
-  openpyxl = if pythonAtLeast "3.6" then
-    callPackage ../development/python-modules/openpyxl { }
-  else
-    callPackage ../development/python-modules/openpyxl/2.nix { };
+  pyphotonfile = callPackage ../development/python-modules/pyphotonfile { };
 
-  opentimestamps = callPackage ../development/python-modules/opentimestamps { };
+  pypillowfight = callPackage ../development/python-modules/pypillowfight { };
 
-  ordereddict = callPackage ../development/python-modules/ordereddict { };
+  pyplatec = callPackage ../development/python-modules/pyplatec { };
 
-  od = callPackage ../development/python-modules/od { };
+  pypoppler = callPackage ../development/python-modules/pypoppler { };
 
-  omegaconf = callPackage ../development/python-modules/omegaconf { };
+  pyprind = callPackage ../development/python-modules/pyprind { };
 
-  opuslib = callPackage ../development/python-modules/opuslib { };
+  pyprof2calltree = callPackage ../development/python-modules/pyprof2calltree { };
 
-  orderedset = callPackage ../development/python-modules/orderedset { };
+  pyproj = callPackage ../development/python-modules/pyproj { };
 
-  python-multipart = callPackage ../development/python-modules/python-multipart { };
+  pyptlib = callPackage ../development/python-modules/pyptlib { };
 
-  python-otr = callPackage ../development/python-modules/python-otr { };
+  pypubsub = callPackage ../development/python-modules/pypubsub { };
 
-  plone-testing = callPackage ../development/python-modules/plone-testing { };
+  pyqrcode = callPackage ../development/python-modules/pyqrcode { };
 
-  ply = callPackage ../development/python-modules/ply { };
+  pyqt4 = callPackage ../development/python-modules/pyqt/4.x.nix { inherit (pkgs) pkgconfig; };
 
-  plyplus = callPackage ../development/python-modules/plyplus { };
+  pyqt5 = pkgs.libsForQt5.callPackage ../development/python-modules/pyqt/5.x.nix { pythonPackages = self; };
 
-  plyvel = callPackage ../development/python-modules/plyvel { };
+  pyqt5_with_qtmultimedia = self.pyqt5.override { withMultimedia = true; };
 
-  osc = callPackage ../development/python-modules/osc { };
+  /*
+    `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; };
 
-  rfc3986 = callPackage ../development/python-modules/rfc3986 { };
+  pyqtgraph = callPackage ../development/python-modules/pyqtgraph { };
 
-  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";
-      };
+  pyqtwebengine = pkgs.libsForQt5.callPackage ../development/python-modules/pyqtwebengine { pythonPackages = self; };
 
-    });
-  in if isPy3k then cachetools' else cachetools_2;
+  pyquery = callPackage ../development/python-modules/pyquery { };
 
-  cma = callPackage ../development/python-modules/cma { };
+  pyrabbit2 = callPackage ../development/python-modules/pyrabbit2 { };
 
-  cmd2 = callPackage ../development/python-modules/cmd2 {};
+  pyrad = callPackage ../development/python-modules/pyrad { };
 
-  warlock = callPackage ../development/python-modules/warlock { };
+  py-radix = callPackage ../development/python-modules/py-radix { };
 
-  pecan = callPackage ../development/python-modules/pecan { };
+  pyramid_beaker = callPackage ../development/python-modules/pyramid_beaker { };
 
-  kaitaistruct = callPackage ../development/python-modules/kaitaistruct { };
+  pyramid = callPackage ../development/python-modules/pyramid { };
 
-  Kajiki = callPackage ../development/python-modules/kajiki { };
+  pyramid_chameleon = callPackage ../development/python-modules/pyramid_chameleon { };
 
-  WSME = callPackage ../development/python-modules/WSME { };
+  pyramid_exclog = callPackage ../development/python-modules/pyramid_exclog { };
 
-  zake = callPackage ../development/python-modules/zake { };
+  pyramid_hawkauth = callPackage ../development/python-modules/pyramid_hawkauth { };
 
-  zarr = callPackage ../development/python-modules/zarr { };
+  pyramid_jinja2 = callPackage ../development/python-modules/pyramid_jinja2 { };
 
-  kazoo = callPackage ../development/python-modules/kazoo { };
+  pyramid_mako = callPackage ../development/python-modules/pyramid_mako { };
 
-  FormEncode = callPackage ../development/python-modules/FormEncode { };
+  pyramid_multiauth = callPackage ../development/python-modules/pyramid_multiauth { };
 
-  pycountry = callPackage ../development/python-modules/pycountry { };
+  pyreadability = callPackage ../development/python-modules/pyreadability { };
 
-  nine = callPackage ../development/python-modules/nine { };
+  pyrealsense2 = toPythonModule (pkgs.librealsense.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
 
-  logutils = callPackage ../development/python-modules/logutils { };
+  pyrealsense2WithCuda = toPythonModule (pkgs.librealsenseWithCuda.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
 
-  ldappool = callPackage ../development/python-modules/ldappool { };
+  pyrealsense2WithoutCuda = toPythonModule (pkgs.librealsenseWithoutCuda.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
 
-  retrying = callPackage ../development/python-modules/retrying { };
+  pyregion = callPackage ../development/python-modules/pyregion { };
 
-  fasteners = callPackage ../development/python-modules/fasteners { };
+  pyreport = callPackage ../development/python-modules/pyreport { };
 
-  aiocontextvars = callPackage ../development/python-modules/aiocontextvars { };
+  pyres = callPackage ../development/python-modules/pyres { };
 
-  aioeventlet = callPackage ../development/python-modules/aioeventlet { };
+  pyRFC3339 = callPackage ../development/python-modules/pyrfc3339 { };
 
-  aiokafka = callPackage ../development/python-modules/aiokafka { };
+  PyRMVtransport = callPackage ../development/python-modules/PyRMVtransport { };
 
-  olefile = callPackage ../development/python-modules/olefile { };
+  Pyro4 = callPackage ../development/python-modules/pyro4 { };
 
-  requests-mock = callPackage ../development/python-modules/requests-mock { };
+  Pyro5 = callPackage ../development/python-modules/pyro5 { };
 
-  mecab-python3 = callPackage ../development/python-modules/mecab-python3 { };
+  pyroma = callPackage ../development/python-modules/pyroma { };
 
-  mox3 = callPackage ../development/python-modules/mox3 { };
+  pyro-ppl = callPackage ../development/python-modules/pyro-ppl { };
 
-  doc8 = callPackage ../development/python-modules/doc8 { };
+  pyroute2 = callPackage ../development/python-modules/pyroute2 { };
 
-  wrapt = callPackage ../development/python-modules/wrapt { };
+  pyrr = callPackage ../development/python-modules/pyrr { };
 
-  pagerduty = callPackage ../development/python-modules/pagerduty { };
+  pyrsistent = callPackage ../development/python-modules/pyrsistent { };
 
-  pandas = if isPy3k then
-    callPackage ../development/python-modules/pandas { }
-  else
-    callPackage ../development/python-modules/pandas/2.nix { };
+  PyRSS2Gen = callPackage ../development/python-modules/pyrss2gen { };
 
-  panel = callPackage ../development/python-modules/panel { };
+  pyrtlsdr = callPackage ../development/python-modules/pyrtlsdr { };
 
-  xlrd = callPackage ../development/python-modules/xlrd { };
+  pysam = callPackage ../development/python-modules/pysam { };
 
-  bottleneck = callPackage ../development/python-modules/bottleneck { };
+  pysaml2 = callPackage ../development/python-modules/pysaml2 { inherit (pkgs) xmlsec; };
 
-  paho-mqtt = callPackage ../development/python-modules/paho-mqtt { };
+  pysc2 = callPackage ../development/python-modules/pysc2 { };
 
-  pagelabels = callPackage ../development/python-modules/pagelabels { };
+  pyscard = callPackage ../development/python-modules/pyscard { inherit (pkgs.darwin.apple_sdk.frameworks) PCSC; };
 
-  pamqp = callPackage ../development/python-modules/pamqp { };
+  pyschedule = callPackage ../development/python-modules/pyschedule { };
 
-  parsedatetime = callPackage ../development/python-modules/parsedatetime { };
+  pyscreenshot = callPackage ../development/python-modules/pyscreenshot { };
 
-  param = callPackage ../development/python-modules/param { };
+  py_scrypt = callPackage ../development/python-modules/py_scrypt { };
 
-  paramiko = callPackage ../development/python-modules/paramiko { };
+  pyscrypt = callPackage ../development/python-modules/pyscrypt { };
 
-  parameterized = callPackage ../development/python-modules/parameterized { };
+  pyscss = callPackage ../development/python-modules/pyscss { };
 
-  paramz = callPackage ../development/python-modules/paramz { };
+  pysdl2 = callPackage ../development/python-modules/pysdl2 { };
 
-  parfive = callPackage ../development/python-modules/parfive { };
+  pysendfile = callPackage ../development/python-modules/pysendfile { };
 
-  parsel = callPackage ../development/python-modules/parsel { };
+  pysensors = callPackage ../development/python-modules/pysensors { };
 
-  parso = callPackage ../development/python-modules/parso { };
+  pyserial-asyncio = callPackage ../development/python-modules/pyserial-asyncio { };
 
-  partd = callPackage ../development/python-modules/partd { };
+  pyserial = callPackage ../development/python-modules/pyserial { };
 
-  patch = callPackage ../development/python-modules/patch { };
+  pysftp = callPackage ../development/python-modules/pysftp { };
 
-  patch-ng = callPackage ../development/python-modules/patch-ng { };
+  pysha3 = callPackage ../development/python-modules/pysha3 { };
 
-  pathos = callPackage ../development/python-modules/pathos { };
+  pyshp = callPackage ../development/python-modules/pyshp { };
 
-  patsy = callPackage ../development/python-modules/patsy { };
+  pyside2-tools =
+    toPythonModule (callPackage ../development/python-modules/pyside2-tools { inherit (pkgs) cmake qt5; });
 
-  paste = callPackage ../development/python-modules/paste { };
+  pyside2 = toPythonModule (callPackage ../development/python-modules/pyside2 { inherit (pkgs) cmake qt5 ninja; });
 
-  PasteDeploy = callPackage ../development/python-modules/pastedeploy { };
+  pyside = callPackage ../development/python-modules/pyside { inherit (pkgs) mesa; };
 
-  pasteScript = callPackage ../development/python-modules/pastescript { };
+  pysideShiboken = callPackage ../development/python-modules/pyside/shiboken.nix { inherit (pkgs) libxml2 libxslt; };
 
-  patator = callPackage ../development/python-modules/patator { };
+  pysideTools = callPackage ../development/python-modules/pyside/tools.nix { };
 
-  pathlib2 = callPackage ../development/python-modules/pathlib2 { };
+  pysigset = callPackage ../development/python-modules/pysigset { };
 
-  pathpy = if isPy3k then
-    callPackage ../development/python-modules/path.py { }
-  else
-    callPackage ../development/python-modules/path.py/2.nix { };
+  pysingleton = callPackage ../development/python-modules/pysingleton { };
 
-  paypalrestsdk = callPackage ../development/python-modules/paypalrestsdk { };
+  pyslurm = callPackage ../development/python-modules/pyslurm { slurm = pkgs.slurm; };
 
-  pbr = callPackage ../development/python-modules/pbr { };
+  pysmb = callPackage ../development/python-modules/pysmb { };
 
-  fixtures = callPackage ../development/python-modules/fixtures { };
+  pysmbc = callPackage ../development/python-modules/pysmbc { inherit (pkgs) pkgconfig; };
 
-  fipy = callPackage ../development/python-modules/fipy { };
+  pysmf = callPackage ../development/python-modules/pysmf { };
 
-  sfepy = callPackage ../development/python-modules/sfepy { };
+  pysmi = callPackage ../development/python-modules/pysmi { };
 
-  pelican = callPackage ../development/python-modules/pelican {
-    inherit (pkgs) glibcLocales git;
-  };
+  pysnmp = callPackage ../development/python-modules/pysnmp { };
 
-  pep8 = callPackage ../development/python-modules/pep8 { };
+  pysnooper = callPackage ../development/python-modules/pysnooper { };
 
-  pep8-naming = callPackage ../development/python-modules/pep8-naming { };
+  pysnow = callPackage ../development/python-modules/pysnow { };
 
-  pep257 = callPackage ../development/python-modules/pep257 { };
+  pysocks = callPackage ../development/python-modules/pysocks { };
 
-  pep517 = callPackage ../development/python-modules/pep517 { };
+  pysolr = callPackage ../development/python-modules/pysolr { };
 
-  percol = callPackage ../development/python-modules/percol { };
+  pysonos = callPackage ../development/python-modules/pysonos { };
 
-  pexif = callPackage ../development/python-modules/pexif { };
+  pysoundfile = self.soundfile; # Alias added 23-06-2019
 
-  pexpect = callPackage ../development/python-modules/pexpect { };
+  pyspark = callPackage ../development/python-modules/pyspark { };
 
-  pdfkit = callPackage ../development/python-modules/pdfkit { };
+  pysparse = callPackage ../development/python-modules/pysparse { };
 
-  pdfrw = callPackage ../development/python-modules/pdfrw { };
+  pyspf = callPackage ../development/python-modules/pyspf { };
 
-  periodictable = callPackage ../development/python-modules/periodictable { };
+  pyspinel = callPackage ../development/python-modules/pyspinel { };
 
-  pgcli = callPackage ../development/tools/database/pgcli {};
+  pyspotify = callPackage ../development/python-modules/pyspotify { };
 
-  pg8000 = callPackage ../development/python-modules/pg8000 { };
-  pg8000_1_12 = callPackage ../development/python-modules/pg8000/1_12.nix { };
+  pyspread = callPackage ../development/python-modules/pyspread { };
 
-  pglast = callPackage ../development/python-modules/pglast { };
+  pysptk = callPackage ../development/python-modules/pysptk { };
 
-  pgsanity = callPackage ../development/python-modules/pgsanity { };
+  pysqlite = callPackage ../development/python-modules/pysqlite { };
 
-  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 { };
 
-  psd-tools = callPackage ../development/python-modules/psd-tools { };
+  pytest-helpers-namespace = callPackage ../development/python-modules/pytest-helpers-namespace { };
 
-  psutil = callPackage ../development/python-modules/psutil { };
+  pytest-html = callPackage ../development/python-modules/pytest-html { };
 
-  psycopg2 = callPackage ../development/python-modules/psycopg2 {};
+  pytest-httpbin = callPackage ../development/python-modules/pytest-httpbin { };
 
-  ptpython = callPackage ../development/python-modules/ptpython {
-    prompt_toolkit = self.prompt_toolkit;
-  };
+  pytest-isort = callPackage ../development/python-modules/pytest-isort { };
 
-  ptable = callPackage ../development/python-modules/ptable { };
+  pytest-lazy-fixture = callPackage ../development/python-modules/pytest-lazy-fixture { };
 
-  publicsuffix = callPackage ../development/python-modules/publicsuffix {};
+  pytest-localserver = callPackage ../development/python-modules/pytest-localserver { };
 
-  publicsuffix2 = callPackage ../development/python-modules/publicsuffix2 {};
+  pytest-metadata = callPackage ../development/python-modules/pytest-metadata { };
 
-  py = callPackage ../development/python-modules/py { };
+  pytest-mock = if isPy3k then
+    callPackage ../development/python-modules/pytest-mock { }
+  else
+    callPackage ../development/python-modules/pytest-mock/2.nix { };
 
-  pyacoustid = callPackage ../development/python-modules/pyacoustid { };
+  pytest-mpl = callPackage ../development/python-modules/pytest-mpl { };
 
-  pyalgotrade = callPackage ../development/python-modules/pyalgotrade { };
+  pytest-mypy = callPackage ../development/python-modules/pytest-mypy { };
 
-  pyasn1 = callPackage ../development/python-modules/pyasn1 { };
+  pytest-openfiles = callPackage ../development/python-modules/pytest-openfiles { };
 
-  pyasn1-modules = callPackage ../development/python-modules/pyasn1-modules { };
+  pytest-ordering = callPackage ../development/python-modules/pytest-ordering { };
 
-  pyatmo = callPackage ../development/python-modules/pyatmo { };
+  pytest-pep257 = callPackage ../development/python-modules/pytest-pep257 { };
 
-  pyaudio = callPackage ../development/python-modules/pyaudio { };
+  pytestpep8 = callPackage ../development/python-modules/pytest-pep8 { };
 
-  pycoin = callPackage ../development/python-modules/pycoin { };
+  pytest-pylint = callPackage ../development/python-modules/pytest-pylint { };
 
-  pysam = callPackage ../development/python-modules/pysam { };
+  pytest-pythonpath = callPackage ../development/python-modules/pytest-pythonpath { };
 
-  pysaml2 = callPackage ../development/python-modules/pysaml2 {
-    inherit (pkgs) xmlsec;
-  };
+  pytest-qt = callPackage ../development/python-modules/pytest-qt { };
 
-  python-pushover = callPackage ../development/python-modules/pushover {};
+  pytestquickcheck = callPackage ../development/python-modules/pytest-quickcheck { };
 
-  pystemd = callPackage ../development/python-modules/pystemd { systemd = pkgs.systemd; };
+  pytest-raisesregexp = callPackage ../development/python-modules/pytest-raisesregexp { };
 
-  mongodict = callPackage ../development/python-modules/mongodict { };
+  pytest-randomly = callPackage ../development/python-modules/pytest-randomly { };
 
-  mongoengine = callPackage ../development/python-modules/mongoengine { };
+  pytest-random-order = callPackage ../development/python-modules/pytest-random-order { };
 
-  repoze_who = callPackage ../development/python-modules/repoze_who { };
+  pytest-relaxed = callPackage ../development/python-modules/pytest-relaxed { };
 
-  vobject = callPackage ../development/python-modules/vobject { };
+  pytest-remotedata = callPackage ../development/python-modules/pytest-remotedata { };
 
-  pycarddav = callPackage ../development/python-modules/pycarddav { };
+  pytest-repeat = callPackage ../development/python-modules/pytest-repeat { };
 
-  pygit2 = callPackage ../development/python-modules/pygit2 { };
+  pytest-rerunfailures = callPackage ../development/python-modules/pytest-rerunfailures { };
 
-  Babel = callPackage ../development/python-modules/Babel { };
+  pytestrunner = callPackage ../development/python-modules/pytestrunner { };
 
-  babelgladeextractor = callPackage ../development/python-modules/babelgladeextractor { };
+  pytest-sanic = callPackage ../development/python-modules/pytest-sanic { };
 
-  batchspawner = callPackage ../development/python-modules/batchspawner { };
+  pytest-server-fixtures = callPackage ../development/python-modules/pytest-server-fixtures { };
 
-  pybigwig = callPackage ../development/python-modules/pybigwig { };
+  pytest-services = callPackage ../development/python-modules/pytest-services { };
 
-  py2bit = callPackage ../development/python-modules/py2bit { };
+  pytest-shutil = callPackage ../development/python-modules/pytest-shutil { };
 
-  pyblock = callPackage ../development/python-modules/pyblock { };
+  pytest-socket = callPackage ../development/python-modules/pytest-socket { };
 
-  pyblosxom = callPackage ../development/python-modules/pyblosxom { };
+  pytest-subtesthack = callPackage ../development/python-modules/pytest-subtesthack { };
 
-  pycapnp = callPackage ../development/python-modules/pycapnp { };
+  pytest-sugar = callPackage ../development/python-modules/pytest-sugar { };
 
-  pycaption = callPackage ../development/python-modules/pycaption { };
+  pytest-testmon = callPackage ../development/python-modules/pytest-testmon { };
 
-  pycdio = callPackage ../development/python-modules/pycdio { };
+  pytest-timeout = callPackage ../development/python-modules/pytest-timeout { };
 
-  pycosat = callPackage ../development/python-modules/pycosat { };
+  pytest-tornado = callPackage ../development/python-modules/pytest-tornado { };
 
-  pycryptopp = callPackage ../development/python-modules/pycryptopp { };
+  pytest-tornasync = callPackage ../development/python-modules/pytest-tornasync { };
 
-  pyct = callPackage ../development/python-modules/pyct { };
+  pytest-trio = callPackage ../development/python-modules/pytest-trio { };
 
-  pycups = callPackage ../development/python-modules/pycups { };
+  pytest-twisted = callPackage ../development/python-modules/pytest-twisted { };
 
-  pycurl = callPackage ../development/python-modules/pycurl { };
+  pytest-virtualenv = callPackage ../development/python-modules/pytest-virtualenv { };
 
-  pycurl2 = callPackage ../development/python-modules/pycurl2 { };
+  pytest-warnings = callPackage ../development/python-modules/pytest-warnings { };
 
-  pydispatcher = callPackage ../development/python-modules/pydispatcher { };
+  pytest-watch = callPackage ../development/python-modules/pytest-watch { };
 
-  pydot = callPackage ../development/python-modules/pydot {
-    inherit (pkgs) graphviz;
-  };
+  pytest_xdist_1 = callPackage ../development/python-modules/pytest-xdist { };
 
-  pydot_ng = callPackage ../development/python-modules/pydot_ng { graphviz = pkgs.graphviz; };
+  pytest_xdist_2 = callPackage ../development/python-modules/pytest-xdist/2.nix { };
 
-  pyelftools = callPackage ../development/python-modules/pyelftools { };
+  pytest_xdist = self.pytest_xdist_1;
 
-  pyenchant = callPackage ../development/python-modules/pyenchant { enchant2 = pkgs.enchant2; };
+  pytest-xprocess = callPackage ../development/python-modules/pytest-xprocess { };
 
-  pyexcel = callPackage ../development/python-modules/pyexcel { };
+  pytest-xvfb = callPackage ../development/python-modules/pytest-xvfb { };
 
-  pyexcel-io = callPackage ../development/python-modules/pyexcel-io { };
+  python2-pythondialog = callPackage ../development/python-modules/python2-pythondialog { };
 
-  pyexcel-xls = callPackage ../development/python-modules/pyexcel-xls { };
+  python3-openid = callPackage ../development/python-modules/python3-openid { };
 
-  pyexcel-ods = callPackage ../development/python-modules/pyexcel-ods { };
+  python-axolotl = callPackage ../development/python-modules/python-axolotl { };
 
-  pyexcelerator = callPackage ../development/python-modules/pyexcelerator { };
+  python-axolotl-curve25519 = callPackage ../development/python-modules/python-axolotl-curve25519 { };
 
-  pyext = callPackage ../development/python-modules/pyext { };
+  python-baseconv = callPackage ../development/python-modules/python-baseconv { };
 
-  pyface = callPackage ../development/python-modules/pyface { };
+  python-binance = callPackage ../development/python-modules/python-binance { };
 
-  pyfantom = callPackage ../development/python-modules/pyfantom { };
+  python-constraint = callPackage ../development/python-modules/python-constraint { };
 
-  pyfma = callPackage ../development/python-modules/pyfma { };
+  python-ctags3 = callPackage ../development/python-modules/python-ctags3 { };
 
-  pyfftw = callPackage ../development/python-modules/pyfftw { };
+  python-daemon = callPackage ../development/python-modules/python-daemon { };
 
-  pyfiglet = callPackage ../development/python-modules/pyfiglet { };
+  python-dateutil = callPackage ../development/python-modules/dateutil { };
+  # Alias that we should deprecate
+  dateutil = self.python-dateutil;
 
-  pyflakes = callPackage ../development/python-modules/pyflakes { };
+  python-dbusmock = callPackage ../development/python-modules/python-dbusmock { };
 
-  pyftgl = callPackage ../development/python-modules/pyftgl { };
+  pythondialog = callPackage ../development/python-modules/pythondialog { };
 
-  pygeoip = callPackage ../development/python-modules/pygeoip {};
+  python-didl-lite = callPackage ../development/python-modules/python-didl-lite { };
 
-  PyGithub = callPackage ../development/python-modules/pyGithub {};
+  python-docx = callPackage ../development/python-modules/python-docx { };
 
-  pyglet = callPackage ../development/python-modules/pyglet {};
+  python-doi = callPackage ../development/python-modules/python-doi { };
 
-  pygments = if isPy3k then
-    callPackage ../development/python-modules/Pygments { }
-  else
-    callPackage ../development/python-modules/Pygments/2_5.nix { };
+  python-dotenv = callPackage ../development/python-modules/python-dotenv { };
 
-  pygpgme = callPackage ../development/python-modules/pygpgme { };
+  python-editor = callPackage ../development/python-modules/python-editor { };
 
-  pyment = callPackage ../development/python-modules/pyment { };
+  pythonefl = callPackage ../development/python-modules/python-efl { inherit (pkgs) pkgconfig; };
 
-  pylint = if isPy3k then callPackage ../development/python-modules/pylint { }
-           else callPackage ../development/python-modules/pylint/1.9.nix { };
+  python-engineio = callPackage ../development/python-modules/python-engineio { };
 
-  pylint-celery = callPackage ../development/python-modules/pylint-celery { };
+  python-etcd = callPackage ../development/python-modules/python-etcd { };
 
-  pylint-django = callPackage ../development/python-modules/pylint-django { };
+  python_fedora = callPackage ../development/python-modules/python_fedora { };
 
-  pylint-flask = callPackage ../development/python-modules/pylint-flask { };
+  python-fontconfig = callPackage ../development/python-modules/python-fontconfig { };
 
-  pylint-plugin-utils = callPackage ../development/python-modules/pylint-plugin-utils { };
+  python-forecastio = callPackage ../development/python-modules/python-forecastio { };
 
-  pymumble = callPackage ../development/python-modules/pymumble { };
+  python-gitlab = callPackage ../development/python-modules/python-gitlab { };
 
-  pyomo = callPackage ../development/python-modules/pyomo { };
+  python-gnupg = callPackage ../development/python-modules/python-gnupg { };
 
-  pyopencl = callPackage ../development/python-modules/pyopencl { };
+  python-hosts = callPackage ../development/python-modules/python-hosts { };
 
-  pyosmium = callPackage ../development/python-modules/pyosmium { };
+  python-igraph = callPackage ../development/python-modules/python-igraph {
+    pkgconfig = pkgs.pkgconfig;
+    igraph = pkgs.igraph;
+  };
 
-  pyotp = callPackage ../development/python-modules/pyotp { };
+  pythonIRClib = callPackage ../development/python-modules/pythonirclib { };
 
-  pyproj = callPackage ../development/python-modules/pyproj { };
+  pythonix = callPackage ../development/python-modules/pythonix { inherit (pkgs) meson pkgconfig; };
 
-  pyqrcode = callPackage ../development/python-modules/pyqrcode { };
+  python-jenkins = callPackage ../development/python-modules/python-jenkins { };
 
-  pyrabbit2 = callPackage ../development/python-modules/pyrabbit2 { };
+  python-jose = callPackage ../development/python-modules/python-jose { };
 
-  pyrad = callPackage ../development/python-modules/pyrad { };
+  python-json-logger = callPackage ../development/python-modules/python-json-logger { };
 
-  pyrr = callPackage ../development/python-modules/pyrr { };
+  python-jsonrpc-server = callPackage ../development/python-modules/python-jsonrpc-server { };
 
-  pysha3 = callPackage ../development/python-modules/pysha3 { };
+  python_keyczar = callPackage ../development/python-modules/python_keyczar { };
 
-  pyshp = callPackage ../development/python-modules/pyshp { };
+  python-language-server = callPackage ../development/python-modules/python-language-server { };
 
-  pysnow = callPackage ../development/python-modules/pysnow { };
+  python-ldap-test = callPackage ../development/python-modules/python-ldap-test { };
 
-  pysmbc = callPackage ../development/python-modules/pysmbc {
-    inherit (pkgs) pkgconfig;
-  };
+  python-Levenshtein = callPackage ../development/python-modules/python-levenshtein { };
 
-  pyspread = callPackage ../development/python-modules/pyspread { };
+  python-libarchive = callPackage ../development/python-modules/python-libarchive { };
 
-  pysparse = callPackage ../development/python-modules/pysparse { };
+  python-logstash = callPackage ../development/python-modules/python-logstash { };
 
-  pyupdate = callPackage ../development/python-modules/pyupdate {};
+  python-ly = callPackage ../development/python-modules/python-ly { };
 
-  pyvmomi = callPackage ../development/python-modules/pyvmomi { };
+  python-lz4 = callPackage ../development/python-modules/python-lz4 { };
 
-  pyx = callPackage ../development/python-modules/pyx { };
+  python-lzf = callPackage ../development/python-modules/python-lzf { };
 
-  mmpython = callPackage ../development/python-modules/mmpython { };
+  python-lzo = callPackage ../development/python-modules/python-lzo { inherit (pkgs) lzo; };
 
-  kaa-base = callPackage ../development/python-modules/kaa-base { };
+  python_magic = callPackage ../development/python-modules/python-magic { };
 
-  kaa-metadata = callPackage ../development/python-modules/kaa-metadata { };
+  pythonmagick = callPackage ../development/python-modules/pythonmagick { };
 
-  PyICU = callPackage ../development/python-modules/pyicu { };
+  python-mapnik = callPackage ../development/python-modules/python-mapnik { };
 
-  pyinputevent = callPackage ../development/python-modules/pyinputevent { };
+  python-markdown-math = callPackage ../development/python-modules/python-markdown-math { };
 
-  pyinotify = callPackage ../development/python-modules/pyinotify { };
+  python-miio = callPackage ../development/python-modules/python-miio { };
 
-  pyipp = callPackage ../development/python-modules/pyipp { };
+  python_mimeparse = callPackage ../development/python-modules/python_mimeparse { };
 
-  pyjwt = callPackage ../development/python-modules/pyjwt { };
+  python-mnist = callPackage ../development/python-modules/python-mnist { };
 
-  pykickstart = callPackage ../development/python-modules/pykickstart { };
+  python-mpv-jsonipc = callPackage ../development/python-modules/python-mpv-jsonipc { };
 
-  pymemoize = callPackage ../development/python-modules/pymemoize { };
+  python-multipart = callPackage ../development/python-modules/python-multipart { };
 
-  pyobjc = if stdenv.isDarwin
-    then callPackage ../development/python-modules/pyobjc {}
-    else throw "pyobjc can only be built on Mac OS";
+  pythonnet = callPackage
+    ../development/python-modules/pythonnet { # `mono >= 4.6` required to prevent crashes encountered with earlier versions.
+      mono = pkgs.mono4;
+      inherit (pkgs) pkgconfig;
+    };
 
-  pyodbc = callPackage ../development/python-modules/pyodbc { };
+  python-nomad = callPackage ../development/python-modules/python-nomad { };
 
-  pyocr = callPackage ../development/python-modules/pyocr { };
+  python-oauth2 = callPackage ../development/python-modules/python-oauth2 { };
 
-  pyparsing = callPackage ../development/python-modules/pyparsing { };
+  pythonocc-core =
+    toPythonModule (callPackage ../development/python-modules/pythonocc-core { inherit (pkgs.xorg) libX11; });
 
-  pyparted = callPackage ../development/python-modules/pyparted { };
+  python-olm = callPackage ../development/python-modules/python-olm { };
 
-  pyptlib = callPackage ../development/python-modules/pyptlib { };
+  python_openzwave = callPackage ../development/python-modules/python_openzwave { inherit (pkgs) pkgconfig; };
 
-  pyqtgraph = callPackage ../development/python-modules/pyqtgraph { };
+  python-otr = callPackage ../development/python-modules/python-otr { };
 
-  PyStemmer = callPackage ../development/python-modules/pystemmer {};
+  python-packer = callPackage ../development/python-modules/python-packer { };
 
-  # Missing expression?
-  # Pyro = callPackage ../development/python-modules/pyro { };
+  python-pam = callPackage ../development/python-modules/python-pam { };
 
-  pyrsistent = callPackage ../development/python-modules/pyrsistent { };
+  python-periphery = callPackage ../development/python-modules/python-periphery { };
 
-  PyRSS2Gen = callPackage ../development/python-modules/pyrss2gen { };
+  python-pipedrive = callPackage ../development/python-modules/python-pipedrive { };
 
-  pysmi = callPackage ../development/python-modules/pysmi { };
+  python-prctl = callPackage ../development/python-modules/python-prctl { };
 
-  pysnmp = callPackage ../development/python-modules/pysnmp { };
+  python-ptrace = callPackage ../development/python-modules/python-ptrace { };
 
-  pysocks = callPackage ../development/python-modules/pysocks { };
+  python-pushover = callPackage ../development/python-modules/pushover { };
 
-  python_fedora = callPackage ../development/python-modules/python_fedora {};
+  python-rapidjson = callPackage ../development/python-modules/python-rapidjson { };
 
-  python-simple-hipchat = callPackage ../development/python-modules/python-simple-hipchat {};
-  python_simple_hipchat = self.python-simple-hipchat;
+  python-redis-lock = callPackage ../development/python-modules/python-redis-lock { };
 
-  scs = callPackage ../development/python-modules/scs { scs = pkgs.scs; };
+  python-rtmidi = callPackage ../development/python-modules/python-rtmidi { };
 
-  python_keyczar = callPackage ../development/python-modules/python_keyczar { };
+  python-simple-hipchat = callPackage ../development/python-modules/python-simple-hipchat { };
+  python_simple_hipchat = self.python-simple-hipchat;
 
-  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;
@@ -5869,68 +5843,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;
 
@@ -5942,792 +5897,675 @@ 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 { };
+  quamash = callPackage ../development/python-modules/quamash { };
 
-  rcssmin = callPackage ../development/python-modules/rcssmin { };
+  quandl = callPackage ../development/python-modules/quandl { };
 
-  recommonmark = callPackage ../development/python-modules/recommonmark { };
+  Quandl =
+    callPackage ../development/python-modules/quandl { }; # alias for an older package which did not support Python 3
 
-  redis = callPackage ../development/python-modules/redis { };
+  quantities = callPackage ../development/python-modules/quantities { };
 
-  rednose = callPackage ../development/python-modules/rednose { };
+  querystring_parser = callPackage ../development/python-modules/querystring-parser { };
 
-  reikna = callPackage ../development/python-modules/reikna { };
+  queuelib = callPackage ../development/python-modules/queuelib { };
 
-  repocheck = callPackage ../development/python-modules/repocheck { };
+  qutip = callPackage ../development/python-modules/qutip { };
 
-  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 { };
 
@@ -6735,1146 +6573,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 { };
+  sphinxcontrib-websupport = if isPy3k then
+    callPackage ../development/python-modules/sphinxcontrib-websupport { }
+  else
+    callPackage ../development/python-modules/sphinxcontrib-websupport/1_1.nix { };
 
-  stompclient = callPackage ../development/python-modules/stompclient { };
+  sphinx = if isPy3k then
+    callPackage ../development/python-modules/sphinx { }
+  else
+    callPackage ../development/python-modules/sphinx/2.nix { };
 
-  subdownloader = callPackage ../development/python-modules/subdownloader { };
+  sphinx-jinja = callPackage ../development/python-modules/sphinx-jinja { };
 
-  subunit = callPackage ../development/python-modules/subunit {
-    inherit (pkgs) subunit pkg-config cppunit check;
-  };
+  sphinx-navtree = callPackage ../development/python-modules/sphinx-navtree { };
 
-  sure = callPackage ../development/python-modules/sure { };
+  sphinx_pypi_upload = callPackage ../development/python-modules/sphinx_pypi_upload { };
 
-  svgwrite = callPackage ../development/python-modules/svgwrite { };
+  sphinx_rtd_theme = callPackage ../development/python-modules/sphinx_rtd_theme { };
 
-  swagger-spec-validator = callPackage ../development/python-modules/swagger-spec-validator { };
+  sphinx-testing = callPackage ../development/python-modules/sphinx-testing { };
 
-  openapi-spec-validator = callPackage ../development/python-modules/openapi-spec-validator { };
+  spidev = callPackage ../development/python-modules/spidev { };
 
-  freezegun = callPackage ../development/python-modules/freezegun { };
+  splinter = callPackage ../development/python-modules/splinter { };
 
-  taskw = callPackage ../development/python-modules/taskw { };
+  spotipy = callPackage ../development/python-modules/spotipy { };
 
-  telethon = callPackage ../development/python-modules/telethon { };
+  spyder = callPackage ../development/python-modules/spyder { };
+  spyder_3 = callPackage ../development/python-modules/spyder/3.nix { };
 
-  telethon-session-sqlalchemy = callPackage ../development/python-modules/telethon-session-sqlalchemy { };
+  spyder-kernels = callPackage ../development/python-modules/spyder-kernels { };
+  spyder-kernels_0_5 = callPackage ../development/python-modules/spyder-kernels/0.x.nix { };
 
-  terminaltables = callPackage ../development/python-modules/terminaltables { };
+  sqlalchemy = callPackage ../development/python-modules/sqlalchemy { };
 
-  test-tube = callPackage ../development/python-modules/test-tube { };
+  sqlalchemy-citext = callPackage ../development/python-modules/sqlalchemy-citext { };
 
-  testpath = callPackage ../development/python-modules/testpath { };
+  sqlalchemy-continuum = callPackage ../development/python-modules/sqlalchemy-continuum { };
 
-  testrepository = callPackage ../development/python-modules/testrepository { };
+  sqlalchemy-i18n = callPackage ../development/python-modules/sqlalchemy-i18n { };
 
-  testscenarios = callPackage ../development/python-modules/testscenarios { };
+  SQLAlchemy-ImageAttach = callPackage ../development/python-modules/sqlalchemy-imageattach { };
 
-  python_mimeparse = callPackage ../development/python-modules/python_mimeparse { };
+  sqlalchemy_migrate = callPackage ../development/python-modules/sqlalchemy-migrate { };
 
-  # 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-utils = callPackage ../development/python-modules/sqlalchemy-utils { };
 
-  tlslite-ng = callPackage ../development/python-modules/tlslite-ng { };
+  sqlite3dbm = callPackage ../development/python-modules/sqlite3dbm { };
 
-  qrcode = callPackage ../development/python-modules/qrcode { };
+  sqlitedict = callPackage ../development/python-modules/sqlitedict { };
 
-  traits = callPackage ../development/python-modules/traits { };
+  sqlmap = callPackage ../development/python-modules/sqlmap { };
 
-  transmissionrpc = callPackage ../development/python-modules/transmissionrpc { };
+  sqlobject = callPackage ../development/python-modules/sqlobject { };
 
-  eggdeps = callPackage ../development/python-modules/eggdeps { };
+  sqlparse = callPackage ../development/python-modules/sqlparse { };
 
-  twiggy = callPackage ../development/python-modules/twiggy { };
+  sqlsoup = callPackage ../development/python-modules/sqlsoup { };
 
-  twitter = callPackage ../development/python-modules/twitter { };
+  squaremap = callPackage ../development/python-modules/squaremap { };
 
-  twitter-common-collections = callPackage ../development/python-modules/twitter-common-collections { };
+  srp = callPackage ../development/python-modules/srp { };
 
-  twitter-common-confluence = callPackage ../development/python-modules/twitter-common-confluence { };
+  srptools = callPackage ../development/python-modules/srptools { };
 
-  twitter-common-dirutil = callPackage ../development/python-modules/twitter-common-dirutil { };
+  srsly = callPackage ../development/python-modules/srsly { };
 
-  twitter-common-lang = callPackage ../development/python-modules/twitter-common-lang { };
+  srvlookup = callPackage ../development/python-modules/srvlookup { };
 
-  twitter-common-log = callPackage ../development/python-modules/twitter-common-log { };
+  ssdeep = callPackage ../development/python-modules/ssdeep { };
 
-  twitter-common-options = callPackage ../development/python-modules/twitter-common-options { };
+  ssdp = callPackage ../development/python-modules/ssdp { };
 
-  python-twitter = callPackage ../development/python-modules/python-twitter { };
+  sseclient = callPackage ../development/python-modules/sseclient { };
 
-  umalqurra = callPackage ../development/python-modules/umalqurra { };
+  sshpubkeys = callPackage ../development/python-modules/sshpubkeys { };
 
-  unicodecsv = callPackage ../development/python-modules/unicodecsv { };
+  sshtunnel = callPackage ../development/python-modules/sshtunnel { };
 
-  unicode-slugify = callPackage ../development/python-modules/unicode-slugify { };
+  sslib = callPackage ../development/python-modules/sslib { };
 
-  unidiff = callPackage ../development/python-modules/unidiff { };
+  sslyze = callPackage ../development/python-modules/sslyze { };
 
-  units = callPackage ../development/python-modules/units { };
+  starfish = callPackage ../development/python-modules/starfish { };
 
-  unittest-data-provider = callPackage ../development/python-modules/unittest-data-provider { };
+  starlette = callPackage ../development/python-modules/starlette { };
 
-  unittest2 = callPackage ../development/python-modules/unittest2 { };
+  staticjinja = callPackage ../development/python-modules/staticjinja { };
 
-  unittest-xml-reporting = callPackage ../development/python-modules/unittest-xml-reporting { };
+  statistics = callPackage ../development/python-modules/statistics { };
 
-  untangle = callPackage ../development/python-modules/untangle { };
+  statsd = callPackage ../development/python-modules/statsd { };
 
-  traceback2 = callPackage ../development/python-modules/traceback2 { };
+  statsmodels = callPackage ../development/python-modules/statsmodels { };
 
-  trackpy = callPackage ../development/python-modules/trackpy { };
+  stem = callPackage ../development/python-modules/stem { };
 
-  linecache2 = callPackage ../development/python-modules/linecache2 { };
+  stevedore = callPackage ../development/python-modules/stevedore { };
 
-  upass = callPackage ../development/python-modules/upass { };
+  stm32loader = callPackage ../development/python-modules/stm32loader { };
 
-  uptime = callPackage ../development/python-modules/uptime { };
+  stompclient = callPackage ../development/python-modules/stompclient { };
 
-  urwidtrees = callPackage ../development/python-modules/urwidtrees { };
+  strategies = callPackage ../development/python-modules/strategies { };
 
-  pyuv = callPackage ../development/python-modules/pyuv { };
+  stravalib = callPackage ../development/python-modules/stravalib { };
 
-  virtualenv-clone = callPackage ../development/python-modules/virtualenv-clone { };
+  streamz = callPackage ../development/python-modules/streamz { };
 
-  virtualenvwrapper = callPackage ../development/python-modules/virtualenvwrapper { };
+  strict-rfc3339 = callPackage ../development/python-modules/strict-rfc3339 { };
 
-  vmprof = callPackage ../development/python-modules/vmprof { };
+  strictyaml = callPackage ../development/python-modules/strictyaml { };
 
-  vultr = callPackage ../development/python-modules/vultr { };
+  stringcase = callPackage ../development/python-modules/stringcase { };
 
-  vulture = callPackage ../development/python-modules/vulture { };
+  stripe = callPackage ../development/python-modules/stripe { };
 
-  wadllib = callPackage ../development/python-modules/wadllib { };
+  structlog = callPackage ../development/python-modules/structlog { };
 
-  waitress = callPackage ../development/python-modules/waitress { };
+  stumpy = callPackage ../development/python-modules/stumpy { };
 
-  waitress-django = callPackage ../development/python-modules/waitress-django { };
+  stups-cli-support = callPackage ../development/python-modules/stups-cli-support { };
 
-  web = callPackage ../development/python-modules/web { };
+  stups-fullstop = callPackage ../development/python-modules/stups-fullstop { };
 
-  webob = callPackage ../development/python-modules/webob { };
+  stups-pierone = callPackage ../development/python-modules/stups-pierone { };
 
-  websockify = callPackage ../development/python-modules/websockify { };
+  stups-tokens = callPackage ../development/python-modules/stups-tokens { };
 
-  webtest = callPackage ../development/python-modules/webtest { };
+  stups-zign = callPackage ../development/python-modules/stups-zign { };
 
-  wsgiproxy2 = callPackage ../development/python-modules/wsgiproxy2 { };
+  stytra = callPackage ../development/python-modules/stytra { };
 
-  wsgitools = callPackage ../development/python-modules/wsgitools { };
+  subdownloader = callPackage ../development/python-modules/subdownloader { };
 
-  wurlitzer = callPackage ../development/python-modules/wurlitzer { };
+  subliminal = callPackage ../development/python-modules/subliminal { };
 
-  xcaplib = callPackage ../development/python-modules/xcaplib { };
+  subprocess32 = callPackage ../development/python-modules/subprocess32 { };
 
-  xlib = callPackage ../development/python-modules/xlib { };
+  subunit = callPackage ../development/python-modules/subunit { inherit (pkgs) subunit pkg-config cppunit check; };
 
-  yappi = callPackage ../development/python-modules/yappi { };
+  suds = callPackage ../development/python-modules/suds { };
 
-  zbase32 = callPackage ../development/python-modules/zbase32 { };
+  suds-jurko = callPackage ../development/python-modules/suds-jurko { };
 
-  zdaemon = callPackage ../development/python-modules/zdaemon { };
+  sumo = callPackage ../development/python-modules/sumo { };
 
-  zfec = callPackage ../development/python-modules/zfec { };
+  sunpy = callPackage ../development/python-modules/sunpy { };
 
-  zha-quirks = callPackage ../development/python-modules/zha-quirks { };
+  supervise_api = callPackage ../development/python-modules/supervise_api { };
 
-  zipp = if pythonOlder "3.6" then
-    callPackage ../development/python-modules/zipp/1.nix { }
-  else
-    callPackage ../development/python-modules/zipp { };
+  supervisor = callPackage ../development/python-modules/supervisor { };
 
-  zope_broken = callPackage ../development/python-modules/zope_broken { };
+  sure = callPackage ../development/python-modules/sure { };
 
-  zope_component = callPackage ../development/python-modules/zope_component { };
+  suseapi = callPackage ../development/python-modules/suseapi { };
 
-  zope_configuration = callPackage ../development/python-modules/zope_configuration { };
+  svg2tikz = callPackage ../development/python-modules/svg2tikz { };
 
-  zope_contenttype = callPackage ../development/python-modules/zope_contenttype { };
+  svglib = callPackage ../development/python-modules/svglib { };
 
-  zope-deferredimport = callPackage ../development/python-modules/zope-deferredimport { };
+  svg-path = callPackage ../development/python-modules/svg-path { };
 
-  zope_dottedname = callPackage ../development/python-modules/zope_dottedname { };
+  svgwrite = callPackage ../development/python-modules/svgwrite { };
 
-  zope_event = callPackage ../development/python-modules/zope_event { };
+  swagger-spec-validator = callPackage ../development/python-modules/swagger-spec-validator { };
 
-  zope_exceptions = callPackage ../development/python-modules/zope_exceptions { };
+  swagger-ui-bundle = callPackage ../development/python-modules/swagger-ui-bundle { };
 
-  zope_filerepresentation = callPackage ../development/python-modules/zope_filerepresentation { };
+  sybil = callPackage ../development/python-modules/sybil { };
 
-  zope-hookable = callPackage ../development/python-modules/zope-hookable { };
+  symengine = callPackage ../development/python-modules/symengine { symengine = pkgs.symengine; };
 
-  zope_i18n = callPackage ../development/python-modules/zope_i18n { };
+  sympy = if isPy3k then
+    callPackage ../development/python-modules/sympy { }
+  else
+    callPackage ../development/python-modules/sympy/1_5.nix { };
 
-  zope_i18nmessageid = callPackage ../development/python-modules/zope_i18nmessageid { };
+  systemd = callPackage ../development/python-modules/systemd { inherit (pkgs) pkgconfig systemd; };
 
-  zope_lifecycleevent = callPackage ../development/python-modules/zope_lifecycleevent { };
+  sysv_ipc = callPackage ../development/python-modules/sysv_ipc { };
 
-  zope_location = callPackage ../development/python-modules/zope_location { };
+  tableaudocumentapi = callPackage ../development/python-modules/tableaudocumentapi { };
 
-  zope_proxy = callPackage ../development/python-modules/zope_proxy { };
+  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_schema = callPackage ../development/python-modules/zope_schema { };
+  tablib = callPackage ../development/python-modules/tablib { };
 
-  zope_size = callPackage ../development/python-modules/zope_size { };
+  tabulate = callPackage ../development/python-modules/tabulate { };
 
-  zope_testing = callPackage ../development/python-modules/zope_testing { };
+  tadasets = callPackage ../development/python-modules/tadasets { };
 
-  zope_testrunner = callPackage ../development/python-modules/zope_testrunner { };
+  tag-expressions = callPackage ../development/python-modules/tag-expressions { };
 
-  zope_interface = callPackage ../development/python-modules/zope_interface { };
+  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 { };
+  whoosh = callPackage ../development/python-modules/whoosh { };
 
-  zipfile36 = callPackage ../development/python-modules/zipfile36 { };
+  widgetsnbextension = callPackage ../development/python-modules/widgetsnbextension { };
 
-  todoist = callPackage ../development/python-modules/todoist { };
+  willow = callPackage ../development/python-modules/willow { };
 
-  zstd = callPackage ../development/python-modules/zstd {
-    inherit (pkgs) zstd pkgconfig;
-  };
+  word2vec = callPackage ../development/python-modules/word2vec { };
 
-  zstandard = callPackage ../development/python-modules/zstandard { };
+  wordcloud = callPackage ../development/python-modules/wordcloud { };
 
-  zxcvbn = callPackage ../development/python-modules/zxcvbn { };
+  wordfreq = callPackage ../development/python-modules/wordfreq { };
 
-  incremental = callPackage ../development/python-modules/incremental { };
+  worldengine = callPackage ../development/python-modules/worldengine { };
 
-  treq = callPackage ../development/python-modules/treq { };
+  wptserve = callPackage ../development/python-modules/wptserve { };
 
-  snakeviz = callPackage ../development/python-modules/snakeviz { };
+  wrapt = callPackage ../development/python-modules/wrapt { };
 
-  nitpick = callPackage ../applications/version-management/nitpick { };
+  wrf-python = callPackage ../development/python-modules/wrf-python { };
 
-  pluginbase = callPackage ../development/python-modules/pluginbase { };
+  ws4py = callPackage ../development/python-modules/ws4py { };
 
-  node-semver = callPackage ../development/python-modules/node-semver { };
+  wsgiproxy2 = callPackage ../development/python-modules/wsgiproxy2 { };
 
-  diskcache = callPackage ../development/python-modules/diskcache { };
+  WSGIProxy = callPackage ../development/python-modules/wsgiproxy { };
 
-  dissononce = callPackage ../development/python-modules/dissononce { };
+  wsgitools = callPackage ../development/python-modules/wsgitools { };
 
-  distro = callPackage ../development/python-modules/distro { };
+  WSME = callPackage ../development/python-modules/WSME { };
 
-  bz2file =  callPackage ../development/python-modules/bz2file { };
+  wsproto = if (pythonAtLeast "3.6") then
+    callPackage ../development/python-modules/wsproto { }
+  else
+    callPackage ../development/python-modules/wsproto/0.14.nix { };
 
-  smart_open =  callPackage ../development/python-modules/smart_open { };
+  wtforms = callPackage ../development/python-modules/wtforms { };
 
-  gensim = callPackage  ../development/python-modules/gensim { };
+  wtf-peewee = callPackage ../development/python-modules/wtf-peewee { };
 
-  genpy = callPackage ../development/python-modules/genpy { };
+  wurlitzer = callPackage ../development/python-modules/wurlitzer { };
 
-  cymem = callPackage ../development/python-modules/cymem { };
+  wxPython30 = callPackage ../development/python-modules/wxPython/3.0.nix {
+    wxGTK = pkgs.wxGTK30;
+    inherit (pkgs) pkgconfig;
+  };
 
-  ftfy = callPackage ../development/python-modules/ftfy { };
+  wxPython_4_0 = callPackage ../development/python-modules/wxPython/4.0.nix {
+    inherit (pkgs) pkgconfig;
+    wxGTK = pkgs.wxGTK30.override {
+      withGtk2 = false;
+      withWebKit = true;
+    };
+  };
 
-  mmh3 = callPackage ../development/python-modules/mmh3 { };
+  wxPython = self.wxPython30;
 
-  murmurhash = callPackage ../development/python-modules/murmurhash { };
+  x11_hash = callPackage ../development/python-modules/x11_hash { };
 
-  pkuseg = callPackage ../development/python-modules/pkuseg { };
+  x256 = callPackage ../development/python-modules/x256 { };
 
-  plac = callPackage ../development/python-modules/plac { };
+  xapian = callPackage ../development/python-modules/xapian { xapian = pkgs.xapian; };
 
-  preshed = callPackage ../development/python-modules/preshed { };
+  xapp = callPackage ../development/python-modules/xapp {
+    inherit (pkgs) gtk3 gobject-introspection polkit;
+    inherit (pkgs.cinnamon) xapps;
+  };
 
-  backports_weakref = callPackage ../development/python-modules/backports_weakref { };
+  xarray = callPackage ../development/python-modules/xarray { };
 
-  blis = callPackage ../development/python-modules/blis { };
+  xattr = callPackage ../development/python-modules/xattr { };
 
-  srsly = callPackage ../development/python-modules/srsly { };
+  xcaplib = callPackage ../development/python-modules/xcaplib { };
 
-  thinc = callPackage ../development/python-modules/thinc { };
+  xcffib = callPackage ../development/python-modules/xcffib { };
 
-  wasabi = callPackage ../development/python-modules/wasabi { };
+  xdg = callPackage ../development/python-modules/xdg { };
 
-  yahooweather = callPackage ../development/python-modules/yahooweather { };
+  xdis = callPackage ../development/python-modules/xdis { };
 
-  somajo = callPackage ../development/python-modules/somajo { };
+  xdot = callPackage ../development/python-modules/xdot { };
 
-  spacy = callPackage ../development/python-modules/spacy { };
+  xenomapper = disabledIf (!isPy3k) (callPackage ../applications/science/biology/xenomapper { });
 
-  spacy_models = callPackage ../development/python-modules/spacy/models.nix { };
+  xgboost = callPackage ../development/python-modules/xgboost { xgboost = pkgs.xgboost; };
 
-  pyspark = callPackage ../development/python-modules/pyspark { };
+  xhtml2pdf = callPackage ../development/python-modules/xhtml2pdf { };
 
-  pysensors = callPackage ../development/python-modules/pysensors { };
+  xkcdpass = callPackage ../development/python-modules/xkcdpass { };
 
-  python-toolbox = callPackage ../development/python-modules/python-toolbox { };
+  xlib = callPackage ../development/python-modules/xlib { };
 
-  pysnooper = callPackage ../development/python-modules/pysnooper { };
+  xlrd = callPackage ../development/python-modules/xlrd { };
 
-  sseclient = callPackage ../development/python-modules/sseclient { };
+  xlsx2csv = callPackage ../development/python-modules/xlsx2csv { };
 
-  warrant = callPackage ../development/python-modules/warrant { };
+  XlsxWriter = callPackage ../development/python-modules/XlsxWriter { };
 
-  textacy = callPackage ../development/python-modules/textacy { };
+  xlwt = callPackage ../development/python-modules/xlwt { };
 
-  tld = callPackage ../development/python-modules/tld { };
+  xml2rfc = callPackage ../development/python-modules/xml2rfc { };
 
-  tldextract = callPackage ../development/python-modules/tldextract { };
+  xmlschema = callPackage ../development/python-modules/xmlschema { };
 
-  transip = callPackage ../development/python-modules/transip { };
+  xmltodict = callPackage ../development/python-modules/xmltodict { };
 
-  pyemd  = callPackage ../development/python-modules/pyemd { };
+  xmodem = callPackage ../development/python-modules/xmodem { };
 
-  openwrt-luci-rpc = disabledIf (!isPy3k) (callPackage ../development/python-modules/openwrt-luci-rpc { });
+  xmpppy = callPackage ../development/python-modules/xmpppy { };
 
-  pulp  = callPackage ../development/python-modules/pulp { };
+  xnd = callPackage ../development/python-modules/xnd { };
 
-  pure-pcapy3 = callPackage ../development/python-modules/pure-pcapy3 { };
+  xpybutil = callPackage ../development/python-modules/xpybutil { };
 
-  cucumber-tag-expressions = callPackage ../development/python-modules/cucumber-tag-expressions { };
+  xstatic-bootbox = callPackage ../development/python-modules/xstatic-bootbox { };
 
-  behave = callPackage ../development/python-modules/behave { };
+  xstatic-bootstrap = callPackage ../development/python-modules/xstatic-bootstrap { };
 
-  bellows = callPackage ../development/python-modules/bellows { };
+  xstatic = callPackage ../development/python-modules/xstatic { };
 
-  pyhamcrest = if isPy3k then
-    callPackage ../development/python-modules/pyhamcrest { }
-  else
-    callPackage ../development/python-modules/pyhamcrest/1.nix { };
+  xstatic-jquery = callPackage ../development/python-modules/xstatic-jquery { };
 
-  pyhaversion = callPackage ../development/python-modules/pyhaversion { };
+  xstatic-jquery-file-upload = callPackage ../development/python-modules/xstatic-jquery-file-upload { };
 
-  parse = callPackage ../development/python-modules/parse { };
+  xstatic-jquery-ui = callPackage ../development/python-modules/xstatic-jquery-ui { };
 
-  parse-type = callPackage ../development/python-modules/parse-type { };
+  xstatic-pygments = callPackage ../development/python-modules/xstatic-pygments { };
 
-  ephem = callPackage ../development/python-modules/ephem { };
+  xvfbwrapper = callPackage ../development/python-modules/xvfbwrapper { inherit (pkgs.xorg) xorgserver; };
 
-  voluptuous = callPackage ../development/python-modules/voluptuous { };
+  xxhash = callPackage ../development/python-modules/xxhash { };
 
-  voluptuous-serialize = callPackage ../development/python-modules/voluptuous-serialize { };
+  yahooweather = callPackage ../development/python-modules/yahooweather { };
 
-  pysigset = callPackage ../development/python-modules/pysigset { };
+  yamllint = callPackage ../development/python-modules/yamllint { };
 
-  us = callPackage ../development/python-modules/us { };
+  yanc = callPackage ../development/python-modules/yanc { };
 
-  wsproto = if (pythonAtLeast "3.6") then
-      callPackage ../development/python-modules/wsproto { }
-    else
-      callPackage ../development/python-modules/wsproto/0.14.nix { };
+  yapf = callPackage ../development/python-modules/yapf { };
 
-  h11 = callPackage ../development/python-modules/h11 { };
+  yappi = callPackage ../development/python-modules/yappi { };
 
-  python-docx = callPackage ../development/python-modules/python-docx { };
+  Yapsy = callPackage ../development/python-modules/yapsy { };
 
-  python-doi = callPackage ../development/python-modules/python-doi { };
+  yarg = callPackage ../development/python-modules/yarg { };
 
-  aiohue = callPackage ../development/python-modules/aiohue { };
+  yarl = callPackage ../development/python-modules/yarl { };
 
-  PyMVGLive = callPackage ../development/python-modules/pymvglive { };
+  yattag = callPackage ../development/python-modules/yattag { };
 
-  coinmarketcap = callPackage ../development/python-modules/coinmarketcap { };
+  ydiff = callPackage ../development/python-modules/ydiff { };
 
-  pyowm = callPackage ../development/python-modules/pyowm { };
+  yenc = callPackage ../development/python-modules/yenc { };
 
-  prometheus_client = callPackage ../development/python-modules/prometheus_client { };
+  yfinance = callPackage ../development/python-modules/yfinance { };
 
-  pysdl2 = callPackage ../development/python-modules/pysdl2 { };
+  yoda = toPythonModule (pkgs.yoda.override { inherit python; });
 
-  pyogg = callPackage ../development/python-modules/pyogg { };
+  youtube-dl = callPackage ../tools/misc/youtube-dl { };
 
-  rubymarshal = callPackage ../development/python-modules/rubymarshal { };
+  youtube-dl-light = callPackage ../tools/misc/youtube-dl {
+    ffmpegSupport = false;
+    phantomjsSupport = false;
+  };
 
-  radio_beam = callPackage ../development/python-modules/radio_beam { };
+  yowsup = callPackage ../development/python-modules/yowsup { };
 
-  spectral-cube = callPackage ../development/python-modules/spectral-cube { };
+  yt = callPackage ../development/python-modules/yt { };
 
-  astunparse = callPackage ../development/python-modules/astunparse { };
+  yubico-client = callPackage ../development/python-modules/yubico-client { };
 
-  gast = callPackage ../development/python-modules/gast { };
+  z3c-checkversions = callPackage ../development/python-modules/z3c-checkversions { };
 
-  ibis = callPackage ../development/python-modules/ibis { };
+  z3 = (toPythonModule (pkgs.z3.override { inherit python; })).python;
 
-  ibis-framework = callPackage ../development/python-modules/ibis-framework { };
+  zake = callPackage ../development/python-modules/zake { };
 
-  qiskit = callPackage ../development/python-modules/qiskit { };
+  zarr = callPackage ../development/python-modules/zarr { };
 
-  qiskit-aer = callPackage ../development/python-modules/qiskit-aer { };
+  zbase32 = callPackage ../development/python-modules/zbase32 { };
 
-  qiskit-aqua = callPackage ../development/python-modules/qiskit-aqua { };
+  zc_buildout221 = callPackage ../development/python-modules/buildout { };
 
-  qiskit-ibmq-provider = callPackage ../development/python-modules/qiskit-ibmq-provider { };
+  zc_buildout = self.zc_buildout221; # A patched version of buildout, useful for buildout based development on Nix
 
-  qiskit-ignis = callPackage ../development/python-modules/qiskit-ignis { };
+  zc_buildout_nix = callPackage ../development/python-modules/buildout-nix { };
 
-  qiskit-terra = callPackage ../development/python-modules/qiskit-terra { };
+  zc_lockfile = callPackage ../development/python-modules/zc_lockfile { };
 
-  qasm2image = callPackage ../development/python-modules/qasm2image { };
+  zconfig = callPackage ../development/python-modules/zconfig { };
 
-  simpy = callPackage ../development/python-modules/simpy { };
+  zdaemon = callPackage ../development/python-modules/zdaemon { };
 
-  x256 = callPackage ../development/python-modules/x256 { };
+  zeep = callPackage ../development/python-modules/zeep { };
 
-  yattag = callPackage ../development/python-modules/yattag { };
+  zeitgeist = disabledIf isPy3k (toPythonModule (pkgs.zeitgeist.override { python2Packages = self; })).py;
 
-  yfinance = callPackage ../development/python-modules/yfinance { };
+  zerobin = callPackage ../development/python-modules/zerobin { };
 
-  xenomapper = disabledIf (!isPy3k) (callPackage ../applications/science/biology/xenomapper { });
+  zeroc-ice = callPackage ../development/python-modules/zeroc-ice { };
 
-  z3 = (toPythonModule (pkgs.z3.override {
-    inherit python;
-  })).python;
+  zeroconf = callPackage ../development/python-modules/zeroconf { };
 
-  zeroc-ice = callPackage ../development/python-modules/zeroc-ice { };
+  zerorpc = callPackage ../development/python-modules/zerorpc { };
 
-  zm-py = callPackage ../development/python-modules/zm-py { };
+  zetup = callPackage ../development/python-modules/zetup { };
 
-  rfc7464 = callPackage ../development/python-modules/rfc7464 { };
+  zfec = callPackage ../development/python-modules/zfec { };
 
-  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; };
+  zha-quirks = callPackage ../development/python-modules/zha-quirks { };
 
-  libtorrentRasterbar = (toPythonModule (pkgs.libtorrentRasterbar.override {
-    inherit python;
-  })).python;
+  zict = callPackage ../development/python-modules/zict { };
 
-  libiio = (toPythonModule (pkgs.libiio.override {
-    inherit python;
-  })).python;
+  zigpy = callPackage ../development/python-modules/zigpy { };
 
-  localzone = callPackage ../development/python-modules/localzone { };
+  zigpy-cc = callPackage ../development/python-modules/zigpy-cc { };
 
-  scour = callPackage ../development/python-modules/scour { };
+  zigpy-deconz = callPackage ../development/python-modules/zigpy-deconz { };
 
-  pymssql = throw "pymssql has been abandoned upstream."; # added 2020-05-04
+  zigpy-xbee = callPackage ../development/python-modules/zigpy-xbee { };
 
-  nanoleaf = callPackage ../development/python-modules/nanoleaf { };
+  zigpy-zigate = callPackage ../development/python-modules/zigpy-zigate { };
 
-  nanotime = callPackage ../development/python-modules/nanotime { };
+  zimports = callPackage ../development/python-modules/zimports { };
 
-  importlib-metadata = callPackage ../development/python-modules/importlib-metadata {};
+  zipfile36 = callPackage ../development/python-modules/zipfile36 { };
 
-  importlib-resources = callPackage ../development/python-modules/importlib-resources {};
+  zipp = if pythonOlder "3.6" then
+    callPackage ../development/python-modules/zipp/1.nix { }
+  else
+    callPackage ../development/python-modules/zipp { };
 
-  srptools = callPackage ../development/python-modules/srptools { };
+  zipstream = callPackage ../development/python-modules/zipstream { };
 
-  srp = callPackage ../development/python-modules/srp { };
+  zm-py = callPackage ../development/python-modules/zm-py { };
 
-  curve25519-donna = callPackage ../development/python-modules/curve25519-donna { };
+  zodb = callPackage ../development/python-modules/zodb { };
 
-  pyatv = callPackage ../development/python-modules/pyatv { };
+  zodbpickle = callPackage ../development/python-modules/zodbpickle { };
 
-  pybotvac = callPackage ../development/python-modules/pybotvac { };
+  zope_broken = callPackage ../development/python-modules/zope_broken { };
 
-  pymetno = callPackage ../development/python-modules/pymetno { };
+  zope_component = callPackage ../development/python-modules/zope_component { };
 
-  pytado = callPackage ../development/python-modules/pytado { };
+  zope_configuration = callPackage ../development/python-modules/zope_configuration { };
 
-  casttube = callPackage ../development/python-modules/casttube { };
+  zope_contenttype = callPackage ../development/python-modules/zope_contenttype { };
 
-  lzstring = callPackage ../development/python-modules/lzstring { };
+  zope_copy = callPackage ../development/python-modules/zope_copy { };
 
-  flickrapi = callPackage ../development/python-modules/flickrapi { };
+  zope-deferredimport = callPackage ../development/python-modules/zope-deferredimport { };
 
-  aioesphomeapi = callPackage ../development/python-modules/aioesphomeapi { };
+  zope_deprecation = callPackage ../development/python-modules/zope_deprecation { };
 
-  mwparserfromhell = callPackage ../development/python-modules/mwparserfromhell { };
+  zope_dottedname = callPackage ../development/python-modules/zope_dottedname { };
 
-  starlette = callPackage ../development/python-modules/starlette { };
+  zope_event = callPackage ../development/python-modules/zope_event { };
 
-  uvicorn = callPackage ../development/python-modules/uvicorn { };
+  zope_exceptions = callPackage ../development/python-modules/zope_exceptions { };
 
-  pydantic = callPackage ../development/python-modules/pydantic { };
+  zope_filerepresentation = callPackage ../development/python-modules/zope_filerepresentation { };
 
-  fastapi = callPackage ../development/python-modules/fastapi { };
+  zope-hookable = callPackage ../development/python-modules/zope-hookable { };
 
-  stringcase = callPackage ../development/python-modules/stringcase { };
+  zope_i18n = callPackage ../development/python-modules/zope_i18n { };
 
-  webrtcvad = callPackage ../development/python-modules/webrtcvad { };
+  zope_i18nmessageid = callPackage ../development/python-modules/zope_i18nmessageid { };
 
-  pykwalify = callPackage ../development/python-modules/pykwalify { };
+  zope_interface = callPackage ../development/python-modules/zope_interface { };
 
-  west = callPackage ../development/python-modules/west { };
+  zope_lifecycleevent = callPackage ../development/python-modules/zope_lifecycleevent { };
 
-  wfuzz = callPackage ../development/python-modules/wfuzz { };
+  zope_location = callPackage ../development/python-modules/zope_location { };
 
-  wget = callPackage ../development/python-modules/wget { };
+  zope_proxy = callPackage ../development/python-modules/zope_proxy { };
 
-  runway-python = callPackage ../development/python-modules/runway-python { };
+  zope_schema = callPackage ../development/python-modules/zope_schema { };
 
-  pyprof2calltree = callPackage ../development/python-modules/pyprof2calltree { };
+  zope_size = callPackage ../development/python-modules/zope_size { };
 
-  hcloud = callPackage ../development/python-modules/hcloud { };
+  zope_testing = callPackage ../development/python-modules/zope_testing { };
 
-  managesieve = callPackage ../development/python-modules/managesieve { };
+  zope_testrunner = callPackage ../development/python-modules/zope_testrunner { };
 
-  pony = callPackage ../development/python-modules/pony { };
+  zopfli = callPackage ../development/python-modules/zopfli { };
 
-  rxv     = callPackage ../development/python-modules/rxv     { };
+  zstandard = callPackage ../development/python-modules/zstandard { };
 
-  userpath = callPackage ../development/python-modules/userpath { };
+  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;